Установка Anchor CMS на FreeBSD 12 с Nginx, PHP и MariaDB
Кратко
Краткое руководство по быстрой установке Anchor CMS на FreeBSD 12 с использованием Nginx, PHP-FPM, MariaDB и Composer. Описаны требования, подготовка системы, настройка TLS через acme.sh и проверенные команды для развёртывания. Подойдёт для небольших блогов и тестовых серверов.
TL;DR
Убедитесь, что у вас есть непользователь root с sudo, обновлённая система и установлены PHP (>=5.6, в примерах — PHP 7.2), MariaDB, Nginx и Composer. Создайте базу, получите сертификат (опционально), настройте Nginx и запустите веб-установщик Anchor через браузер.
H1
О чём эта инструкция
Это пошаговое руководство по установке Anchor CMS — лёгкой open-source CMS на PHP — на сервер FreeBSD 12 с Nginx, PHP-FPM, MariaDB и Composer. Включены команды, конфигурационные файлы и практичные советы по безопасности и отладке.
Важные термины в одной строке
- PHP — серверный язык программирования, на котором написан Anchor.
- Nginx — веб-сервер и обратный прокси.
- MariaDB — форк MySQL, реляционная СУБД.
- Composer — менеджер зависимостей для PHP.
- acme.sh — лёгкий клиент для получения сертификатов Let’s Encrypt.
Требования
Убедитесь, что система соответствует требованиям:
- MySQL 5.6+ или MariaDB (MySQL 5.7+ рекомендуется).
- PHP 5.6+ с расширениями: curl, mcrypt, gd, mbstring, pdo_mysql или pdo_sqlite (в примере используется PHP 7.2 и набор расширений).
- Веб-сервер: Nginx или Apache (в этом руководстве — Nginx).
- Непривилегированный пользователь с sudo.
Предварительные требования
- FreeBSD 12.
- Непользователь root с sudo.
Начальные шаги
Проверьте версию FreeBSD:
uname -ro
# FreeBSD 12.0-RELEASEНастройте часовой пояс:
tzsetupОбновите систему и пакеты:
freebsd-update fetch install
pkg update && pkg upgrade -yУстановите базовые утилиты:
pkg install -y sudo vim unzip wget bash socatШаг 1 — Установка PHP и расширений
Anchor требует PHP 5.6 или выше. В примере используется PHP 7.2 и набор распространённых расширений:
sudo pkg install -y php72 php72-mbstring php72-tokenizer php72-pdo php72-pdo_mysql php72-openssl php72-hash php72-json php72-phar php72-filter php72-zlib php72-dom php72-xmlwriter php72-xmlreader php72-curl php72-session php72-ctype php72-iconv php72-gd php72-simplexml php72-zip php72-calendar php72-fileinfo php72-intl php72-soap php72-xmlrpcПосмотреть загруженные модули PHP:
php -mПроверить версию PHP:
php --version
# PHP 7.2.x (cli)Включите и запустите PHP-FPM:
sudo sysrc php_fpm_enable=yes
sudo service php-fpm startШаг 2 — Установка MariaDB и создание базы данных
Anchor поддерживает MySQL/MariaDB и SQLite. В этом примере используем MariaDB.
Установите MariaDB клиент и сервер:
sudo pkg install -y mariadb102-client mariadb102-serverЗапустите и включите сервис MariaDB:
sudo sysrc mysql_enable="yes"
sudo service mysql-server startУкрепите безопасность и задайте пароль root:
sudo mysql_secure_installationВход в MariaDB:
mysql -u root -p
# Введите парольСоздайте базу и пользователя (замените dbname, username и password на свои значения):
CREATE DATABASE dbname;
GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;Выйдите:
quitШаг 3 — Установка acme.sh и получение сертификата Let’s Encrypt (опционально)
TLS не обязателен, но рекомендуется. acme.sh — лёгкий shell-клиент для получения сертификатов.
Установите acme.sh:
sudo pkg install acme.shПроверьте версию:
acme.sh --versionПолучите RSA- и ECDSA-сертификаты (замените example.com на ваш домен):
# RSA 2048
acme.sh --issue --standalone -d example.com --keylength 2048
# ECDSA
acme.sh --issue --standalone -d example.com --keylength ec-256Для тестирования используйте флаг –staging.
Путь, где acme.sh сохранит сертификаты по умолчанию:
- RSA: /home/username/example.com
- ECDSA: /home/username/example.com_ecc
Скопируйте/установите сертификаты в /etc/letsencrypt (создайте директории корректно):
sudo mkdir -p /etc/letsencrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_eccУстановите сертификаты и настройте команду перезагрузки Nginx (замените example.com):
# 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 service nginx reload"
# 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 service nginx reload"acme.sh сам управляет автообновлением сертификатов.
Шаг 4 — Установка и настройка Nginx
Установите Nginx:
sudo pkg install -y nginxПроверьте версию:
nginx -v
# nginx version: nginx/1.14.xВключите и запустите Nginx:
sudo sysrc nginx_enable=yes
sudo service nginx startСоздайте конфигурацию сайта для Anchor (файл /usr/local/etc/nginx/anchor.conf):
sudo vim /usr/local/etc/nginx/anchor.confПример содержимого (замените example.com и пути сертификатов на ваши):
server {
listen 80;
listen 443 ssl;
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;
server_name example.com;
root /usr/local/www/anchor;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php;
}
location ~ \.php$ {
try_files $uri =404;
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}Включите этот файл в основной nginx.conf, добавив в блок http { }:
include /usr/local/etc/nginx/anchor.conf;Проверьте конфигурацию и перезагрузите:
sudo nginx -t
sudo service nginx reloadШаг 5 — Установка Composer
Установите Composer — менеджер зависимостей PHP:
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 --version
# Composer version X.Y.ZШаг 6 — Загрузка и установка Anchor CMS
Создайте корневую директорию сайта и установите права:
sudo mkdir -p /usr/local/www/anchor
sudo chown -R your_user:your_user /usr/local/www/anchorЗамените your_user на имя вашего непользовательского аккаунта.
Перейдите в директорию:
cd /usr/local/www/anchorУстановите Anchor через Composer:
composer create-project anchorcms/anchor-cms .После установки отдайте права системному пользователю веб-сервера (обычно www):
sudo chown -R www:www /usr/local/www/anchorШаг 7 — Завершение установки через веб-интерфейс
Откройте в браузере http://example.com (замените на ваш домен). Вы увидите веб-установщик Anchor.

