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

Установка WordPress с Nginx, MariaDB и HHVM на Ubuntu 15.04 (64‑bit)

• 6 min read • DevOps • Обновлено 28 Nov 2025
WordPress на HHVM: Nginx + MariaDB на Ubuntu 15.04
WordPress на HHVM: Nginx + MariaDB на Ubuntu 15.04

Кратко

Важно: 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.

Что нужно заранее

  1. Сервер с Ubuntu 15.04 64‑bit. HHVM поддерживает 64‑битные архитектуры.
  2. Доступ root или sudo.
  3. Базовые навыки работы с консолью 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.

/файл: стартовая страница 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

/файл: создание базы данных и пользователя в MariaDB

Совет: используйте длинный непредсказуемый пароль и храните его в менеджере секретов.

Установка и настройка 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.

/файл: страница phpinfo, показывающая HipHop/HHVM

Проверка в консоли:

php info.php  
php -v

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

/файл: вывод команды php -v и тест info.php в терминале

Совет по отладке: если 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@

/файл: редактирование wp-config.php для указания данных БД

Отредактируйте виртуальный хост 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 — добавление index.php и FastCGI

Перезапустите Nginx:

systemctl restart nginx

Откройте http://192.168.1.108/ — вы должны попасть на страницу установки WordPress. Выберите язык, укажите учётные данные администратора и завершите установку.

/файл: выбор языка при установке WordPress

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

/файл: форма создания администратора WordPress

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

/файл: панель входа WordPress или главная страница сайта

Поздравляем — WordPress установлен с HHVM и Nginx.

Что делать, если что‑то не работает (runbook для инцидентов)

  1. 502 Bad Gateway: проверить, что hhvm запущен (systemctl status hhvm), проверить адрес/сокет в fastcgi_pass и в конфиге HHVM.
  2. Ничего не показывается в браузере: проверить логи Nginx (/var/log/nginx/error.log) и логи HHVM (/var/log/hhvm/error.log или systemd‑journal).
  3. Ошибка подключения к БД: проверить параметры в wp-config.php, убедиться, что MariaDB принимает подключения с localhost, и что пароль верный.
  4. Медленная отдача: посмотреть нагрузку 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 и мониторинг.

Поделиться: 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 быстро