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

Установка Anchor CMS на FreeBSD 12 с Nginx, MariaDB и PHP

• 5 min read • DevOps • Обновлено 16 Nov 2025
Установка Anchor CMS на FreeBSD 12
Установка Anchor CMS на FreeBSD 12

Кратко: пошагово установим 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. Следуйте шагам интерфейса: выбор языка и часового пояса, конфигурация базы данных, метаданные сайта и создание первой учётной записи администратора.

Инсталлятор Anchor CMS

Выбор языка и часового пояса

Настройки базы данных

Метаданные сайта

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

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

Откат и план на случай проблем

  1. Если сайт не доступен после обновления, откатите Nginx конфигурацию и перезапустите службу: sudo service nginx reload.
  2. Если проблемы с PHP, проверьте логи php-fpm и /var/log/messages.
  3. Если база повреждена, восстановите последний дамп из бэкапа.

Частые ошибки и решения

  • 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, настройте права, бэкапы и мониторинг.

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

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

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро