Гид по технологиям

Установка October CMS на Debian 9 (NGINX, MariaDB, Let's Encrypt)

• 5 min read • DevOps • Обновлено 25 Nov 2025
Установка October CMS на Debian 9 с NGINX и MariaDB
Установка October CMS на Debian 9 с NGINX и MariaDB

О чём статья

  • Что нужно перед установкой и минимальные требования.
  • Установка PHP, MariaDB, NGINX.
  • Получение сертификата Let’s Encrypt с помощью acme.sh (опционально).
  • Конфигурация NGINX и финальная настройка October CMS.

Скриншот панели установки October CMS

Требования

Перед началом убедитесь, что сервер соответствует минимальным требованиям October CMS:

  • PHP 7.0 или выше
  • PHP PDO Extension
  • cURL PHP Extension
  • OpenSSL PHP Extension
  • Mbstring PHP Library
  • Zip PHP Library
  • GD PHP Library
  • XML PHP Extension
  • JSON PHP Extension
  • Веб‑сервер: Apache с mod_rewrite или NGINX
  • Сервер базы данных: MariaDB, MySQL, PostgreSQL

Предусловия

  • Сервер с Debian 9 (stretch).
  • Некорневой пользователь с правами sudo.

Начальная подготовка

Проверьте версию Debian:

lsb_release -ds  
# Debian GNU/Linux 9.7 (stretch)

Настройте часовой пояс:

dpkg-reconfigure tzdata

Обновите пакеты системы:

apt update && apt upgrade -y

Установите базовые утилиты для администрирования:

apt install -y curl wget vim git sudo unzip socat bash-completion dirmngr apt-transport-https

Шаг 1 — Установка PHP и расширений

October CMS требует PHP 7.0 или новее. В Debian 9 доступен PHP 7.0 по умолчанию.

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

sudo apt install -y php7.0 php7.0-cli php7.0-fpm php7.0-common php7.0-mysql php7.0-curl php7.0-json php7.0-zip php7.0-gd php7.0-xml php7.0-mbstring

Проверьте загруженные модули PHP:

php -m

ctype
curl
exif
fileinfo
. . .
. . .

Проверьте версию PHP:

php --version

# PHP 7.0.33-0+deb9u1 (cli) (built: Dec  7 2018 11:36:49) ( NTS )

PHP-FPM обычно автозапускается и включён в автозагрузку на Debian 9. Если нужно, проверьте статус:

systemctl status php7.0-fpm

Шаг 2 — Установка MariaDB и создание базы данных

October поддерживает MySQL/MariaDB, PostgreSQL, SQLite. В Debian 9 по умолчанию используется MariaDB.

Установите MariaDB из официального репозитория:

sudo apt install -y software-properties-common dirmngr apt-transport-https
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] https://mirrors.nxthost.com/mariadb/repo/10.2/debian stretch main'
sudo apt update
sudo apt install -y mariadb-server

Проверьте версию MariaDB:

mysql --version
# mysql  Ver 15.1 Distrib 10.2.21-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

Запустите скрипт безопасности:

sudo mysql_secure_installation

Отвечайте на вопросы скрипта по безопасности (рекомендуется установить пароль root, удалить анонимных пользователей, запретить удалённый вход root, удалить тестовую базу и перезагрузить таблицы привилегий).

Войдите в MariaDB и создайте базу данных и пользователя для October:

sudo mysql -u root -p

CREATE DATABASE dbname;
GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
quit

Запомните имя базы, пользователя и пароль — они понадобятся при установке October.

Шаг 3 — Установка acme.sh и получение сертификата Let’s Encrypt (опционально)

HTTPS не обязателен, но рекомендуется. В этом разделе показано, как получить сертификаты с помощью acme.sh — лёгкого клиента на shell без внешних зависимостей.

Установка acme.sh:

sudo su - root
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh --install --accountemail [email protected]
source ~/.bashrc
cd ~

Проверьте версию acme.sh:

acme.sh --version
# v2.8.0

Получите сертификаты для домена:

# RSA 2048
acme.sh --issue --standalone -d example.com --keylength 2048
# ECDSA
acme.sh --issue --standalone -d example.com --keylength ec-256

Для тестовых сертификатов добавьте флаг –staging.

Сертификаты будут в домашней директории: для RSA — ~/example.com, для ECDSA — ~/example.com_ecc.

Создайте директорию для хранения сертификатов в /etc/letsencrypt:

mkdir -p /etc/letsencrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc

Установите сертификаты в системную папку и задайте команду перезагрузки NGINX при обновлении:

# RSA
acme.sh --install-cert -d example.com \
        --cert-file /etc/letsencrypt/example.com/cert.pem \
        --key-file /etc/letsencrypt/example.com/private.key \
        --fullchain-file /etc/letsencrypt/example.com/fullchain.pem \
        --reloadcmd "sudo systemctl reload nginx.service"

# ECC/ECDSA
acme.sh --install-cert -d example.com --ecc \
        --cert-file /etc/letsencrypt/example.com_ecc/cert.pem \
        --key-file /etc/letsencrypt/example.com_ecc/private.key \
        --fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem \
        --reloadcmd "sudo systemctl reload nginx.service"

acme.sh автоматически обновит сертификаты (репозиторий acme.sh управляет автоматическим продлением).

После получения сертификатов выйдите из root:

exit

Важно: если сервер работает за фаерволом, откройте порты 80 и 443 для проверки и доступа.

Шаг 4 — Установка и конфигурация NGINX для October

Установите NGINX:

sudo apt install -y nginx

Проверьте версию NGINX:

sudo nginx -v
# nginx version: nginx/1.10.3

Создайте конфигурационный файл для сайта:

sudo vim /etc/nginx/sites-available/october.conf

Вставьте следующую конфигурацию (параметры сервер_name, пути и сертификаты замените на ваши):

server {
    listen [::]:443 ssl http2;
    listen 443 ssl http2;
    listen [::]:80;
    listen 80;

    server_name example.com;

    index index.php index.html;
    root /var/www/october;

    ssl_certificate /etc/letsencrypt/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/example.com/private.key;
    ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/example.com_ecc/private.key;

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

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
        fastcgi_read_timeout 120s;
    }

    location ~ ^/favicon\.ico { try_files $uri /index.php; }
    location ~ ^/sitemap\.xml { try_files $uri /index.php; }
    location ~ ^/robots\.txt { try_files $uri /index.php; }
    location ~ ^/humans\.txt { try_files $uri /index.php; }
    location ~ ^/storage/app/uploads/public { try_files $uri 404; }
    location ~ ^/storage/app/media { try_files $uri 404; }
    location ~ ^/storage/temp/public { try_files $uri 404; }
    location ~ ^/modules/.*/assets { try_files $uri 404; }
    location ~ ^/modules/.*/resources { try_files $uri 404; }
    location ~ ^/modules/.*/behaviors/.*/assets { try_files $uri 404; }
    location ~ ^/modules/.*/behaviors/.*/resources { try_files $uri 404; }
    location ~ ^/modules/.*/widgets/.*/assets { try_files $uri 404; }
    location ~ ^/modules/.*/widgets/.*/resources { try_files $uri 404; }
    location ~ ^/modules/.*/formwidgets/.*/assets { try_files $uri 404; }
    location ~ ^/modules/.*/formwidgets/.*/resources { try_files $uri 404; }
    location ~ ^/modules/.*/reportwidgets/.*/assets { try_files $uri 404; }
    location ~ ^/modules/.*/reportwidgets/.*/resources { try_files $uri 404; }
    location ~ ^/plugins/.*/.*/assets { try_files $uri 404; }
    location ~ ^/plugins/.*/.*/resources { try_files $uri 404; }
    location ~ ^/plugins/.*/.*/behaviors/.*/assets { try_files $uri 404; }
    location ~ ^/plugins/.*/.*/behaviors/.*/resources { try_files $uri 404; }
    location ~ ^/plugins/.*/.*/reportwidgets/.*/assets { try_files $uri 404; }
    location ~ ^/plugins/.*/.*/reportwidgets/.*/resources { try_files $uri 404; }
    location ~ ^/plugins/.*/.*/formwidgets/.*/assets { try_files $uri 404; }
    location ~ ^/plugins/.*/.*/formwidgets/.*/resources { try_files $uri 404; }
    location ~ ^/plugins/.*/.*/widgets/.*/assets { try_files $uri 404; }
    location ~ ^/plugins/.*/.*/widgets/.*/resources { try_files $uri 404; }
    location ~ ^/themes/.*/assets { try_files $uri 404; }
    location ~ ^/themes/.*/resources { try_files $uri 404; }

}

Активируйте сайт и проверьте конфигурацию:

sudo ln -s /etc/nginx/sites-available/october.conf /etc/nginx/sites-enabled
sudo nginx -t
sudo systemctl reload nginx.service

Если вы используете UFW или другой фаервол, откройте порты 80 и 443:

sudo ufw allow 'Nginx Full'

Шаг 5 — Загрузка и установка October CMS

Создайте корневой каталог сайта и настройте права:

sudo mkdir -p /var/www/october
sudo chown -R [your_user]:[your_user] /var/www/october
cd /var/www/october

Скачайте установщик October CMS:

wget https://octobercms.com/download -O october.zip

Распакуйте архив и переместите файлы:

