Установка Anchor CMS на FreeBSD 12 с Nginx, MariaDB и PHP
Кратко: пошагово установим Anchor CMS на FreeBSD 12 с PHP-FPM, Nginx и MariaDB, получим сертификат Let’s Encrypt через acme.sh и настроим права и службу. Подготовьте нерутовый sudo-пользователь, пакетный менеджер pkg и доступ по SSH или консоли.
Важно: в примерах заменяйте example.com, dbname, username и password на свои значения
Введение
Anchor — лёгкая open source CMS на PHP. В этом руководстве показана установка и базовая настройка Anchor CMS на FreeBSD 12 с Nginx, MariaDB и Composer. Даны дополнительные рекомендации по безопасности, проверкам и откату.
Основные требования
- MariaDB или MySQL 5.6+ (рекомендуется 5.7+). Опишем на MariaDB.
- PHP 5.6+ с расширениями: curl, mcrypt, gd, mbstring, pdo_mysql или pdo_sqlite.
- Веб-сервер: Nginx (в примере) или Apache.
- Нерутовый пользователь с правами sudo.
Короткий глоссарий
- PHP-FPM — менеджер процессов PHP, обслуживает запросы через FastCGI.
- Composer — менеджер зависимостей PHP.
- acme.sh — лёгкий клиент для получения сертификатов Let’s Encrypt.
Подготовка системы
Проверьте версию 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Важно
- Работайте под нерутовым пользователем с sudo. Многие команды в инструкции требуют прав администратора.
Шаг 1. Установка PHP и расширений
Anchor требует PHP 5.6+. В примере используется PHP 7.2 из пакетов FreeBSD.
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-xml 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 -mПроверьте версию PHP:
php --version
# пример: PHP 7.2.x (cli)Включите и запустите PHP-FPM:
sudo sysrc php_fpm_enable=yes
sudo service php-fpm startШаг 2. Установка MariaDB и создание базы данных
Установим MariaDB 10.2 (пакет mariadb102):
sudo pkg install -y mariadb102-client mariadb102-serverЗапустите и включите сервер:
sudo sysrc mysql_enable="yes"
sudo service mysql-server startЗапустите скрипт безопасности:
sudo mysql_secure_installationСледуйте подсказкам и задайте пароль для root, удалите анонимных пользователей и тестовую базу.
Создайте базу и пользователя для Anchor:
mysql -u root -p
CREATE DATABASE dbname;
GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
quitЗамените dbname, username и password своими значениями.
Шаг 3. Получение сертификата Let’s Encrypt через acme.sh (опционально)
acme.sh — простой клиент без внешних зависимостей.
sudo pkg install acme.sh
acme.sh --versionПолучение сертификатов RSA 2048 и ECDSA для домена example.com в режиме standalone:
acme.sh --issue --standalone -d example.com --keylength 2048
acme.sh --issue --standalone -d example.com --keylength ec-256Для тестирования используйте флаг –staging.
Установите сертификаты в каталог /etc/letsencrypt. На FreeBSD reload nginx через service, поэтому используем соответствующую команду в reloadcmd:
# 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"
# 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 по расписанию.
Важно
- Если Nginx уже использует порт 80, временно остановите его перед запуском acme.sh в режиме standalone или используйте способ валидации по http-01 с точкой монтирования.
Шаг 4. Установка и настройка Nginx
Установите Nginx:
sudo pkg install -y nginx
nginx -v
sudo sysrc nginx_enable=yes
sudo service nginx startСоздайте конфигурацию сайта, например /usr/local/etc/nginx/anchor.conf. В примере ниже root указывает на /usr/local/www/anchor — используйте один путь везде.
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;
}
}Подключите файл конфигурации в main nginx.conf, добавив в блок http строку:
include /usr/local/etc/nginx/anchor.conf;Проверка синтаксиса и перезагрузка:
sudo nginx -t
sudo service nginx reloadПримечание
- Убедитесь, что путь root совпадает с директорией, где будет размещён Anchor. В примере используется /usr/local/www/anchor.
Шаг 5. Установка Composer
Установите Composer для загрузки зависимостей Anchor:
php -r 'copy("https://getcomposer.org/installer", "composer-setup.php");'
# Опционально можно проверить хеш установщика по официальной инструкции
php composer-setup.php
php -r 'unlink("composer-setup.php");'
sudo mv composer.phar /usr/local/bin/composerПроверьте версию Composer:
composer --versionШаг 6. Загрузка и установка Anchor CMS
Создайте директорию для сайта и корректно установите права:
sudo mkdir -p /usr/local/www/anchor
sudo chown -R your_user:your_user /usr/local/www/anchor
cd /usr/local/www/anchorУстановите Anchor через Composer:
composer create-project anchorcms/anchor-cms .После установки отдайте права пользовательской учётной записи веб-сервера. На FreeBSD это чаще всего www:
sudo chown -R www:www /usr/local/www/anchorВажно
- Не используйте root для выполнения composer в директории сайта, чтобы избежать проблем с правами.
Шаг 7. Веб-инсталлятор и финальные шаги
Откройте браузер и перейдите по адресу http://example.com
Вы увидите страницу веб-инсталлятора Anchor. Следуйте шагам интерфейса: выбор языка и часового пояса, конфигурация базы данных, метаданные сайта и создание первой учётной записи администратора.





