Dot All Lisbon – the official Craft CMS conference – is happening September 23 - 25.
Requirements
Craft is a PHP application that uses a relational database for content storage. It will run on most modern hosting environments, and can be configured to take advantage of all kinds of advanced infrastructure.
You can use the official server check script to quickly find out if your server meets Craft’s requirements.
Minimum System Specs
- PHP 8.2+
- MySQL 8.0.17+ using InnoDB, MariaDB 10.4.6+, or PostgreSQL 13+
- 256MB+ memory allocated to PHP
- 200MB+ free disk space
- Composer 2.0+
Recommended System Specs
- PHP 8.2+
- MySQL 8.0.36+ using InnoDB, or PostgreSQL 16+
- 512MB+ of memory allocated to PHP
Due to its diverging parity with MySQL, we no longer recommend MariaDB for sites with many users or a large volume of content.
Required PHP Extensions
- BCMath
- ctype
- cURL
- GD or ImageMagick
- iconv
- Intl
- JSON
- Multibyte String
- OpenSSL
- PCRE
- PDO MySQL Driver or PDO PostgreSQL Driver
- PDO
- Reflection
- SPL
- Zip
- DOM
We recommend ImageMagick over GD for expanded image handling options.
Optional PHP Methods and Configurations
Some shared hosting environments disable common PHP methods and configurations that affect Craft features.
- allow_url_fopen — This
ini
setting must be enabled to support updating and installing plugins from the Plugin Store. - proc_* — These methods are required in order to utilize the Plugin Store, install updates, and send emails.
- ignore_user_abort — Required when using the default web-based queue runner to operate.
- pcntl_* — The Process Control extension allows daemonized queue runners to gracefully exit between jobs.
File Permissions
For Craft to run properly, PHP needs to be able to write to the following files and folders at all times:
storage/*
config/license.key
web/cpresources/*
Additionally, during setup or when updating or installing plugins via the control panel or CLI, Craft may touch these files:
.env
config/project/*
composer.json
andcomposer.lock
vendor/*
The exact permissions depend on the relationship between the system user that PHP runs as and the owner of the folders and files:
- If they’re the same user, use
744
(rwxr--r--
). - If they’re in the same group, use
774
(rwxrwxr--
). - If neither of the above options describe your setup, something may have been misconfigured. Reach out to your system administrator for support.
Specifics may vary from platform to platform or host to host! Consult your development or hosting environment’s documentation for more information.
Never set permissions to 777
in a shared environment or on a live site, and never run your HTTP server (or PHP) as root
.
Required Database User Privileges
The database user you tell Craft to connect with must have the following privileges:
MySQL/MariaDB
SELECT
INSERT
DELETE
UPDATE
CREATE
ALTER
INDEX
DROP
REFERENCES
LOCK TABLES
PostgreSQL
SELECT
INSERT
UPDATE
CREATE
DELETE
REFERENCES
CONNECT
Control Panel Browser Requirements
Craft’s control panel requires a browser that supports JavaScript modules.
Windows and macOS
- Firefox 67+
- Chrome 63+
- Safari 11.1+
- Edge 79+
Mobile
- iOS: Safari 11+
- Android: Chrome 81+ or Firefox 68+
Craft’s control panel browser requirements are independent from those of your site’s front-end. Ultimately, Craft is only concerned with delivering hypermedia—how you choose to enhance that with JavaScript and CSS is entirely up to you!