Нажмите «Run the installer» (Запустить установщик). Далее выберите язык и часовой пояс:

Заполните данные базы данных (имя базы, пользователь, пароль):

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

Создайте первую учётную запись администратора:

После завершения установки удалите папку install ради безопасности:
sudo rm -rf /usr/local/www/anchor/installКонтрольный список перед запуском
- PHP-FPM работает и прослушивает порт/сокет.
- Nginx загружает конфигурацию без ошибок (nginx -t).
- База данных создана и доступна.
- Права на директории установлены: файлы сайта принадлежат www:www.
- TLS сертификат установлен (опционально).
- Папка install удалена.
Критерии приёмки
- Сайт доступен по HTTP/HTTPS и отображает домашнюю страницу Anchor.
- Вход в админ-панель с созданными учётными данными успешен.
- Нет ошибок в логах Nginx и PHP-FPM при загрузке страниц.
- Страницы статей/админ-интерфейс корректно сохраняют данные в базу.
Рольные чек-листы
Администратор сервера:
- Установить и обновить пакеты, создать пользователя и базу.
- Настроить firewall / pf (при необходимости).
Разработчик/верстальщик:
- Проверить права доступа к файлам, настроить шаблоны и тестировать на локальном окружении.
Оператор (DevOps):
- Настроить автоматическое обновление сертификатов, мониторинг и бэкапы базы.
Частые ошибки и решение
- Ошибка 502 Bad Gateway: проверьте, что php-fpm запущен и fastcgi_pass настроен на правильный адрес/сокет.
- Неверные права файлов: убедитесь, что веб-сервер имеет доступ к директории сайта.
- Ошибка подключения к базе: проверьте credentials и что MariaDB слушает локальные соединения.
Когда этот подход не подойдёт
- На сильно нагрузочном проекте Anchor (как CMS для крупного портала) лучше выбирать более масштабируемое решение и кластерную базу.
- Если нужен лёгкий одностраничный сайт без базы — можно использовать статический генератор.
Мини-методология установки (быстрая последовательность)
- Обновить систему.
- Установить PHP + расширения, запустить php-fpm.
- Установить и настроить MariaDB, создать БД.
- Установить Nginx и настроить конфигурацию сайта.
- Установить Composer и загрузить Anchor.
- Провести веб-установку и удалить install.
Простая диаграмма принятия решения (выбор БД)
flowchart TD
A[Нужна БД для сайта?] -->|Нет| B[Использовать SQLite]
A -->|Да| C[Требуется многопользовательская/удалённая БД?]
C -->|Нет| B
C -->|Да| D[Использовать MariaDB/MySQL]Безопасность и конфиденциальность
- Всегда удаляйте директорию install после установки.
- Используйте сильные пароли для БД и админ-учётки.
- Настройте автоматическое обновление сертификатов и резервное копирование базы.
- При обработке пользовательских данных соблюдайте местное законодательство о персональных данных (например, GDPR — если применимо для вашего региона).
Откат и удаление сайта
Чтобы полностью удалить развёрнутую копию Anchor:
sudo service nginx stop
sudo service php-fpm stop
sudo rm -rf /usr/local/www/anchor
# при необходимости удалить базу и пользователя в MariaDB
mysql -u root -p -e "DROP DATABASE dbname; DROP USER 'username'@'localhost';"Однострочный глоссарий
- Anchor CMS — небольшой PHP-блоговый движок.
- PHP-FPM — менеджер процессов PHP для работы с веб-серверами.
- acme.sh — shell-клиент для Let’s Encrypt.
Ссылки
Итог
Это руководство покрывает весь цикл установки Anchor CMS на FreeBSD 12: от подготовки системы до веб-установщика и базовых мер безопасности. Используйте контрольные списки и критерии приёмки перед запуском в продакшн.
Похожие материалы
Троян Herodotus: как он действует и как защититься
Включить новое меню «Пуск» в Windows 11
Панель полей PivotTable в Excel — руководство
Включить новый Пуск в Windows 11 — инструкция
Как убрать дубликаты Диспетчера задач Windows 11