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

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

5 min read CMS Обновлено 23 Nov 2025
Установка ExpressionEngine на FreeBSD 12
Установка ExpressionEngine на FreeBSD 12

Важно

  • Замените example.com на ваш домен в командах и конфигурациях.
  • Выполняйте команды от пользователя с sudo-привилегиями, если не указано иное.

Основная цель статьи

Пошагово описать установку ExpressionEngine на FreeBSD 12 с использованием PHP-FPM, MariaDB и Nginx, с опциями для HTTPS через acme.sh.

Быстрая карта разделов

  • Требования
  • Подготовка системы
  • Установка PHP
  • Установка MariaDB
  • Получение сертификата (опционально)
  • Установка и настройка Nginx
  • Установка ExpressionEngine
  • Завершение и приёмка
  • Полезные дополнения: альтернативы, чек-листы, откат, тесты

Требования

ExpressionEngine требует веб‑сервер, PHP и базу данных MySQL/MariaDB. Рекомендуемый стек и версии:

  • PHP 7.0 или новее, с PHP-FPM и расширениями: gd, fileinfo, intl, mbstring.
  • MySQL 5.6+ или Percona 5.6+. В этом руководстве используется MariaDB.
  • Веб‑сервер: Nginx или Apache. Здесь — Nginx.

Краткое определение: PHP-FPM — FastCGI Process Manager для PHP, рекомендуемый для производительных PHP‑сайтов.

Предварительные требования

  • FreeBSD 12.x.
  • Нерoot‑пользователь с sudo.

Используем домен example.com как пример. Замените на свой домен во всех конфигурациях и командах.

Начальные шаги

Проверьте версию 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

Установка PHP

Установите PHP и необходимые расширения. В примере используется php72, при необходимости замените на доступную версию (php73, php74 и т.д.).

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-filter php72-tokenizer php72-calendar php72-fileinfo php72-intl php72-phar php72-soap php72-xmlrpc

Проверьте установленные модули:

php -m

Проверьте версию PHP:

php --version

Включите и запустите PHP-FPM:

sudo sysrc php_fpm_enable=yes
sudo service php-fpm start

Важно: убедитесь, что fastcgi слушает на 127.0.0.1:9000 или скорректируйте настройки Nginx под локальный сокет.

Установка MariaDB

Установите MariaDB сервер и клиент:

sudo pkg install -y mariadb102-client mariadb102-server

Проверьте версию:

mysql --version

Включите и запустите службу:

sudo sysrc mysql_enable="yes"
sudo service mysql-server start

Запустите скрипт безопасной настройки:

sudo mysql_secure_installation

Отвечайте на вопросы скрипта по ситуации. Пример ответов (безопасно для продакшена):

Would you like to setup VALIDATE PASSWORD plugin? N
New password: 
Re-enter new password: 
Remove anonymous users? Y
Disallow root login remotely? Y
Remove test database and access to it? Y
Reload privilege tables now? Y

Подключитесь к MariaDB и создайте базу и пользователя для ExpressionEngine:

sudo mysql -u root -p
mysql> CREATE DATABASE dbname;
mysql> GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
mysql> FLUSH PRIVILEGES;
mysql> exit

Замените dbname, username и password на свои значения.

Установка acme.sh и получение сертификата Let’s Encrypt (опционально)

SSL не обязателен, но настоятельно рекомендуется. Мы используем acme.sh — лёгкий клиент на shell без зависимостей.

sudo pkg install -y acme.sh

Проверьте версию 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.

Файлы будут в каталогах в домашней директории пользователя, например /home/username/example.com.

Создайте каталог для сертификатов и установите их туда (корректируйте пути при необходимости):

mkdir -p /etc/letsencrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc

Установите сертификаты в целевую директорию, добавив команду перезагрузки Nginx:

# 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 systemctl reload nginx.service"
# 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 systemctl reload nginx.service"

acme.sh автоматически обновляет сертификаты по расписанию.

Установка Nginx

Установите Nginx:

sudo pkg install -y nginx

Проверьте версию:

nginx -v

Включите и запустите сервис:

sudo sysrc nginx_enable=yes
sudo service nginx start

Создайте конфигурацию для ExpressionEngine:

sudo vim /usr/local/etc/nginx/expressionengine.conf

Вставьте следующую конфигурацию и скорректируйте пути к сертификатам и root (замените example.com и пути если нужно):

server {
  listen 443 ssl;
  listen 80;

  server_name example.com;
  root /usr/local/www/expressionengine;
  # RSA
  ssl_certificate /etc/letsencrypt/example.com/fullchain.cer;
  ssl_certificate_key /etc/letsencrypt/example.com/example.com.key;
  # ECDSA
  ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.cer;
  ssl_certificate_key /etc/letsencrypt/example.com_ecc/example.com.key;

  index index.php;

  location / {
    index index.php;
    try_files $uri $uri/ @ee;
  }

  location @ee {
    rewrite ^(.*) /index.php?$1 last;
  }

  location ~* \.php$ {
    fastcgi_pass 127.0.0.1:9000;
    include fastcgi_params;
    fastcgi_index index.php5;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  }

}

Включите этот файл в основной nginx.conf, добавив в блок http:

include expressionEngine.conf;

