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

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

5 min read Инструкции Обновлено 08 Nov 2025
Установка Anchor CMS на FreeBSD 12
Установка Anchor CMS на FreeBSD 12

Кратко

Краткое руководство по быстрой установке 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.

Веб-установщик Anchor CMS — главный экран установки

Нажмите «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 для крупного портала) лучше выбирать более масштабируемое решение и кластерную базу.
  • Если нужен лёгкий одностраничный сайт без базы — можно использовать статический генератор.

Мини-методология установки (быстрая последовательность)

  1. Обновить систему.
  2. Установить PHP + расширения, запустить php-fpm.
  3. Установить и настроить MariaDB, создать БД.
  4. Установить Nginx и настроить конфигурацию сайта.
  5. Установить Composer и загрузить Anchor.
  6. Провести веб-установку и удалить 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: от подготовки системы до веб-установщика и базовых мер безопасности. Используйте контрольные списки и критерии приёмки перед запуском в продакшн.

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

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

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

Троян Herodotus: как он действует и как защититься

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

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

Панель полей PivotTable в Excel — руководство
Excel

Панель полей PivotTable в Excel — руководство

Включить новый Пуск в Windows 11 — инструкция
Windows

Включить новый Пуск в Windows 11 — инструкция

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

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

Как просмотреть историю просмотров Reels в Instagram
Социальные сети

Как просмотреть историю просмотров Reels в Instagram