unzip october.zip
rm october.zip
mv install-master/* .

Задайте владельцем веб‑пользователя:

sudo chown -R www-data:www-data /var/www/october

Откройте в браузере install.php по адресу example.com/install.php и следуйте инструкциям графического установщика.

Шаг 6 — Завершение установки October CMS

Убедитесь, что проверка системы прошла успешно, и нажмите кнопку “Agree & Continue”.

Проверка системы в установщике October CMS

Настройте параметры базы данных и администратора.

Настройка базы данных в October CMS

Создание администратора October CMS

Можно оставить значения по умолчанию или настроить дополнительные параметры.

Дополнительные настройки в установщике October CMS

Нажмите синюю кнопку “Continue” чтобы продолжить.

На этапе выбора способа установки сайта у вас будет 3 варианта: Start from scratch, Start from a theme, Use a project ID. Выберите подходящий.

Выбор способа установки October CMS

Админ‑панель October доступна по пути /backend: example.com/backend

После успешной установки удалите установочные файлы:

sudo rm /var/www/october/install.php && sudo rm -rf /var/www/october/install_files

Критерии приёмки

  • Сайт отвечает по HTTP(S) и возвращает корректную страницу October CMS.
  • Админ‑панель доступна по /backend и можно войти под созданным администратором.
  • Файловая система корректно настроена: директории storage и uploads доступны для веб‑пользователя.
  • TLS сертификат установлен и не вызывает ошибок в браузере (если включён HTTPS).

Чек‑лист для разных ролей

  • Системный администратор:
    • Установить и обновить пакеты OS.
    • Настроить NGINX и PHP‑FPM.
    • Настроить автоматическое обновление сертификатов.
  • Разработчик:
    • Проверить разрешения в /var/www/october.
    • Подключить репозиторий темы или плагина.
    • Проверить совместимость с PHP‑модулями.
  • Администратор сайта:
    • Создать администратора в установщике.
    • Настроить резервное копирование БД и файлов.
    • Проверить политики безопасности и обновления плагинов.

Отладка и распространённые ошибки

  • Ошибка 502 Bad Gateway: проверьте, запущен ли php7.0-fpm и соответствует ли сокет fastcgi_pass.
  • 403 Forbidden: проверьте права и владельца каталога /var/www/october; файлы должны быть доступны веб‑серверу.
  • Ошибка соединения с базой данных: проверьте учетные данные, хост, и что MariaDB запущена.
  • SSL‑ошибки: проверьте правильность путей к сертификатам и наличие полного цепочного файла fullchain.pem.

Безопасность и обновления

  • Регулярно обновляйте Debian и PHP: apt update && apt upgrade -y.
  • Обновляйте плагины и ядро October через админ‑панель.
  • Отключите доступ к install.php после установки.
  • Ограничьте доступ к /backend по IP (по возможности) или включите двухфакторную аутентификацию для аккаунтов админов.
  • Делайте резервные копии базы данных и директории storage перед обновлениями.

Быстрая методология развертывания (mini‑SOP)

  1. Подготовьте сервер (обновления и базовые утилиты).
  2. Установите PHP и расширения.
  3. Установите MariaDB и создайте базу.
  4. (Опционально) Получите TLS‑сертификат acme.sh.
  5. Установите и настройте NGINX.
  6. Скачайте October, распакуйте и установите через веб‑установщик.
  7. Удалите установочные файлы и проверьте доступность /backend.

Когда этот подход не подходит

  • Если требуется Windows‑окружение — инструкция для Linux (Debian) не применима.
  • Если нужен встроенный в облако сертификат и автоматическая интеграция — возможно, предпочтительнее использовать поставщика облачной платформы.
  • Для проектов с очень большим трафиком потребуется отдельная оптимизация PHP‑FPM и NGINX (пулы процессов, кеширование, CDN).

Факт‑бокс

  • Минимальная версия PHP: 7.0
  • Пример MariaDB: 10.2 (Debian 9 по умолчанию)
  • Порты: 80 (HTTP), 443 (HTTPS)

Решение: использовать SSL или нет (диаграмма)

flowchart TD
  A{Нужен ли HTTPS?}
  A -- Да --> B[Получить сертификат через acme.sh]
  A -- Нет --> C[Оставить HTTP, контролировать доступ]
  B --> D[Настроить NGINX и установить certs в /etc/letsencrypt]
  D --> E[Автообновление сертификатов]
  C --> E
  E --> F[Проверить сайт и /backend]

Ссылки

Итог

Вы установили October CMS на Debian 9 с NGINX и MariaDB. При желании добавили HTTPS через acme.sh и Let’s Encrypt. Проверьте критерии приёмки, обезопасьте систему и настройте регулярное резервное копирование.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро