Установка Anchor CMS на Debian 9 с NGINX и MariaDB
Что такое Anchor: лёгкая блого‑CMS на PHP, фокусируется на простоте и минимуме зависимостей.
Требования
Убедитесь, что сервер соответствует требованиям:
- MySQL 5.6 или выше (рекомендуется MySQL 5.7) или совместимая MariaDB
- PHP 7.1 или выше с расширениями: curl, mcrypt, gd, mbstring, pdo_mysql или pdo_sqlite
- Веб‑сервер Apache или NGINX (в этом руководстве используется NGINX)
Предварительные условия
- Сервер с Debian 9 (stretch)
- Пользователь с правами sudo (не root)
Начальные шаги
Проверьте версию 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Важно: убедитесь, что у вас открыт доступ к интернету с сервера и что DNS разрешает доменное имя, которое вы будете использовать в конфигурации NGINX.
Шаг 1 — Установка PHP и расширений
Anchor требует PHP ≥7.1. В Debian 9 в официальных репозиториях доступна PHP 7.0/7.1; рекомендуем использовать репозиторий Ondřej Surý для свежих версий:
sudo apt-get install apt-transport-https lsb-release ca-certificates
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list
sudo apt updateУстановите PHP и необходимые расширения:
sudo apt install -y php7.2 php7.2-cli php7.2-fpm php7.2-common php7.2-mbstring php7.2-curl php7.2-mysql php7.2-sqlite3 php7.2-gd php7.2-xmlПроверьте версию PHP:
php --version (Вы увидите строку с версией PHP, например PHP 7.2.x)
Важно: используйте версию PHP, совместимую с расширениями и вашим кодом. Для production предпочтительно включить OPcache и настроить php.ini согласно нагрузке.
Шаг 2 — Установка MariaDB и создание базы данных
Anchor поддерживает MySQL/MariaDB и SQLite. В репозиториях Debian может быть старая версия MariaDB; при необходимости используйте официальный репозиторий MariaDB.
Установите MariaDB:
sudo apt install -y mariadb-serverПроверьте версию MariaDB:
mysql --versionЗапустите скрипт безопасной настройки и задайте пароль root:
sudo mysql_secure_installationОтветьте на вопросы скрипта, как показано ниже (рекомендуемые варианты выделены):
Enter current password for root (enter for none):
Set root password? [Y/n]: Y
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]: Y
Reload privilege tables now? [Y/n]: YВойдите в консоль MariaDB и создайте базу и пользователя (замените dbname, username, password на свои значения):
mysql -u root -p
# Enter password
CREATE DATABASE dbname;
GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
quitСовет: храните учётные данные в безопасном месте (password manager).
Шаг 3 — Установка и настройка NGINX
Установите NGINX:
sudo apt install -y nginxПроверьте версию:
nginx -vСоздайте файл конфигурации сайта, например /etc/nginx/sites-available/anchor.conf, и вставьте следующий блок. Замените example.com на ваше доменное имя и проверьте путь root:
server {
listen 80;
server_name example.com;
root /var/www/anchor;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
include fastcgi_params;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}Активируйте сайт и проверьте конфигурацию:
sudo ln -s /etc/nginx/sites-available/anchor.conf /etc/nginx/sites-enabled
sudo nginx -t
sudo systemctl reload nginx.serviceПримечание: если используете UFW, откройте порты HTTP/HTTPS:
sudo ufw allow 'Nginx Full'Если возникнут ошибки 502 Bad Gateway — проверьте, запущен ли php-fpm и совпадает ли путь сокета fastcgi_pass с версией PHP (php7.2-fpm.sock).
Шаг 4 — Установка Composer
Composer — менеджер зависимостей PHP, он нужен для установки Anchor:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('SHA384', 'composer-setup.php') === '48e3236262b34d30969dca3c37281b3b4bbe3221bda826ac6a9a62d6444cdb0dcd0615698a5cbe587c3f0fe57a54d8f5') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
sudo mv composer.phar /usr/local/bin/composerПроверьте версию Composer:
composer --versionШаг 5 — Загрузка и установка Anchor CMS
Создайте корневую папку сайта и назначьте владельца:
sudo mkdir -p /var/www/anchorЗамените [your_user] на имя вашего пользователя при выполнении команды ниже:
sudo chown -R [your_user]:[your_user] /var/www/anchorПерейдите в папку и установите Anchor через Composer:
cd /var/www/anchor
composer create-project anchorcms/anchor-cms .После установки верните владельца на www-data и создайте каталог для сессий PHP:
sudo chown -R www-data:www-data /var/www/anchor
sudo mkdir -p /var/lib/php/session && sudo chown -R www-data:www-data /var/lib/phpПроверьте, чтобы права и владелец были корректны: веб‑сервер (www-data) должен иметь доступ к файлам и к каталогу для загрузки/сессий.
Шаг 6 — Завершение установки через веб‑интерфейс
Откройте в браузере URL вашего сайта, например http://example.com. Вы увидите веб‑установщик Anchor.


