4.1.15 Встановлення Subrion CMS на хостинг та сервер

Банер Subrion 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-InstallationCheck

  • Прийміть ліцензійну угоду;

SubrionLicense

  • Заповніть параметри раніше створеної бази даних (DB_HOST, DB_NAME, DB_USER, DB_PASSWORD) і адміністратора;

Configuration

  • За потреби завантажте конфігураційний файл;

ScriptInstallation

Встановлення 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

Корисні посилання