Requirements.
Runtime, database, web server, and production requirements for Reward Loyalty.
Reward Loyalty requires PHP 8.4.1 or newer. The installer and Composer enforce the same floor.
Runtime and database
| Requirement | Supported baseline |
|---|---|
| PHP | 8.4.1 or newer |
| Web server | Apache or LiteSpeed with .htaccess support |
| Production database | MySQL 5.7+ or MariaDB 10.3+ |
| Evaluation or low-write database | SQLite 3.26+ |
| Transport security | HTTPS on every public environment |
Use MySQL or MariaDB for a production installation. SQLite is useful for evaluation and can suit a low-write installation, but it is not the default production recommendation.
The standard control-panel installation uses the rewrite rules included in the package, so it needs Apache or LiteSpeed with .htaccess support. An nginx-only server can run Reward Loyalty after its owner adds equivalent rewrite rules, but that is an advanced server setup. Ask the server administrator or hosting support to configure it.
Required PHP extensions
The installer checks every item below for the website. Select PHP 8.4.1 or newer in the hosting control panel and enable the listed extensions there. If an extension is unavailable, contact hosting support and ask whether they can enable it for the plan.
- BCMath (
ext-bcmath) - Ctype (
ext-ctype) - cURL (
ext-curl) - DOM (
ext-dom) - Exif (
ext-exif) - Fileinfo (
ext-fileinfo) - Filter (
ext-filter) - GD (
ext-gd) - Hash (
ext-hash) - Iconv (
ext-iconv) - Intl (
ext-intl) - JSON (
ext-json) - Libxml (
ext-libxml) - Mbstring (
ext-mbstring) - OpenSSL (
ext-openssl) - PCRE (
ext-pcre) - PDO (
ext-pdo) - PDO SQLite (
ext-pdo_sqlite) - Session (
ext-session) - Tokenizer (
ext-tokenizer) - XML (
ext-xml) - Zip (
ext-zip) - Zlib (
ext-zlib)
Check the website in the hosting control panel
The browser installer checks the PHP version and extensions the website uses. Hosting plans and panel labels can differ or change, even at the same provider. Confirm the settings for the application domain, then open the installer. If the required version or an extension is missing, contact hosting support before changing plans.
Files, permissions, and HTTPS
Install the application at a domain or subdomain root, not a URL subdirectory. The web server must be able to write the .env file during installation and write Laravel's storage and bootstrap/cache directories. Keep application files owned by the deployment user and grant only the web-server access that is needed. Never use 777 permissions.
Production requires HTTPS. It protects sign-in and member traffic, and installable PWA behavior outside localhost also requires it. Plan the hostnames and certificates with Domains, DNS, and HTTPS.
Scheduler and queue
Use the hosting control panel's Cron Jobs or Scheduled Tasks screen to run Reward Loyalty's scheduler every minute when the host allows it. Some shared hosts offer only a longer interval. Use the shortest interval the plan permits, then check Health Center after it runs. Normal dashboard traffic also provides a traffic fallback for due loyalty work, so the installation remains usable between scheduled runs.
The documented traffic fallback keeps core daily loyalty tasks moving when scheduled execution is unavailable, but scheduled execution is more predictable. The sync queue is appropriate for a simple installation. A growing installation may need a database or Redis worker managed by the host or a technical operator. The Health Center reports scheduler and queue state.
Automatic updates
Dashboard Update and Install from Package use the same detached command-line process. Install from Package supplies the zip from your server, but it does not bypass the automatic updater. Only Manual File Replacement avoids this background process.
The automatic updater needs a PHP 8.4+ command-line binary, permission to start background processes through exec, writable application paths, archive support, and enough temporary space. The host also needs enough CPU, disk I/O, and memory for the backup, package extraction, and file replacement. Reward Loyalty detects the command-line binary and lets you set UPDATER_PHP_BINARY when detection cannot find the right path. See What automatic updates need.
Some shared plans cap disk throughput or IOPS and stop long background processes. An automatic update can stall there even when the website runs without trouble. A registered installation uses a low-I/O rollback backup that avoids a full scan of the application files. An unregistered Install from Package run keeps the full backup for compatibility. Package extraction and file replacement still use disk I/O. Installation and normal operation do not depend on exec, command-line process access, or automatic-update resources.
Use Manual File Replacement when the host cannot run the automatic updater. Test the update on staging, take a backup, and prove you can restore it before updating production.
Continue
Prepare the server and database before opening the installer: