Статьи

Использование HHVM с WordPress

За последние несколько месяцев HHVM захватил сообщество PHP штурмом. С момента выхода WordPress 3.9 HHVM теперь на 100% совместим с WordPress.

К сожалению, HHVM не совсем готов для использования в производстве в автономных средах. По моему опыту, HHVM дает сбой примерно раз в день, что делает его нежизнеспособным для сайта, где важна высокая доступность. Недавно WP Engine выпустила проект Mercury, который без проблем позволяет HHVM изящно терпеть неудачу, возвращаясь к PHP 5.5 в случае неудачи.

В этой статье мы собираемся установить HHVM на сервер Ubuntu, на котором установлена ​​последняя версия LTS, 14.04. Это можно сделать либо с помощью программы визуализации, такой как VirtualBox (бесплатно) с загруженным файлом Ubuntu ISO, либо с помощью службы облачного хостинга. DigitalOcean предлагает облачные серверы за 5 долларов в месяц, что я и буду использовать в этом руководстве.

Первое, что вы должны сделать, это обновить все пакеты и зависимости:

$ sudo apt-get update && sudo apt-get upgrade

Теперь вам нужно установить MySQL, базу данных, которая поддерживает WordPress.

$ sudo apt-get install mysql-server

Вы должны установить корневой пароль MySQL по очевидным причинам безопасности. Если вы особенно $ mysql_secure_installation безопасности, вам также следует запустить $ mysql_secure_installation и выполнить необходимые шаги для блокировки вашего сервера.

Следующее, что вам нужно сделать, это настроить веб-сервер. Я предпочитаю использовать Nginx, потому что он легкий, универсальный и простой в настройке.

$ sudo apt-get install nginx

Теперь установите HHVM. Это не так просто, как установка других пакетов, потому что это не доступно в репозитории Ubuntu. Вместо этого мы должны загрузить его из самого HHVM вместе с несколькими зависимостями.

1
2
3
4
5
6
7
8
wget -O — http://dl.hhvm.com/conf/hhvm.gpg.key |
echo deb http://dl.hhvm.com/ubuntu trusty main |
sudo apt-get update
cd /tmp && wget http://security.ubuntu.com/ubuntu/pool/main/libm/libmemcached/libmemcached10_1.0.8-1ubuntu2_amd64.de…
sudo dpkg -i libmemcached10_1.0.8-1ubuntu2_amd64.deb && rm libmemcached10_1.0.8-1ubuntu2_amd64.deb
sudo apt-get install -y libgnutls26
wget http://mirrors.kernel.org/ubuntu/pool/main/r/rtmpdump/librtmp0_2.4+20121230.gitdf6c518-1_amd64.deb && sudo dpkg -i librtmp0_2.4+20121230.gitdf6c518-1_amd64.deb && rm librtmp0_2.4+20121230.gitdf6c518-1_amd64.deb
sudo apt-get install hhvm

Теперь, когда мы установили HHVM, нам нужно запустить скрипт установки, который установит модуль HHVM для Nginx.

sudo /usr/share/hhvm/install_fastcgi.sh

Теперь перезапустите HHVM и Nginx.

sudo /etc/init.d/hhvm restart

sudo /etc/init.d/nginx restart

Следующее, что нам нужно сделать, это настроить виртуальный хост для нашего сайта. Обычно вы создаете новый виртуальный хост для каждого веб-сайта на сервере, но поскольку мы тестируем (и для простоты), мы просто перезаписываем содержимое /etc/nginx/sites-available/default простым файл ниже:

Примечание: для редактирования этого файла вам необходимы права root.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
server {
  listen 80;
      server_name localhost;
    include hhvm.conf;
   
    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;
     
    root /var/www;
    index index.php;
     
    location / {
        try_files $uri $uri/ /index.php?$args;
    }
}

Теперь мы можем настроить WordPress:

  1. Перезагрузите обновленную конфигурацию nginx: $ sudo service nginx reload .
  2. Теперь создайте корневой веб-каталог: $ sudo mkdir /var/www .
  3. Загрузите WordPress: $ sudo wget http://wordpress.org/latest.tar.gz /var/www/ .
  4. Извлечь WordPress: $ sudo tar xvf /var/www/latest.tar.gz .
  5. Переместите файлы WordPress в корневой веб-каталог: $ sudo mv /var/www/wordpress/* /var/www/ .
  6. Очистка: $ sudo rm -rf /var/www/wordpress /var/www/latest.tar.gz .
  7. Установите права доступа: $ sudo chmod -R 775 /var/www .
  8. Задать группы: $ sudo chown -R www-data.www-data /var/www .

Войдите в MySQL $ mysql -u root -p . Теперь выполните следующие команды:

1
2
3
4
5
CREATE DATABASE wordpress;
CREATE USER wordpress@localhost;
GRANT ALL PRIVILEGES ON wordpress.* to username@localhost IDENTIFIED BY ‘password’;
FLUSH PRIVILEGES;
quit

Теперь вы можете перейти на IP-адрес вашего сервера и следовать знаменитой пятиминутной установке.

Поздравляем! Теперь у вас есть собственный сайт WordPress, работающий по самым современным технологиям. Вот мои скорости запуска WordPress по умолчанию с использованием HHVM, следуя инструкциям выше:

Скорость результатов для веб-сайта с использованием HHVM

Как быстро загружается ваш сайт?