Server requirements

What the server has to provide. The installer checks every item on this page and tells you which ones fail.

CertiFlow is written for ordinary shared hosting with a control panel. It needs no shell access, no Node.js, no Docker, and no Composer: the dependencies ship already installed inside the package.

Hosting

ItemRequirement
Web serverApache with mod_rewrite, or Nginx. The package includes the Apache rules; the Nginx equivalent is in installation.
DatabaseMySQL 5.7 or newer, or MariaDB 10.3 or newer. The schema uses JSON columns, so older versions will not accept it.
HTTPSRequired in practice. Sign-in cookies are marked HTTPS-only as soon as you enable it, and certificate links you publish should not be plain HTTP.
Disk spaceAbout 60 MB for the application, plus your own growth: one issued PDF is typically 100 KB to 2 MB, and background images are stored once per template.
EmailAn SMTP mailbox you control. Sending through your own domain is what keeps delivered certificates out of spam folders.
Scheduled jobsThe ability to run a PHP file on a schedule, called Cron Jobs in most control panels.

PHP

PHP

PHP 8.1.0 or newer. PHP 8.2 and 8.3 are also supported.

Required PHP extensions

The installer stops if any of these is missing.

ExtensionWhat it is used for
pdo_mysqlThe database driver. Enable it in the hosting control panel, under PHP extensions.
mbstringMultibyte string handling, used by every piece of text in the interface.
opensslEncryption of stored SMTP credentials and two-factor secrets.
jsonConfiguration, audit metadata and certificate layouts are stored as JSON.
ctypeCharacter checks used by validation.
fileinfoDetects the true type of an uploaded file, which the upload checks rely on.
zipReading .xlsx import files and writing exports.
curlSecure outbound delivery of signed webhook events.

Optional PHP extensions

The installer reports these as advice. The product runs without them.

ExtensionWhat it adds
gdFaster image handling for logo and certificate background uploads.
intlLocale-aware sorting and formatting.

Writable directories

The web server user must be able to write to each of these. The installer checks them all.

PHP settings

The package ships a .user.ini that sets these on most shared hosting. If your host ignores it, set them in the control panel instead.

SettingValueWhy
upload_max_filesize10M or moreImport files and certificate background images. Keep it at or above UPLOAD_MAX_MB.
post_max_size12M or moreMust exceed upload_max_filesize, or a large upload is silently discarded. Keep it at or above REQUEST_MAX_MB.
memory_limit128M or moreRendering a PDF and reading an .xlsx both hold the file in memory.
max_execution_time60 or moreConfirming a large import in one request.
display_errorsOffAn error page must never show a visitor your file paths.

Checking before you buy hosting. Most providers publish their PHP version and extension list. The two that are most often missing on cheap plans are zip and fileinfo. Without zip the product cannot read .xlsx imports or write exports.

Checking after installation

Sign in as an Admin and open /admin/diagnostics. It runs the same checks as the installer and adds the PHP version, the web server, the database version, the active language and the timezone. That page is the right thing to send with a support request.