Нажмите кнопку “Run the installer” (Запустить установщик). На экране выбора языка и часового пояса выберите нужные параметры и нажмите “Next Step”:

На странице конфигурации базы данных введите созданные ранее данные:

Далее введите метаданные сайта (название, описание):

Создайте первый администраторский аккаунт:

После завершения установки крайне важно удалить папку install по соображениям безопасности:
sudo rm -rf /var/www/anchor/installРекомендации по безопасности и эксплуатации
- Настройте HTTPS с помощью Let’s Encrypt (certbot) — никогда не оставляйте сайт без SSL в проде.
- Убедитесь в корректных правах на файлы: веб‑сервер должен иметь доступ, но ненужные права на запись для публичных директорий лучше ограничить.
- Настройте резервное копирование базы данных и файлов (rsync, mysqldump, cron).
- Подумайте о настройке fail2ban для защиты SSH и веб‑интерфейса.
Отладка и частые проблемы
- 502 Bad Gateway: проверьте статус php-fpm (systemctl status php7.2-fpm) и соответствие сокета в конфиге NGINX.
- Ошибка подключения к базе: проверьте хост, пользователя, пароль и права доступа к базе (GRANT).
- Ошибки прав на файлы: временно выставьте более открытые права для теста, затем ресторируйте более строгие.
Критерии приёмки
- Сайт доступен по HTTP/HTTPS и отвечает страницей Anchor.
- Веб‑установщик завершил все шаги без ошибок.
- Папка /var/www/anchor/install удалена.
- Администратор может войти в панель и создать/опубликовать запись.
- Созданы резервные копии базы и файлов, настроен мониторинг/логирование.
Краткая методология установки (одной строкой)
Обновить систему → установить PHP и расширения → настроить MariaDB → настроить NGINX → установить Composer → установить Anchor → завершить через веб‑установщик → обезопасить систему.
Чек‑лист ролей
Администратор сервера:
- Обновить систему, установить пакеты, настроить firewall и HTTPS.
- Настроить резервное копирование и мониторинг.
Веб‑разработчик:
- Проверить совместимость тем/плагинов с версией PHP.
- Настроить права и автоматизацию деплоя.
Контент‑менеджер:
- Создать аккаунт администратора, настроить метаданные сайта, опубликовать тестовую статью.
Факт‑бокс
- Минимум PHP: 7.1
- Рекомендуемая БД: MySQL 5.6+ или MariaDB совместимой версии
- ОС в примере: Debian 9 (stretch)
Короткий глоссарий
- php-fpm — менеджер процессов PHP для FastCGI.
- Composer — менеджер зависимостей PHP.
- NGINX — высокопроизводительный веб‑сервер.
FAQ
Q: Нужно ли сразу ставить HTTPS?
A: Да. Для продакшена HTTPS обязателен — используйте Let’s Encrypt для бесплатного сертификата.
Q: Что делать при ошибке 502?
A: Проверьте статус сервиса php‑fpm и корректность пути unix‑сокета в конфигурации NGINX.
Ссылки
Похожие материалы
Троян Herodotus: как он работает и как защититься
Включить новое меню «Пуск» в Windows 11
Панель полей сводной таблицы в Excel — руководство
Включить новое меню «Пуск» в Windows 11
Дубликаты Диспетчера задач в Windows 11 — как исправить