MODX Revolution CMS Installation and Setup
MODX Revolution 3.x is installed via web installer or CLI. Production installation requires Nginx setup, caching, .htaccess/nginx rules configuration for SEF URLs.
Installation via Composer
# MODX 3.x supports Composer
composer create-project modx/modx my-site
cd my-site
# Or traditional installation
wget https://modx.com/download/current/ -O modx.zip
unzip modx.zip
Nginx Configuration
server {
listen 443 ssl http2;
server_name yourdomain.com;
root /var/www/yourdomain.com;
index index.php;
# SEF URLs for MODX
location / {
try_files $uri $uri/ @modx-rewrite;
}
location @modx-rewrite {
rewrite ^/(.*)$ /index.php?q=$1 last;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# Deny access to system files
location ~ /\.(ht|git) { deny all; }
location ~ /(core|config\.core\.php) { deny all; }
location ~* /connectors/.*\.php$ {
fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Web Installer
Open https://yourdomain.com/setup/. Steps:
- Permission check (must be writable:
core/cache/,core/export/,assets/) - Database parameters
- Admin creation
- Context configuration (http/https, base URL)
- Delete
setup/folder after installation
Security: Moving Core
By default core/ is in web-root. Recommended to move above:
mv /var/www/yourdomain.com/core /var/core-yourdomain
# config.core.php (in web-root)
<?php
define('MODX_CORE_PATH', '/var/core-yourdomain/');
define('MODX_CONFIG_KEY', 'config');
This hides main CMS files from direct web access.
Key System Settings
System → Settings → System:
friendly_urls: Yes
friendly_alias_urls: Yes
use_alias_path: Yes # hierarchical URLs /about/team/
cache_resource: Yes
cache_context_settings: Yes
session_cookie_secure: Yes # HTTPS only
session_cookie_httponly: Yes
Installing Extras via Package Manager
System → Package Management → Package Search:
Essential for most projects:
- pdoTools (basis for pdoResources, pdoMenu, pdoPage)
- FastTab (organize TV in tabs)
- Ace (code editor with highlighting)
- Seosuite or seo (SEO meta-tags)
For forms:
- FormIt
For search:
- SimpleSearch or mSearch2
Package Manager via Console
// Installation via API
$modx->runSnippet('pdoTools'); // check
// Or via transport package
$pkg = $modx->newObject('transport.modTransportPackage');
$pkg->fromXML('path/to/package.transport.zip');
$pkg->install();
Basic Setup After Installation
- Create Default template (empty HTML to start development)
- Configure
webcontext: System → Contexts → web → URL - Create root resource (Homepage) with Default template
- Configure Error Page (404): System → Settings → error_page → resource ID
Timeline
MODX installation on VPS with core moved above web-root, Nginx setup and basic Extras — 3–5 hours.







