Установка October CMS на Debian 9 (NGINX, MariaDB, Let's Encrypt)
О чём статья
- Что нужно перед установкой и минимальные требования.
- Установка PHP, MariaDB, NGINX.
- Получение сертификата Let’s Encrypt с помощью acme.sh (опционально).
- Конфигурация NGINX и финальная настройка 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”.

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


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

Нажмите синюю кнопку “Continue” чтобы продолжить.
На этапе выбора способа установки сайта у вас будет 3 варианта: Start from scratch, Start from a theme, Use a project ID. Выберите подходящий.

Админ‑панель 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)
- Подготовьте сервер (обновления и базовые утилиты).
- Установите PHP и расширения.
- Установите MariaDB и создайте базу.
- (Опционально) Получите TLS‑сертификат acme.sh.
- Установите и настройте NGINX.
- Скачайте October, распакуйте и установите через веб‑установщик.
- Удалите установочные файлы и проверьте доступность /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. Проверьте критерии приёмки, обезопасьте систему и настройте регулярное резервное копирование.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента