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 (opens new window) 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 (opens new window)
- ctype (opens new window)
- cURL (opens new window)
- GD (opens new window) or ImageMagick (opens new window)
- iconv (opens new window)
- Intl (opens new window)
- JSON (opens new window)
- Multibyte String (opens new window)
- OpenSSL (opens new window)
- PCRE (opens new window)
- PDO MySQL Driver (opens new window) or PDO PostgreSQL Driver (opens new window)
- PDO (opens new window)
- Reflection (opens new window)
- SPL (opens new window)
- Zip (opens new window)
- DOM (opens new window)
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 (opens new window) must be enabled for updating and installing plugins from the Plugin Store.
- proc_* (opens new window) methods must be enabled in order to utilize the Plugin Store, install updates, and send emails.
- ignore_user_abort (opens new window) must be enabled for the default, web-based queue runner to operate.
# 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 (opens new window) 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 (opens new window).
# 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 (opens new window)—how you choose to enhance that with JavaScript and CSS is entirely up to you!