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

Установка Anchor CMS на Debian 9 с NGINX и MariaDB

5 min read DevOps Обновлено 08 Nov 2025
Установка Anchor CMS на Debian 9 — NGINX + MariaDB
Установка 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.

Изображение логотипа Anchor и экрана установки

Веб‑установщик Anchor — стартовая страница

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

Выбор языка и часового пояса в установщике Anchor

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

Настройки базы данных в установщике Anchor

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

Настройки метаданных сайта в установщике Anchor

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

Форма создания аккаунта администратора в установщике Anchor

После завершения установки крайне важно удалить папку 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.

Ссылки

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

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

Троян Herodotus: как он работает и как защититься
Кибербезопасность

Троян Herodotus: как он работает и как защититься

Включить новое меню «Пуск» в Windows 11
Windows руководство

Включить новое меню «Пуск» в Windows 11

Панель полей сводной таблицы в Excel — руководство
Excel

Панель полей сводной таблицы в Excel — руководство

Включить новое меню «Пуск» в Windows 11
Windows 11

Включить новое меню «Пуск» в Windows 11

Дубликаты Диспетчера задач в Windows 11 — как исправить
Windows

Дубликаты Диспетчера задач в Windows 11 — как исправить

История просмотров Reels в Instagram — как найти
Instagram

История просмотров Reels в Instagram — как найти