Установка WordPress с Nginx, MariaDB и HHVM на Ubuntu 15.04 (64‑bit)
Кратко
Важно: Ubuntu 15.04 больше не поддерживается официально — для продакшена рассмотрите более свежую LTS‑версию Ubuntu. Инструкции ниже соответствуют окружению, указанному в исходной статье.
Введение
HHVM (Hip Hop Virtual Machine) — JIT‑компилятор, разработанный Facebook для запуска приложений на PHP и языке Hack. HHVM работает быстрее классического Zend PHP‑движка и экономит оперативную память в ряде сценариев. Этот материал описывает установку WordPress поверх связки Nginx + MariaDB + HHVM на Ubuntu 15.04 (64‑bit).
Кому полезно: системным администраторам и разработчикам, которым нужно развернуть WordPress с HHVM вместо стандартного PHP‑FPM.
Что нужно заранее
- Сервер с Ubuntu 15.04 64‑bit. HHVM поддерживает 64‑битные архитектуры.
- Доступ root или sudo.
- Базовые навыки работы с консолью Linux.
Краткий план действий
- Установить Nginx.
- Установить и настроить MariaDB.
- Установить и настроить HHVM (FastCGI).
- Установить и настроить WordPress.
Понимание потоков запросов (ментальная модель)
Nginx принимает HTTP/HTTPS → передаёт PHP‑запросы через FastCGI → HHVM обрабатывает PHP/Hack‑код → HHVM общается с базой MariaDB. Эта цепочка помогает выяснить узкие места: Nginx (сетевые настройки), HHVM (пулы воркеров, память), MariaDB (индексы, конфигурация).
Установка Nginx
Nginx доступен в репозитории Ubuntu. Обновите кэш пакетов и установите nginx:
sudo apt-get update
sudo apt-get install nginxЗапустите Nginx:
systemctl start nginxОткройте в браузере http://192.168.1.108/ (замените IP на адрес вашего сервера). Если всё нормально — увидите стартовую страницу Nginx.

Примечание: если сервер в облаке, откройте порт 80/443 в брандмауэре или в настройках провайдера.
Установка и настройка MariaDB
Мы используем MariaDB как замену MySQL. Установка:
sudo apt-get install mariadb-client mariadb-serverЗапустите службу:
sudo systemctl start mysqlЗащитите установку и задайте пароль root:
mysql_secure_installationВ интерактивном режиме следуйте подсказкам, пример:
Enter current password for root (enter for none): PRESS ENTER
Set root password? [Y/n] Y
ENTER YOUR PASSWORD
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] YВойдите в MariaDB как root:
mysql -u root -p
TYPE YOUR PASSWORDСоздайте базу данных и пользователя для WordPress. Обязательно замените пароль на надёжный.
create database wordpressdb;
create user wpuser@localhost identified by 'wpuser@';
grant all privileges on wordpressdb.* to wpuser@localhost identified by 'wpuser@';
flush privileges;
\q
Совет: используйте длинный непредсказуемый пароль и храните его в менеджере секретов.
Установка и настройка HHVM
Добавьте репозиторий HHVM и обновите пакеты:
wget -O - http://dl.hhvm.com/conf/hhvm.gpg.key | sudo apt-key add -
echo deb http://dl.hhvm.com/ubuntu vivid main | sudo tee /etc/apt/sources.list.d/hhvm.list
apt-get updateУстановите HHVM:
sudo apt-get install -y hhvmУстановите FastCGI‑конфигурацию для Nginx (скрипт создаст необходимые файлы):
sudo /usr/share/hhvm/install_fastcgi.shВключите автозапуск HHVM при старте системы:
sudo update-rc.d hhvm defaultsНазначьте hhvm как альтернативу для /usr/bin/php (если нужно):
sudo /usr/bin/update-alternatives --install /usr/bin/php php /usr/bin/hhvm 60Запустите HHVM:
systemctl start hhvmПроверка через веб: создайте файл info.php в корне веб‑каталога и откройте его в браузере:
cd /var/www/html/
nano info.phpДобавьте:
Откройте http://192.168.1.108/info.php — на странице должен быть упоминание HipHop, если HHVM обрабатывает PHP.

Проверка в консоли:
php info.php
php -vПервый вывод должен содержать «HipHop», второй — версию hhvm и информацию о запуске.

