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

Установка HHVM, Nginx, MariaDB и WordPress на Debian 8

• 7 min read • DevOps • Обновлено 25 Nov 2025
Установка HHVM, Nginx, MariaDB и WordPress на Debian 8
Установка HHVM, Nginx, MariaDB и WordPress на Debian 8

Важно: в примерах используется IP 192.168.1.100 — замените его на IP вашего сервера во всех командах и URL.

Краткое введение

HHVM (Hip Hop Virtual Machine) — это JIT-компилятор, созданный в Facebook для выполнения приложений на PHP и Hack. HHVM работает иначе, чем традиционный интерпретатор Zend и может обеспечивать значительное ускорение работы PHP-приложений в ряде сценариев. В этой инструкции мы установим Nginx как веб-сервер, MariaDB как СУБД, HHVM как замену PHP-интерпретатора и WordPress как CMS на Debian 8 (Jessie).

Определение: JIT (just-in-time) — компиляция части кода во время выполнения для повышения производительности.

Содержание

  • Требования и подготовка
  • Установка Nginx
  • Установка и настройка MariaDB
  • Установка и настройка HHVM
  • Установка WordPress
  • Тестирование и приёмка
  • Безопасность и жёсткая настройка
  • Отладка и сценарии восстановления
  • Контрольный список для ролей
  • Критерии приёмки
  • Полезные советы по совместимости
  • Короткое резюме

1 Требования и подготовка

  • Минимальная установка Debian 8 (64-бит).
  • Пользователь с правами sudo или root.
  • Пример IP сервера: 192.168.1.100 — замените на свой.
  • Проверка времени и DNS: убедитесь, что сервер имеет корректные системные часы и доступ в интернет для загрузки пакетов.

Совет: перед началом сделайте снимок (snapshot) виртуальной машины или резервную копию конфигураций.

2 Установка Nginx

Пакет Nginx доступен в стандартном репозитории Debian. Установите Nginx вместе с unzip:

apt-get update
apt-get install nginx unzip

Запустите Nginx и проверьте статус:

systemctl start nginx
systemctl status nginx

Откройте в браузере http://192.168.1.100/ и убедитесь, что вы видите стартовую страницу Nginx.

/files/be086487-04ac-4c5b-9bcf-958e92d0b855.png

Alt для изображения выше: Стартовая страница Nginx по умолчанию, отображаемая в браузере.

3 Установка и настройка MariaDB

MariaDB — свободный форк MySQL с расширениями и оптимизациями. Установите клиент и сервер:

apt-get install mariadb-client mariadb-server

Запустите сервис:

systemctl start mysql

Авторизуйтесь в 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

/files/711d88ac-552d-42e9-b684-79213e1fc9e6.png

Alt для изображения выше: Консоль MariaDB с командами создания базы данных и пользователя WordPress.

Примечание: в продуктивной среде используйте более тонкие привилегии и ограничение по хосту вместо ‘localhost’, если требуется удалённый доступ.

4 Установка и настройка HHVM

Добавьте репозиторий HHVM и установите пакет. Команды приведены для Debian Jessie:

wget -O - http://dl.hhvm.com/conf/hhvm.gpg.key | apt-key add -
echo deb http://dl.hhvm.com/debian jessie main | tee /etc/apt/sources.list.d/hhvm.list
apt-get update
apt-get install hhvm

Скрипт быстрого подключения HHVM к FastCGI/Nginx:

/usr/share/hhvm/install_fastcgi.sh

Настройте автозапуск HHVM при старте системы:

update-rc.d hhvm defaults

Сделайте HHVM альтернативой для /usr/bin/php (если хотите использовать hhvm на командной строке):

/usr/bin/update-alternatives --install /usr/bin/php php /usr/bin/hhvm 60

Запустите сервис:

systemctl start hhvm
systemctl status hhvm

Проверка работы HHVM в вебе и на shell. Создайте файл info.php:

