4.1.15 Установка Subrion CMS на хостинг и сервер

Subrion Banner The Host

Subrion CMS — свободная CMS и фреймворк на PHP/MySQL для сайтов любого типа: от блогов и каталогов до сложных порталов с платной подпиской и расширенной системой прав и пакетов. Проект распространяется по GPLv3, поддерживает плагины, шаблоны и гибкую модель доступа пользователей.

В руководстве используется классическая установка через архив Subrion, конфигурация стека Nginx + PHP-FPM + MySQL/MariaDB на Ubuntu 24.04 LTS и последующий запуск веб-установщика.

Подготовка

Требования

Переменные окружения

  • DOMAIN_NAME — Ваше доменное имя
  • SERVER_IP — публичный IP-адрес сервера
  • DB_NAME, DB_USER, DB_PASSWORD — параметры базы данных для Subrion
  • SUBRION_PATH — путь к каталогу проекта, например /var/www/subrion
  • PHP_FPM_SOCKET — путь к сокету PHP-FPM, например /run/php/php8.2-fpm.sock

Установка Subrion CMS на хостинг

  1. Скачайте стабильную версию Subrion CMS с официального сайта Subrion CMS
  2. Загрузите архив на хостинг через менеджер файлов или по FTP.
  3. Создайте пользователя и базу данных. Сохраните DB_HOST, DB_NAME, DB_USER, DB_PASSWORD.
  4. Запустите установщик через браузер. Откройте http://DOMAIN_NAME и следуйте мастеру установки:
  • Проверьте соответствие техническим требованиям;

Pre-Installation_Check

  • Приймите лицензионное соглашение;

Subrion_License

  • Заполните параметры созданой ранее базы данных (DB_HOST, DB_NAME, DB_USER, DB_PASSWORD) и администратора;

Configuration

  • При необходимости скачайте конфигурационный файл;

Script_Installation

Установка Subrion CMS на сервер

Обновление пакетов и базовых утилит
sudo apt update && sudo apt -y upgrade
sudo apt -y install curl gnupg2 software-properties-common unzip ca-certificates

Обновляются пакеты системы и устанавливаются утилиты, необходимые для загрузки архивов и работы с репозиториями.

Установите PHP-FPM и необходимые расширения

Установка PHP 8.2 с расширениями
sudo apt -y install php8.2 php8.2-fpm php8.2-cli \
  php8.2-mbstring php8.2-xml php8.2-gd php8.2-zip \
  php8.2-curl php8.2-mysql php8.2-intl php8.2-opcache
php -v

Subrion работает на современном PHP; набор модулей покрывает требования к работе с БД, изображениями, архивами и локалями. Команда php -v фиксирует установленную версию PHP.

Установите Nginx

Установка и запуск Nginx
sudo apt -y install nginx
sudo systemctl enable --now nginx

Nginx будет обрабатывать HTTP-запросы и передавать PHP-скрипты в PHP-FPM.

Установите и подготовьте СУБД (MySQL/MariaDB)

Установка MySQL-сервера
sudo apt -y install mysql-server
mysql --version

Создайте базу данных и пользователя для Subrion:

Создание базы данных Subrion
sudo mysql <<SQL
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;
SQL

Используется кодировка utf8mb4 для полной поддержки Unicode и эмодзи в контенте сайта.

Загрузите и разверните Subrion

Subrion распространяется в виде zip-архива; установка выполняется из официального архива проекта. Скачайте стабильную версию Subrion CMS с официального сайта Subrion CMS

Загрузка Subrion из официального архива
sudo mkdir -p SUBRION_PATH
cd SUBRION_PATH

wget https://tools.subrion.org/get/latest.zip
unzip latest.zip
rm latest.zip

Архив latest.zip содержит актуальный релиз ветки 4.2.x; после распаковки файлы приложения готовы к запуску установщика.

Права и владелец проекта

Права на файлы Subrion
sudo chown -R www-data:www-data SUBRION_PATH
sudo find SUBRION_PATH -type d -exec chmod 755 {} \;
sudo find SUBRION_PATH -type f -exec chmod 644 {} \;

Владелец www-data (пользователь веб-сервера и PHP-FPM) обеспечивает корректную запись временных файлов, кэша и загружаемых файлов.

Конфигурация Nginx для Subrion

Ниже пример виртуального хоста Nginx, адаптированный под Subrion и PHP-FPM-сокет. Конфигурация основана на рабочем примере для Subrion под Nginx с корректной обработкой ЧПУ и установщика.