Совет по отладке: если Nginx возвращает 502 Bad Gateway, проверьте, запущен ли сокет/порт HHVM и совпадают ли пути fastcgi_pass в конфиге Nginx и в конфиге HHVM.
Установка WordPress
Скачайте и распакуйте WordPress:
cd /var/www/html/
wget wordpress.org/latest.zip
unzip latest.zipПереместите файлы WordPress в корень веб‑папки и удалите временную папку:
cd /var/www/html/
mv wordpress/* .
rm -rf wordpress/Смените владельца файлов на www‑data (пользователь и группа, под которыми обычно работает Nginx):
find . -type d -exec chown www-data:www-data {} \;
find . -type f -exec chown www-data:www-data {} \;Переименуйте файл конфигурации и укажите данные базы:
mv wp-config-sample.php wp-config.php
nano wp-config.phpВнутри wp-config.php укажите:
DB_NAME = wordpressdb
DB_USER = wpuser
DB_PASSWORD = wpuser@
Отредактируйте виртуальный хост Nginx (/etc/nginx/sites-available/default), убедитесь, что в директиве index есть index.php и что есть блок обработки PHP‑файлов (fastcgi_pass указывает на сокет или порт HHVM). Удалите или замените дефолтный индекс:
rm -f index.nginx.html
nano /etc/nginx/sites-available/default
Перезапустите Nginx:
systemctl restart nginxОткройте http://192.168.1.108/ — вы должны попасть на страницу установки WordPress. Выберите язык, укажите учётные данные администратора и завершите установку.

Заполните форму администратора и нажмите «Установить WordPress».

После успешной установки войдите на /wp-login.php или посетите главную страницу.

Поздравляем — WordPress установлен с HHVM и Nginx.
Что делать, если что‑то не работает (runbook для инцидентов)
- 502 Bad Gateway: проверить, что hhvm запущен (systemctl status hhvm), проверить адрес/сокет в fastcgi_pass и в конфиге HHVM.
- Ничего не показывается в браузере: проверить логи Nginx (/var/log/nginx/error.log) и логи HHVM (/var/log/hhvm/error.log или systemd‑journal).
- Ошибка подключения к БД: проверить параметры в wp-config.php, убедиться, что MariaDB принимает подключения с localhost, и что пароль верный.
- Медленная отдача: посмотреть нагрузку CPU/памяти, настроить кеширование (opcache в HHVM — проверить конфиги), использовать внешние уровни кеша (Varnish, Redis) и CDN.
Критерии приёмки
- Nginx отдаёт статические файлы и проксирует PHP в HHVM.
- phpinfo() показывает HipHop/HHVM.
- WordPress успешно завершил установку и авторизация администратора работает.
Альтернативные подходы и когда HHVM не подходит
- PHP‑FPM (стандартный режим) — более привычен, официально поддерживается WordPress‑сообществом.
- Контейнеризация (Docker) с образами PHP‑FPM + Nginx упрощает переносимость.
- HHVM может быть не лучшим выбором для плагинов, которые зависят от специфичных расширений Zend или нестандартных поведений PHP; в таких случаях используйте PHP‑FPM.
Безопасность и рекомендации
- Обновляйте ОС и приложения; Ubuntu 15.04 — устаревшая версия, используйте LTS.
- Настройте брандмауэр (ufw) и откройте минимальные порты (80, 443, SSH по настраиваемому порту).
- Отключите удалённый root в MariaDB и используйте выделенные сервисные учётные записи.
- Установите HTTPS (Let’s Encrypt) и перенаправление с HTTP на HTTPS.
- Права файлов: каталоги 755, файлы 644, wp‑config.php — более строгие права.
- Регулярно делайте резервные копии базы данных и файлов.
Privacy / GDPR — заметки
- Храните личные данные пользователей в соответствии с законом: явно указывайте политику конфиденциальности, поддерживайте возможность удаления данных по запросу.
- Шифруйте соединение (HTTPS) при передаче персональных данных.
Советы по производительности и SRE‑правила
- Настройте кэширование объектов (Redis/ Memcached) и страницу кэширования.
- Включите опкоды/кеширование в HHVM — это снижает время отклика и загрузку CPU.
- Мониторьте SLI/SLO: время ответа 95‑го или 99‑го процентиля, ошибки 5xx.
Миграция и совместимость
- При переносе с PHP‑FPM на HHVM тестируйте все плагины и темы на тестовой среде.
- HHVM не гарантирует 100% совместимость со всеми расширениями Zend; проверяйте критичный функционал.
Чек‑листы по ролям
Сисадмин:
- Подготовить сервер (обновления, firewall).
- Установить Nginx, MariaDB, HHVM.
- Настроить автозапуск и бэкапы.
Разработчик:
- Проверить совместимость кода и плагинов с HHVM.
- Прогнать тесты на тестовом окружении.
Ответственный за безопасность:
- Настроить HTTPS.
- Проверить права на файлы.
- Настроить резервное копирование личных данных и логи доступа.
Краткий глоссарий (1 строка на термин)
- HHVM: JIT‑виртуальная машина для PHP/Hack от Facebook.
- Nginx: быстрый веб‑сервер и обратный прокси.
- MariaDB: форк MySQL, совместимая реляционная СУБД.
- FastCGI: протокол для передачи запросов от веб‑сервера к обработчику PHP.
Заключение
HHVM предлагает альтернативный путь запуска PHP/WordPress с потенциальным приростом скорости и экономией памяти в определённых сценариях. Для новых проектов учитывайте поддержку и совместимость: часто предпочтительнее использовать актуальные версии Ubuntu и стандартный PHP‑FPM. Если вы выбираете HHVM, тщательно протестируйте плагины и производительность в вашей нагрузке.
Краткий итог — основные шаги выполнены: Nginx, MariaDB, HHVM установлены и WordPress работает; дополнительные рекомендации включают бэкапы, HTTPS и мониторинг.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента