Home / Docs / requirements
Getting Started

System Requirements

Server prerequisites, PHP 8.2+ settings, database engines, and required PHP extensions.

System Requirements

Encrypt CMS is built to deliver fast execution and minimal server overhead. Before installing, verify that your hosting environment meets the following specifications.


Minimum Hardware & Hosting Environment

  • Architecture: 64-bit CPU (x86_64 / ARM64).
  • RAM: Minimum 256 MB available to PHP (512 MB+ recommended for high-traffic environments).
  • Disk Space: Minimum 50 MB for core installation; 500 MB+ recommended for media storage and pre-update rollback backups.
  • Hosting Compatibility: Standard Apache/Nginx Linux servers, cPanel, Plesk, DirectAdmin, and 20i StackCP shared hosting.

PHP Runtime Requirements

  • PHP Version: PHP 8.2.0 or higher (PHP 8.2 and PHP 8.3 fully tested).
  • Memory Limit: memory_limit = 128M (256M recommended).
  • Upload File Size: upload_max_filesize = 32M (or according to your media requirements).
  • Post Max Size: post_max_size = 32M.

Required PHP Extensions

The guided installer automatically checks for the presence of these required extensions:

Extension Requirement Purpose
pdo Mandatory PHP Data Objects database abstraction layer
pdo_mysql Mandatory Native MySQL and MariaDB PDO database driver
curl Mandatory Secure HTTPS communications for license verification and update delivery
mbstring Mandatory Multi-byte string manipulation for Unicode content
json Mandatory JSON encoding and decoding for configuration and API responses
gd or imagick Mandatory Image processing, thumbnail generation, and dimension extraction
zip Mandatory Archive unpacking for automated updates, themes, and plugins
fileinfo Mandatory Magic byte inspection for secure media MIME type verification
openssl Mandatory Cryptographic token generation, session security, and HTTPS validation

Database Requirements

  • Database Management System:
    • MySQL: Version 5.7 or 8.0+
    • MariaDB: Version 10.4 or higher
  • Storage Engine: InnoDB (required for row-level locking and transaction integrity)
  • Character Set & Collation: utf8mb4 with utf8mb4_unicode_ci (full emoji and international character support)

Web Server Configuration

Apache (.htaccess)

Encrypt CMS requires the Apache mod_rewrite module enabled. The core archive includes a production .htaccess file handling URL rewrites to index.php:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    # Prevent direct access to hidden files (.env, .git)
    RewriteRule ^\.(?!well-known/) - [F,L]

    # Deliver existing static files directly
    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^ - [L]

    # Route all other requests through Front Controller
    RewriteRule ^ index.php [L]
</IfModule>

Nginx

If running Nginx, configure your server block location as follows:

location / {
    try_files $uri $uri/ /index.php?$query_string;
}

location ~ \.php$ {
    fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
    include fastcgi_params;
}

# Block protected storage and config directories
location ~ ^/(config|storage/framework|storage/logs)/ {
    deny all;
    return 404;
}