/etc/nginx/sites-available/subrion.conf
server {
  listen 80;
  server_name DOMAIN_NAME;

  root SUBRION_PATH;
  index index.php;

  location = /favicon.ico {
    log_not_found off;
    access_log off;
  }

  location = /robots.txt {
    allow all;
    log_not_found off;
    access_log off;
  }

  location / {
    try_files $uri $uri/ /index.php?q=$uri&$args;
  }

  error_page 404 /404.html;
  location = /404.html {
    root /usr/share/nginx/html;
  }

  error_page 500 502 503 504 /50x.html;
  location = /50x.html {
    root /usr/share/nginx/html;
  }

  location ~ \.php$ {
    include fastcgi_params;
    fastcgi_pass unix:PHP_FPM_SOCKET;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  }

  location /install/ {
    rewrite ^/install/(.*)$ /install/index.php?_p=$1;
  }

  location ~ /\.ht {
    deny all;
  }

  location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
    expires max;
    log_not_found off;
  }
}

Активируйте сайт и перезагрузите Nginx:

Активация сайта Subrion
sudo ln -s /etc/nginx/sites-available/subrion.conf /etc/nginx/sites-enabled/subrion.conf
sudo nginx -t
sudo systemctl reload nginx

Параметр try_files передаёт запросы к index.php с параметром q, как ожидает Subrion, а отдельный блок location /install/ обеспечивает корректную работу веб-установщика.

Внимание! После завершения установки обязательно удалите каталог /install/, измените стандартный URL административной панели, ограничьте доступ к админке по IP или HTTP-аутентификации и регулярно обновляйте движок и плагины. Для версии 4.2.1 ранее публиковались уязвимости, связанные с загрузкой файлов (например, CVE-2018-19422), поэтому не используйте тестовый демо-логин/пароль и отключайте неиспользуемые пакеты.

Настройка дополнительных функций Subrion

SSL-сертификат (HTTPS)

Для работы по защищенному протоколу HTTPS используйте Let’s Encrypt или коммерческий SSL-сертификат

Кэширование и производительность PHP

Включите и настройте opcache для ускорения работы Subrion:

/etc/php/8.2/fpm/php.ini
opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=256
opcache.max_accelerated_files=20000
opcache.interned_strings_buffer=16
opcache.validate_timestamps=1
opcache.revalidate_freq=60

Перезапустите PHP-FPM:

Перезапуск PHP-FPM
sudo systemctl restart php8.2-fpm

Обработка изображений и медиаконтента

Subrion активно использует изображения в шаблонах и контенте; для их обработки достаточно библиотеки GD, но при необходимости можно подключить Imagick.

Установка GD и Imagick
sudo apt -y install php8.2-gd imagemagick php8.2-imagick
sudo systemctl restart php8.2-fpm

Рекомендация! Для типовых сайтов достаточно php8.2-gd. Подключайте php8.2-imagick, если требуется работа с большими изображениями, TIFF/WEBP или расширенные эффекты. Проверить наличие модулей можно командой php -m | grep -E 'gd|imagick'.

Проверка работы

  • Перейдите на http://DOMAIN_NAME/ и убедитесь, что открывается стартовая страница Subrion без PHP-ошибок.
  • Войдите в админ-панель (http://DOMAIN_NAME/panel/ или переименованный URL) и проверьте:
    • работу дашборда,
    • создание и публикацию тестовой страницы,
    • загрузку файлов в разделе контента.
Распространённые ошибки
Ошибка / Симптом Причина Решение
502 Bad Gateway при открытии сайта Неверный PHP_FPM_SOCKET в конфиге Nginx или не запущен PHP-FPM Уточните путь к сокету (/run/php/php8.2-fpm.sock), перезапустите php8.2-fpm и nginx
Установщик зацикливается на /install/ или переходит на /install/install/ Неправильный блок location / или отсутствует правило location /install/ в Nginx Примените конфиг из примера (строка try_files $uri $uri/ /index.php?q=$uri&$args; и блок location /install/), перезагрузите Nginx
Access denied for user 'DB_USER'@'localhost' при установке Неверные DB_USER/DB_PASSWORD или отсутствуют права на DB_NAME Пересоздайте пользователя с нужным паролем и выдайте GRANT ALL PRIVILEGES ON DB_NAME.*
Белый экран или HTTP 500 после установки Фатальная ошибка PHP (несовместимое расширение, устаревший модуль или ошибка в плагине) Включите отображение ошибок на время диагностики, временно отключите сторонние плагины, обновите PHP-модули
Нельзя загрузить файлы или аватары Неверные права на каталоги uploads/, tmp/ или ограничения open_basedir Установите владельца www-data и права 755 на каталоги, проверьте настройки PHP в панели
Жалобы сканеров безопасности на уязвимость Subrion 4.2.1 Используется устаревший неподдерживаемый релиз с известными уязвимостями (в т.ч. произвольная загрузка файлов) Ограничьте доступ к админке, отключите небезопасные плагины, примените патчи от разработчиков или рассмотрите миграцию на другой актуальный движок при невозможности обновления Subrion

Полезные ссылки