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

Установка WordPress с HHVM и Nginx на OpenSUSE Leap 42.1

7 min read DevOps Обновлено 27 Nov 2025
Установка WordPress с HHVM и Nginx на OpenSUSE
Установка WordPress с HHVM и Nginx на OpenSUSE

Кратко: пошаговая инструкция по установке Nginx, MariaDB, HHVM и WordPress на OpenSUSE Leap 42.1. Включены настройка Unix-socket для HHVM, создание виртуального хоста, конфигурация базы данных и базовые проверки работоспособности. В конце — чек-листы, отладка, безопасность и критерии приёмки.

Важно: пример использует домен hakasenano.co и пароли в примерах — замените их на свои значения и используйте надёжные пароли перед публикацией в продакшен.

Основные варианты запроса (SEO-интенция)

  • Установка WordPress с HHVM и Nginx на OpenSUSE
  • Настройка HHVM как FastCGI для Nginx
  • WordPress + HHVM руководство для OpenSUSE Leap
  • Как запустить WordPress через Unix-socket и HHVM

Введение

HHVM (HipHop Virtual Machine) — это JIT-компилятор и виртуальная машина с открытым исходным кодом, разработанная в Facebook для выполнения PHP 5 (и части PHP 7) и языка Hack. HHVM можно запускать поверх Nginx/Apache через FastCGI или использовать встроенный сервер Proxygen. В этом руководстве показано, как развернуть WordPress под HHVM и Nginx на OpenSUSE Leap 42.1.

Короткое определение: HHVM — JIT-исполнитель для PHP-подобного кода, ускоряющий выполнение в определённых сценариях.

В этой статье вы найдёте пошаговые команды, необходимые конфигурации, а также разделы по отладке, безопасности и приемочным критериям.

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

  • OpenSUSE Leap 42.1 — 64-бит.
  • Root-привилегии (использование sudo или sudo su).
  • Базовые знания OpenSUSE: zypper, systemctl, базовая работа с vim/командной строкой.
  • Доступ к серверу по SSH или локальный терминал.

Примечание: во всех командах и конфигурациях заменяйте примерные пароли и домены на реальные значения вашей инфраструктуры.

Шаг 1 — Установка Nginx

Nginx — лёгкий и производительный веб-сервер. На OpenSUSE используйте zypper.

Станьте root и установите Nginx:

sudo su  
zypper in nginx

Перейдите в веб-каталог и создайте простой index.html для проверки:

cd /srv/www/htdocs/  
echo "

Nginx OpenSUSE Leap 42.1

" > index.html

Добавьте Nginx в автозапуск и запустите сервис:

systemctl enable nginx  
systemctl start nginx

Проверьте работу сервера через браузер или curl (замените IP на адрес вашего сервера):

curl 192.168.43.29

Важно: если сервер недоступен, проверьте firewall (SuSEfirewall2 или firewalld) и сетевые настройки.

Шаг 2 — Установка и настройка MariaDB

MariaDB — форк MySQL, совместимый с ним. Установим сервер и клиент MariaDB и создадим базу данных для WordPress.

Установка:

zypper in mariadb mariadb-client

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

systemctl enable mysql  
systemctl start mysql

Настройка пароля root для MariaDB:

/usr/bin/mysqladmin -u root password 'toor123'

Важно: пароль в примере — “toor123” — используйте сложный пароль в реальной системе.

Входим в консоль MariaDB и создаём базу и пользователя для WordPress:

mysql -u root -p  
TYPE PASSWORD toor123

Внутри MySQL:

create database wpdb;  
create user wpuser@localhost identified by 'wpuser@';  
grant all privileges on wpdb.* to wpuser@localhost identified by 'wpuser@';  
flush privileges;

Создание базы данных MariaDB

Примечание: для продакшен-сервера выбирайте более сложный пароль и ограничьте доступ по хостам, если необходимо.

Шаг 3 — Установка HHVM

Добавьте репозиторий HHVM и обновите метаданные:

zypper addrepo http://download.opensuse.org/repositories/home:munix9/openSUSE_Leap_42.1/home:munix9.repo  
zypper refresh

При появлении приглашения доверять ключу введите a для «всегда доверять», если репозиторий вам известен.

Обновление zypper

Установите пакеты HHVM и вспомогательные модули для Nginx/FastCGI:

zypper in hhvm hhvm-nginx hhvm-fastcgi
  • hhvm-nginx содержит пример конфигурации для Nginx.
  • hhvm-fastcgi содержит данные для FastCGI интеграции.

Шаг 4 — Настройка HHVM и Nginx

Настроим HHVM на работу через Unix-сокет и запускаем под пользователем Nginx.

Откройте конфигурацию HHVM:

cd /etc/hhvm/  
vim server.ini

Разкомментируйте или добавьте строку, чтобы включить Unix-socket:

hhvm.server.file_socket = /var/run/hhvm/server.sock

Сохраните и выйдите.

Затем правим systemd-юнит, чтобы HHVM запускался от пользователя nginx (важно, чтобы пользователь совпадал с веб-сервером):

cd /usr/lib/systemd/system  
vim hhvm.service

Найдите строку ExecStart и замените опцию –user hhvm на –user nginx. Пример одной строки (в одной строке, без разрывов):

ExecStart=/usr/bin/hhvm --config /etc/hhvm/php.ini --config /etc/hhvm/server.ini --user nginx --mode daemon -vServer.Type=fastcgi -vServer.FileSocket=/var/run/hhvm/server.sock -    vPidFile=/var/run/hhvm/server.pid

Сохраните и выйдите.

Теперь смените владельца каталога runtime HHVM:

chown -R nginx:nginx /var/run/hhvm/

Примечание: после перезагрузки владельцем может стать другой пользователь. Для гарантии добавьте команду смены владельца в /etc/rc.d/after.local:

vim /etc/rc.d/after.local

В конец добавьте:

chown -R nginx:nginx /var/run/hhvm/

Сохраните и выйдите.

Скопируйте пример конфигурации HHVM для Nginx и определите web root:

cd /etc/nginx/  
cp hhvm.conf.example hhvm.conf  
vim hhvm.conf

Добавьте вторую строку (пример):

root   /srv/www/htdocs;

Сохраните и выйдите.

Включите include в основном конфиге Nginx:

vim nginx.conf

На строке ~59 добавьте:

include /etc/nginx/hhvm.conf;

Сохраните и выйдите.

Запустите HHVM и перезапустите Nginx:

systemctl enable hhvm  
systemctl start hhvm

systemctl restart nginx

Создайте test-php, чтобы убедиться, что HHVM обрабатывает PHP:

cd /srv/www/htdocs/  
echo "" > info.php

Откройте в браузере: http://192.168.43.29/info.php

HHVM phpInfo

Если отображается страница phpinfo, HHVM и Nginx корректно обрабатывают PHP.

Шаг 5 — Создание виртуального хоста для HHVM и Nginx

Создадим виртуальный хост. В примере используется домен hakasenano.co — замените на свой.

cd /etc/nginx/  
mkdir vhosts.d/  
cd vhosts.d/

vim nano.conf

Вставьте конфигурацию виртуального хоста:

server {  
    # This line for redirect non-www to www  
    server_name  hakasenano.co;
    rewrite ^(.*) http://www.hakasenano.co$1 permanent;
}

server {

        listen   80;
        server_name www.hakasenano.co;
        root /srv/www/nano; 
        index index.php index.html index.htm;

        location / {
                try_files $uri $uri/ =404;
        }

        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
              root /srv/www/htdocs;
        }

        # HHVM running throught Unix-Socket
    location ~ \.(hh|php)$ {
            root   /srv/www/nano;
            fastcgi_keep_conn on;
            #fastcgi_pass   127.0.0.1:9000;
            fastcgi_pass   unix:/var/run/hhvm/server.sock;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

}

Сохраните, создайте корневую папку для данного сайта и проверьте конфигурацию:

mkdir -p /srv/www/nano/

nginx -t  
systemctl restart nginx

Убедитесь, что nginx -t не выводит ошибок.

Шаг 6 — Установка WordPress

Скачиваем и устанавливаем WordPress в директорию виртуального хоста:

cd /srv/www/nano  
wget wordpress.org/latest.zip

