Craft CMS is an adaptable and intuitive content management system designed for creating customised, powerful websites. It is a PHP-based platform that uses a relational database to store content, offering a seamless experience for both developers and end-users. The transition from Craft CMS 4 to Craft CMS 5 brings several updates and changes that impact system requirements, recommended environments, and compatibility. In this blog, we’ll look at the server requirements for running Craft CMS 5. So, let’s get into it!
To run Craft CMS 5, your hosting environment should meet the following minimum requirements:
PHP: Version 8.2 or higher.
Database: MySQL 8.0.17+ using InnoDB, MariaDB 10.4.6+, or PostgreSQL 13+.
Memory: At least 256MB allocated to PHP.
Disk Space: Minimum of 200MB free.
Composer: Version 2.0 or higher.
For optimal performance, particularly on sites with many users or large volumes of content, the following specifications are recommended:
PHP: Version 8.2 or higher.
Database: MySQL 8.0.36+ using InnoDB or PostgreSQL 16+.
Memory: 512MB+ allocated to PHP.
Note: Due to differences in handling complex queries, MariaDB is no longer recommended for large sites in Craft CMS 5.
Craft CMS 5 requires several PHP extensions to function correctly:
GD or ImageMagick (ImageMagick preferred for enhanced image handling)
To fully leverage Craft CMS's features, certain PHP settings should be enabled:
allow_url_fopen: Required for plugin updates and installations.
proc_*: Necessary for the Plugin Store, updates, and email functionality.
ignore_user_abort: Needed for the default queue runner to function correctly.
To ensure Craft CMS functions without hiccups, it is key that PHP has the necessary write permissions for several critical files and directories:
storage/*
config/license.key
web/cpresources/*
.env
config/project/*
composer.json and composer.lock
vendor/*
The specific permissions settings should be adjusted based on how the system user, under which PHP operates, relates to the file and folder owners:
Identical User and Owner: Assign permissions with 744 (rwxr--r--), allowing full control for the owner and read-only for others.
Same Group: Set permissions to 774 (rwxrwxr--), providing full access to the user and group, but read-only access to others.
If your current setup does not align with either of the above scenarios, there could be a configuration error. In this case, consult with your system administrator to ensure the settings are correctly applied.
Avoid setting permissions to 777 in shared environments or on live sites, as this allows full read, write, and execute permissions to everyone. Additionally, avoid running your HTTP server (or PHP) with root privileges to maintain security integrity.
These guidelines help maintain the security and functionality of your Craft CMS installation, ensuring that it operates smoothly and remains secure against unauthorised access.
The database user configured for Craft must have comprehensive privileges:
MySQL/MariaDB:
SELECT
INSERT
DELETE
UPDATE
CREATE
ALTER
INDEX
DROP
REFERENCES
LOCK TABLES
For PostgreSQL:
SELECT
INSERT
UPDATE
CREATE
DELETE
REFERENCES
CONNECT
Craft’s control panel requires modern browsers that support JavaScript modules:
Firefox 67+
Chrome 63+
Safari 11.1+
Edge 79+.
iOS Safari 11+
Android Chrome 81+
Firefox 68+.
Using these supported browsers ensures that all features and functionalities of the Craft CMS control panel are accessible and function correctly, allowing for efficient site management and content updates. Make sure your browser is up to date to take full advantage of the control panel's capabilities.
These specifications ensure that Craft CMS 5 will run efficiently and securely, providing a robust platform for website development and management. For additional information, utilise the official server check script to confirm your server's compatibility with Craft CMS 5 requirements.
Our opinion at MadeByShape is that you can't get better than Craft CMS. Got any Craft CMS questions? Talk to us!
I'm Kerry. Content Writer at Shape – if you don't find me at my desk, I'm probably on holiday again!