После успешной установки удалите папку install для безопасности:
sudo rm -rf /usr/local/www/anchor/installПроверки и критерии приёмки
- Главная страница сайта загружается по HTTPS и HTTP (если настроен редирект).
- Веб-инсталлятор завершён, папка install удалена.
- Можно войти в панель администратора с созданными учётными данными.
- В логах Nginx и PHP-FPM нет критических ошибок при загрузке главной страницы.
Роль-based чеклисты
Для системного администратора:
- Проверить uptime служб: nginx, php-fpm, mysql-server.
- Настроить резервное копирование директории сайта и дампа базы.
Для разработчика контента:
- Проверить доступ к панели администратора.
- Добавить тестовую публикацию и проверить рендеринг.
Для DevOps/безопасности:
- Убедиться, что сертификаты корректно установлены и автообновляются.
- Настроить firewall и ограничить доступ к административным IP при необходимости.
Безопасность и рекомендации по жёсткой настройке
- Удалите или ограничьте доступ к каталогу install сразу после установки.
- Запретите выполнение скриптов в директориях загрузок, если CMS использует такие.
- Регулярно обновляйте PHP и пакеты через pkg.
- Настройте регулярный бэкап базы и файлов (cron или сторонний инструмент).
Тесты и сценарии приёмки
- Открыть главную страницу — HTTP/HTTPS 200.
- Проверить админ-панель — вход успешен.
- Создать пост, опубликовать, проверить публичную видимость.
- Запустить composer install в пустой среде — зависимости устанавливаются.
Откат и план на случай проблем
- Если сайт не доступен после обновления, откатите Nginx конфигурацию и перезапустите службу: sudo service nginx reload.
- Если проблемы с PHP, проверьте логи php-fpm и /var/log/messages.
- Если база повреждена, восстановите последний дамп из бэкапа.
Частые ошибки и решения
- 502 Bad Gateway — проверьте, работает ли php-fpm и совпадает ли fastcgi_pass с адресом и портом в php-fpm.conf.
- 500 Internal Server Error — проверьте права на файлы и ошибки в логах PHP.
- SSL не применяется — проверьте пути к сертификатам и права на файлы в /etc/letsencrypt.
Миграция и примечания для FreeBSD
- В FreeBSD управляйте службами через service и sysrc, не через systemctl.
- Пакеты находятся в репозитории pkg. При миграции с Linux замените systemctl на service.
Полезные команды для отладки
sudo tail -f /var/log/nginx-error.log
sudo tail -f /var/log/php-fpm.log
sudo tail -f /var/log/messages
ps aux | grep php-fpm
sudo service mysql-server statusРесурсы
Итог
Установка Anchor CMS на FreeBSD 12 состоит из последовательных шагов: подготовка системы, установка PHP и MariaDB, получение сертификатов, настройка Nginx, установка Composer и самого Anchor через composer create-project. После установки удалите директорорию install, настройте права, бэкапы и мониторинг.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента