Skip to content

Server requirements

PHP version, extensions, and writable paths the installer checks before it lets you continue.

1 min read

The installer checks all of this on its first screen and shows you a green or red row for each item. You cannot proceed until every row is green, which means a misconfigured server shows up as a clear list rather than as a blank error page.

PHP#

PHP 8.3.0 or newer.

Required extensions#

Thirteen extensions must be loaded. Most shared hosts have all of them enabled by default; intl and zip are the two that occasionally need switching on in cPanel.

  • bcmath
  • ctype
  • curl
  • dom
  • fileinfo
  • gd
  • intl
  • mbstring
  • openssl
  • pdo
  • tokenizer
  • xml
  • zip

Writable paths#

These must be writable by the user your web server runs as:

  • .env
  • bootstrap/cache
  • storage/app
  • storage/framework
  • storage/logs

Database#

MySQL 8 or newer, with an empty database and a user that can create and alter tables. Create both in cPanel before you start the installer — the wizard connects to a database that already exists, it does not create one.

What you do not need#

The distributed archive already contains vendor/ and the compiled front-end assets in public/build/. Your host needs neither Composer nor Node.js nor npm, and there is no build step to run.

  • A cron entry for Laravel’s scheduler. Without it, expiry reminders, webhook retries, and log pruning never run. See Scheduled tasks.
  • An SMTP account. Without one the panel logs emails instead of sending them, which means welcome emails and set-password links never reach your customers.
  • HTTPS. Paddle will not deliver webhooks to a plain HTTP endpoint.