cd /var/www/html/
nano info.php

Вставьте:

Откройте http://192.168.1.100/info.php — если на странице отображается слово HipHop, HHVM обрабатывает PHP через Nginx.

Проверьте из консоли:

php info.php
php -v

Первой командой вы должны увидеть вывод ‘HipHop’, второй — версию HHVM.

Удалите тестовый файл:

rm /var/www/html/info.php

Совет: если в вашем окружении установлены модули PHP, знайте, что HHVM не поддерживает все расширения Zend; проверьте совместимость используемых расширений и плагинов.

5 Установка 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:

find . -type d -exec chown www-data:www-data {} \;
find . -type f -exec chown www-data:www-data {} \;

Переименуйте файл конфигурации WordPress и внесите настройки базы данных:

mv wp-config-sample.php wp-config.php
nano wp-config.php

Внутри wp-config.php укажите:

DB_NAME = wordpressdb
DB_USER = wpuser
DB_PASSWORD = wpuser@

/files/382ef87b-a217-4d56-ba0d-7716a4bec6e4.png

Alt для изображения выше: Пример настроек wp-config.php с именем базы данных и учётными данными.

Измените конфигурацию Nginx, чтобы index.php был первым индексным файлом. Откройте файл виртуального хоста:

rm -f index.nginx.html
nano /etc/nginx/sites-available/default

Убедитесь, что в директиве index первым указан index.php. Перезапустите Nginx:

systemctl restart nginx

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

Wordpress: Select the language.

Alt для изображения выше: Экран выбора языка в установщике WordPress.

Wordpress: Login details.

Alt для изображения выше: Форма ввода имени администратора, пароля и электронной почты при установке WordPress.

После установки посетите /wp-login.php для входа в панель администратора.

Wordpress: Installation finished.

Alt для изображения выше: Подтверждение успешной установки WordPress.

Wordpress admin login.

Alt для изображения выше: Экран входа администратора WordPress.

6 Проверка работоспособности и приёмка

Базовые тесты, которые нужно пройти перед передачей системы в эксплуатацию:

  • Открытие главной страницы: http://192.168.1.100/
  • Вход в админку: http://192.168.1.100/wp-login.php
  • Тест обработки PHP через HHVM: php -v показывает HHVM
  • Запросы к базе данных из WordPress успешны (установка прошла без ошибок)

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

  • WordPress полностью установился и доступен по HTTP
  • HHVM обрабатывает PHP-запросы от Nginx
  • MariaDB отвечает на запросы приложения
  • Права на файлы установлены на www-data

7 Безопасность и жёсткая настройка

Рекомендуемые шаги для повышения безопасности:

  • Закройте доступ к MariaDB извне, если он не нужен: убедитесь, что bind-address в /etc/mysql/my.cnf настроен на 127.0.0.1 или используйте брандмауэр.
  • Отключите ненужные службы и порты (ufw/iptables).
  • Ограничьте доступ к /wp-admin по IP или включите двухфакторную аутентификацию для администратора.
  • Регулярно обновляйте пакеты и плагины WordPress.
  • Настройте резервное копирование базы данных и файлов.
  • Ограничьте права на wp-config.php (например, 640 с владельцем www-data).

Пример команды для ограничения прав:

chown root:www-data /var/www/html/wp-config.php
chmod 640 /var/www/html/wp-config.php

8 Отладка и сценарии восстановления

Типичные проблемы и шаги проверки:

  • Nginx не отвечает: проверьте systemctl status nginx и /var/log/nginx/error.log
  • HHVM не запускается: проверьте systemctl status hhvm и /var/log/hhvm/error.log
  • PHP-страницы скачиваются вместо обработки: проверьте конфигурацию fastcgi в /etc/nginx/sites-available/default и убедитесь, что сокет/порт HHVM совпадает с настройками Nginx
  • Ошибки подключения к БД: проверьте учётные данные в wp-config.php, попробуйте подключиться из командной строки mysql -u wpuser -p

