Requirements

You are viewing documentation for an unreleased version of Craft CMS. Please be aware that some pages, screenshots, and technical reference may still reflect older versions.

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+
  • 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

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.

# 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 and composer.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
Database Connection Settings
Craft supports a wide array of connection settings for MySQL and Postgres databases.

# 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!