Проверьте конфигурацию и перезагрузите Nginx:

sudo nginx -t
sudo service nginx reload

Примечание: исправьте имена сертификатных файлов (fullchain.cer / .pem) и ключей в соответствии с тем, что создал acme.sh.

Установка ExpressionEngine

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

sudo mkdir -p /usr/local/www/expressionengine
cd /usr/local/www/expressionengine

Скачайте и распакуйте последнюю сборку ExpressionEngine:

sudo wget -O ee.zip --referer https://expressionengine.com/ 'https://expressionengine.com/?ACT=243'
sudo unzip ee.zip
sudo rm ee.zip

Установите владельца каталога на www:

sudo chown -R www:www /usr/local/www/expressionengine

Откройте в браузере URL файла admin.php, например:

http://example.com/admin.php

Следуйте мастеру установки. После успешной установки удалите или переименуйте каталог system/ee/installer/.

Завершение установки ExpressionEngine

Во время мастера введите данные базы и учётной записи администратора. Пример настройки администратора показан ниже.

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

После успешной установки вы увидите страницу входа по умолчанию.

Первый вход в ExpressionEngine

Панель администратора ExpressionEngine выглядит так:

Панель администратора ExpressionEngine

А фронтенд сайта может выглядеть примерно так:

Сайт на ExpressionEngine

Поздравляем — установка завершена.

Контрольный список перед переходом в прод

  • Удалён или переименован каталог system/ee/installer/
  • Конфигурация Nginx корректно указывает на root и SSL-файлы
  • Файловые права установлены (владелец www), нет 777
  • База данных создана и пользователь имеет только необходимые права
  • PHP-FPM работает и слушает на заданном сокете/порту
  • Автообновление сертификатов настроено (acme.sh)

Критерии приёмки

  • Страница админки доступна и отвечает без ошибок.
  • Вход в админ-панель работает с указанными данными администратора.
  • Публичный фронтенд страницы возвращает HTTP 200 и выводит ожидаемый контент.
  • HTTPS корректно настроен, сертификат действителен (если настроен).

Мини‑методология развертывания

  1. Подготовьте OS и обновите пакеты. 2. Установите стек (PHP, MariaDB, Nginx). 3. Настройте безопасный доступ к БД. 4. Получите сертификат (опционально). 5. Распакуйте EE, настройте права и веб‑сервер. 6. Пройдите мастер установки и проверку приёмки.

Альтернативные подходы

  • Использовать Apache вместо Nginx, если вы привыкли к .htaccess и модульной структуре Apache.
  • Заменить MariaDB на MySQL или Percona при корпоративных требованиях.
  • Хостить PHP-FPM через сокет unix:/var/run/php-fpm.sock вместо 127.0.0.1:9000 для небольшой оптимизации.

Когда этот подход не подходит

  • Если вам нужен готовый PaaS/managed хостинг — тогда проще выбрать платформу с предустановленным ExpressionEngine.
  • Если ваша инфраструктура строго требует другой ОС (например, Debian/Ubuntu/CentOS), следуйте соответствующим гайдам.

Безопасность и резервирование

  • Регулярно обновляйте ОС и пакеты.
  • Защитите MariaDB паролями и ограничьте доступ по IP.
  • Храните бэкапы базы и файлов вне основного сервера (sftp, rsync, облако).
  • Настройте мониторинг свободного диска и загрузки CPU.

План отката (простая схема)

  1. Остановить Nginx и PHP-FPM.
  2. Восстановить файлы из последнего рабочего бэкапа в /usr/local/www/expressionengine.
  3. Восстановить дамп БД в MariaDB.
  4. Перезапустить службы и проверить доступность.

Тесты приёмки

  • Открыть http(s)://example.com — получить 200 OK.
  • Авторизоваться в админке — успешный вход.
  • Создать тестовую запись и убедиться, что она отображается на фронтенде.
  • Проверить логи Nginx и PHP-FPM на отсутствие ошибок.

Контрольные команды и шпаргалка

  • Проверить службы: sudo service nginx status; sudo service php-fpm status; sudo service mysql-server status
  • Проверить конфигурацию Nginx: sudo nginx -t
  • Проверить права: ls -la /usr/local/www/expressionengine
  • Проверить доступ к БД: mysql -u username -p -D dbname

Полезные ссылки

Краткое резюме

ExpressionEngine можно безопасно и стабильно установить на FreeBSD 12. Следуйте шагам: обновление системы → установка PHP и расширений → MariaDB → (опционально) SSL → Nginx → загрузка и установка ExpressionEngine. После установки проверьте рабочие сценарии и настройте бэкапы и мониторинг.

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

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

RDP: полный гид по настройке и безопасности
Инфраструктура

RDP: полный гид по настройке и безопасности

Android как клавиатура и трекпад для Windows
Гайды

Android как клавиатура и трекпад для Windows

Советы и приёмы для работы с PDF
Документы

Советы и приёмы для работы с PDF

Calibration в Lightroom Classic: как и когда использовать
Фото

Calibration в Lightroom Classic: как и когда использовать

Отключить Siri Suggestions на iPhone
iOS

Отключить Siri Suggestions на iPhone

Рисование таблиц в Microsoft Word — руководство
Office

Рисование таблиц в Microsoft Word — руководство