Сценарий отката (быстрый план действий):

  1. Вернуть конфигурационные файлы из бэкапа.
  2. Перезапустить сервисы: systemctl restart mysql hhvm nginx.
  3. При необходимости временно переключиться на php-fpm (если HHVM вызывает проблемы).

Пример переключения на php-fpm (если установлен php-fpm):

/usr/bin/update-alternatives --install /usr/bin/php php /usr/bin/php5.6-cli 50
systemctl restart php5.6-fpm
systemctl restart nginx

9 Контрольные списки для ролей

Системный администратор:

  • Проверить обновления системы и установить патчи.
  • Настроить резервное копирование (базы и файлов).
  • Настроить мониторинг сервисов (Nginx, MariaDB, HHVM).
  • Проверить брандмауэр и правила доступа.

Разработчик/DevOps:

  • Протестировать шаблоны страниц и плагины под HHVM.
  • Проверить совместимость PHP-расширений и функций.
  • Настроить CI для деплоя и миграций БД.

Контент-администратор:

  • Создать тестовую публикацию и проверить отображение.
  • Проверить формы и загрузку медиафайлов.
  • Проверить работу комментариев, если они включены.

10 Краткая методология развёртывания (шаги)

  1. Минимальная установка Debian 8 и базовая безопасность.
  2. Установка Nginx и проверка веб-сервера.
  3. Установка MariaDB и создание БД/пользователя.
  4. Установка HHVM и интеграция с Nginx.
  5. Развёртывание WordPress и настройка прав.
  6. Тесты, бэкап и включение мониторинга.

11 Полезные советы по совместимости и миграции

  • HHVM работает как замена интерпретатора PHP, но не все плагины или расширения могут быть полностью совместимы. Тестируйте на стейджинге.
  • Если у вас есть расширения, зависящие от специфичных PHP-интерфейсов Zend, проверьте их работу или используйте php-fpm как запасной вариант.
  • Для миграции с Apache на Nginx проверьте правила переписывания (rewrite) в .htaccess и конвертируйте их в конфигурацию Nginx.

12 Тестовые сценарии и критерии приёмки

  • Тест 1: Открыть главную страницу — ответ 200 и корректный HTML.
  • Тест 2: Войти в админку — авторизация успешна.
  • Тест 3: Создать пост с изображением — загрузка и отображение успешны.
  • Тест 4: Импорт/экспорт базы данных — данные восстанавливаются корректно.

Критерии приёмки находятся выше в разделе Критерии приёмки.

13 Мероприятия по безопасности при возникновении инцидента

  • При подозрении на компрометацию: отключите публичный доступ (iptables/ufw), снимите снапшот и проанализируйте журналы.
  • Сбросьте пароли администратора WordPress и пользователей БД.
  • Проведите аудит установленных плагинов и тем.

14 Полезная сводка (Fact box)

  • Веб-сервер: Nginx
  • Интерпретатор PHP: HHVM
  • СУБД: MariaDB
  • CMS: WordPress
  • Корневая папка: /var/www/html/
  • Пользователь веб-сервера: www-data

Факт: HHVM был разработан Facebook как высокопроизводительная альтернатива Zend PHP-движку и может значительно ускорять обработку PHP-кода в некоторых сценариях.

15 Резюме

  • Стек Nginx + HHVM + MariaDB хорошо подходит для сайтов, где приоритет — производительность.
  • Обязательно тестируйте совместимость плагинов и расширений перед переходом в прод.
  • Реализуйте регулярные бэкапы, мониторинг и базовую hardening-политику безопасности.

Короткое резюме: Установка описанного стека на Debian 8 относительно прямолинейна: Nginx из репозитория, MariaDB вместо MySQL для улучшенной функциональности, HHVM из официального репозитория и WordPress как приложение. После установки пройдите чек-лист тестов и настройте бэкапы и безопасность.

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

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