unzip latest.zip  
mv wordpress/* .

Настройка wp-config.php:

cp wp-config-sample.php wp-config.php  
vim wp-config.php

Измените параметры подключения к базе данных на те, что вы создали:

define('DB_NAME', 'wpdb');
define('DB_USER', 'wpuser');
define('DB_PASSWORD', 'wpuser@');
define('DB_HOST', 'localhost');

Сохраните и выйдите.

Указание данных БД

Откройте браузер и перейдите на http://www.hakasenano.co — вас перенесёт на экран установки WordPress. Заполните заголовок сайта, учётные данные администратора и завершите установку.

Ввод данных сайта

После успешной установки вы попадёте на страницу входа в админ-панель WordPress.

Успешная установка WP

Войдите и проверьте админ-дэшборд.

Панель управления WordPress

WordPress под Nginx и HHVM на OpenSUSE Leap 42.1 установлен.


Дополнительно: проверка и тесты

Минимальный набор проверок, чтобы подтвердить работоспособность:

  • Доступ к главной странице сайта (HTTP 200).
  • Страница /info.php показывает информацию phpinfo (HHVM). Проверка на наличие строки Server API или HHVM версию.
  • В админке WordPress можно создать запись и опубликовать её.
  • Установка плагина и его активация (проверка работы FastCGI и прав доступа).

Примеры команд для быстрых проверок:

curl -I http://www.hakasenano.co
curl http://www.hakasenano.co/info.php | grep -i hhvm

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

  • Nginx слушает на порту 80 и отвечает кодом 200 на корень сайта.
  • HHVM запущен как системная служба и отвечает через unix-сокет /var/run/hhvm/server.sock.
  • WordPress установился успешно и авторизация администратора работает.
  • База данных wpdb доступна и пользователь wpuser имеет права на неё.
  • Логи Nginx и HHVM не содержат критических ошибок при загрузке главной страницы.

Чек-листы по ролям

Для системного администратора:

  • Установить и запустить Nginx, MariaDB, HHVM.
  • Проверить права на /var/run/hhvm и web-каталоги.
  • Обеспечить автозапуск сервисов.
  • Настроить резервирование конфигураций и бэкапы БД.

Для разработчика/DevOps:

  • Проверить совместимость кода темы и плагинов с HHVM.
  • Выполнить тесты интеграции (создание/редактирование поста).
  • Настроить CI для деплоя обновлений сайта.

Для владельца сайта/контент-менеджера:

  • Подтвердить корректность вывода контента и плагинов.
  • Проверить формы и ссылки на клиентской стороне.

Отладка и распространённые ошибки

  1. Ничего не отображается (500): проверьте логи Nginx и HHVM.
journalctl -u nginx -e
journalctl -u hhvm -e
cat /var/log/nginx/error.log
  1. Ошибка соединения с сокетом /var/run/hhvm/server.sock: убедитесь, что hhvm запущен, сокет существует и права позволяют пользователю nginx читать/писать.
systemctl status hhvm
ls -l /var/run/hhvm/
  1. Проблемы с правами на файлы WordPress: установите корректного владельца (nginx) и права:
chown -R nginx:nginx /srv/www/nano
find /srv/www/nano -type d -exec chmod 755 {} \;
find /srv/www/nano -type f -exec chmod 644 {} \;
  1. Перезапуск возвращает владельца /var/run/hhvm к другому: используйте запись в /etc/rc.d/after.local или systemd tmpfiles.d для создания/правки прав при старте.

  2. Плагины и темы несовместимы с HHVM: некоторые плагины, заточенные под специфичные расширения PHP, могут не работать. Тестируйте на staging перед выкатом.

Безопасность и рекомендации

  • Используйте сложные пароли и, по возможности, ограничьте доступ к базе по IP.
  • Закройте административные порты и убедитесь, что firewall настроен (open ports: 80 и 443 — только при необходимости).
  • Регулярно обновляйте OS и пакеты репозиториев (zypper up), но проверяйте совместимость HHVM-репозитория.
  • Сделайте бэкап wp-config.php и базы данных перед крупными изменениями.
  • Настройте HTTPS (Let’s Encrypt) и перенаправление с HTTP на HTTPS.

Важно: HHVM больше не активно развивается для PHP в тех же темпах, что и PHP-FPM. Для долгосрочной поддержки рассматривайте совместимость с PHP-FPM и миграцию при необходимости.

SOP: быстрый план действий для повторяемой установки

  1. Подготовка сервера: обновить пакеты, открыть нужные порты.
  2. Установить Nginx, MariaDB.
  3. Создать БД и пользователя.
  4. Добавить репозиторий HHVM, установить hhvm и примеры конфигураций.
  5. Настроить Unix-socket и права для /var/run/hhvm.
  6. Добавить vhost в /etc/nginx/vhosts.d/ и перезапустить Nginx.
  7. Развернуть WordPress, настроить wp-config.php.
  8. Протестировать поведение, зафиксировать конфиги и сделать бэкап.

Плейбук отката (rollback)

Если после изменений сайт перестал работать, последовательность отката:

  1. Вернуть резервную копию /etc/nginx/nginx.conf и vhost-файлов.
  2. Вернуть бэкап /etc/hhvm/server.ini и hhvm systemd unit.
  3. Перезапустить сервисы: systemctl restart hhvm && systemctl restart nginx.
  4. Если проблема в базе — восстановить дамп MySQL.

Короткий глоссарий (1 строка на термин)

  • HHVM — JIT-исполнитель для PHP/Hack.
  • Nginx — веб-сервер с высокой производительностью.
  • MariaDB — реляционная СУБД, форк MySQL.
  • FastCGI — протокол для взаимодействия веб-сервера и обработчика приложений.
  • Unix-socket — файловый сокет для локального IPC между процессами.

Совместимость и когда HHVM может не подойти

  • HHVM ориентирован на старые версии PHP 5 и частично PHP 7; современные плагины WordPress, использующие последние фичи PHP, могут работать некорректно.
  • Если ваша кодовая база полагается на расширения PHP, которые не поддерживает HHVM, рассмотрите PHP-FPM.

Полезные команды и сниппеты (cheat sheet)

  • Проверка конфигурации Nginx: nginx -t
  • Перезапуск сервисов: systemctl restart nginx hhvm mysql
  • Проверка статуса сервисов: systemctl status nginx hhvm mysql
  • Просмотр логов в реальном времени: journalctl -u hhvm -f

Ресурсы и ссылки


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

WordPress успешно устанавливается и запускается на OpenSUSE Leap 42.1 с Nginx и HHVM при корректной настройке Unix-socket, прав пользователей и конфигурации виртуального хоста. Для продакшена обязательно используйте HTTPS, надёжные пароли и регулярно проверяйте совместимость плагинов с HHVM.

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