4.1.10 Установка MODX Revolution на хостинге и сервере

MODX — это система управления контентом (CMS) и фреймворк (CMF) с открытым исходным кодом, написанная на PHP и предназначенная для создания гибких, производительных сайтов и веб-приложений любого масштаба.
Она сочетает простоту управления контентом с возможностями фреймворка: разработчики могут писать собственные компоненты, а администраторы — работать с контентом через удобную панель MODX Manager.
Подготовка окружения
Требования
- Активная услуга Хостинга, Виртуального или Выделенного сервера
- CPU: 1–2 vCPU; RAM: от 1 ГБ; SSD: от 5–10 ГБ
- ОС: Ubuntu 22.04 LTS или 24.04 LTS (рекомендовано)
- Стек: PHP 8.1–8.2 с mbstring,json,xml,zip,pdo,pdo_mysql; MySQL 5.7+/MariaDB 10.3+
- Доступ: Root доступ или пользователь с правами sudo
Переменные окружения
- DOMAIN_NAME— домен сайта
- DB_NAME,- DB_USER,- DB_PASSWORD,- DB_HOST— параметры БД (обычно- 127.0.0.1)
- ADMIN_EMAIL— почта администратора
- UPLOAD_PATH— путь к каталогу сайта (например,- ~/www/DOMAIN_NAME)
- MODX_VERSION— версия MODX (например,- 3.0.6-pl)
Установка MODX на хостинге
Ставим стабильную версию MODX, настраиваем БД и права. Это универсальный путь для общего хостинга и серверов без Docker.
- 
Скачайте дистрибутив MODX Revolution. Перейдите на официальный сайт и загрузите архив. 
- 
Загрузите архив на сервер и распакуйте. Загрузите архив в папку вашего домена ( ~/www/DOMAIN_NAME) через FTP или менеджер файлов панели хостинга.
- 
Создайте базу и пользователя БД. Создайте базу данных в панели хостинга или выполните команду по SSH: Создание БД и пользователяCREATE DATABASE DB_NAME CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'DB_USER'@'localhost' IDENTIFIED BY 'DB_PASSWORD'; GRANT ALL PRIVILEGES ON DB_NAME.* TO 'DB_USER'@'localhost'; FLUSH PRIVILEGES;
- 
Выставьте права на директории записи. cd ~/www/DOMAIN_NAME find core/cache core/export core/packages assets -type d -exec chmod 775 {} \; find core/cache core/export core/packages assets -type f -exec chmod 664 {} \; chown -R WWW_USER:WWW_GROUP .После этого инсталлятор сможет создать конфигурацию и кэш. 
- 
Запустите веб-установщик. Откройте https://DOMAIN_NAME/setup/и выполните инсталяцию CMS: - тип установки: New installation
 

- доступ к БД: DB_HOST,DB_NAME,DB_USER,DB_PASSWORD

- путь core/оставить по умолчанию
- включить Clean URLs (если на сервере настроен rewrite)
- Удалите установщик.
После завершения нажмите кнопку удаления setup/или удалите каталог вручную.
Подсказка! Если вы переносите сайт, сначала импортируйте БД и каталог core/packages/ с установленными пакетами, затем выполните вход в manager/ и очистите кэш.
Настройка веб-сервера при установке на сервер
Nginx
server {
    listen 80;
    server_name DOMAIN_NAME;
    root /var/www/DOMAIN_NAME;
    index index.php index.html;
    location / {
        try_files $uri $uri/ @modx;
    }
    location @modx {
        rewrite ^/(.*)$ /index.php?q=$1 last;
    }
    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        fastcgi_pass unix:/run/php/php8.2-fpm.sock;
        fastcgi_read_timeout 120;
    }
    location ~* ^/(core|config.core.php) {
        deny all;
        return 403;
    }
    client_max_body_size 16m;
}
Создайте ссылку в sites-enabled, проверьте конфиг nginx -t и перезапустите службу.
PHP и расширения
Изучить как включаются расширения в панели хостинга можете в нашей инструкции.
Обновите php.ini: memory_limit=256M, upload_max_filesize=16M, post_max_size=16M, max_execution_time=120. Перезапустите php-fpm.
Проверь
php -v
php -m | grep -E "mbstring|pdo_mysql|xml|zip"
php -i | grep opcache.enable
Настройка дополнительных функций MODX

Подключение SSL-сертификата
Для работы по защищенному протоколу HTTPS используйте Let’s Encrypt или коммерческий SSL-сертификат
Кэширование и производительность
- Включите кэш в System Settings: cache_resource_default,cache_system_settings.
- Активируйте OPcache в PHP.
- Для тяжелых страниц рассмотрите Nginx-кэш с proxy_cacheна уровне обратного прокси.
Резервные копии
- База: mysqldump DB_NAME | gzip > backup-$(date +%F).sql.gz
- Файлы: архивируйте core/,assets/,config.core.php. Храните копии вне веб-корня.
Проверка работы
- Откройте https://DOMAIN_NAME/manager/, авторизуйтесь.
- Создайте ресурс «Главная», сделайте его site_start, включите Публиковать.
- Очистите кэш в админке и проверьте главную страницу сайта.
- Убедитесь, что core/config/config.inc.phpсоздан и недоступен из веба.
Распостранённые ошибки
| Ошибка / Симптом | Причина | Решение | 
|---|---|---|
| 404 на всех страницах | Не работает rewrite | Включите Friendly URLs и проверьте Nginx/Apache правила | 
| Нет записи в core/cache | Права на каталоги | Выдайте права на core/cache,assets | 
| Подключение к БД не удалось | Неверные DB_* | Проверьте логин/хост, пересоздайте пользователя | 
| Белый экран / 500 | Отсутствует расширение PHP | Установите pdo_mysql,mbstring,zip | 
| Менеджер не грузится по HTTPS | Неверный смешанный контент | Включите site_urlсhttps:// | 
Полезные ссылки
Официальная документация


