Поиск по сайту:

Настройка высокопроизводительного HHVM и Nginx/Apache с MariaDB в Debian/Ubuntu


HHVM означает HipHop Virtual Machine. Это виртуальная машина с открытым исходным кодом, созданная для запуска Hack (это язык программирования для HHVM) и Приложения, написанные на PHP. HHVM использует путь компиляции в последнюю минуту для достижения замечательной производительности, сохраняя при этом гибкость, к которой пристрастились программисты PHP. На сегодняшний день HHVM добился более чем 9-кратного увеличения пропускной способности HTTP-запросов и более чем 5-кратного сокращения использования памяти (при работе с низким уровнем системной памяти) для Facebook по сравнению с движком PHP + APC (альтернативный PHP-кеш). ).

HHVM также можно использовать вместе с веб-сервером на базе FastCGI, например Nginx или Apache.

В этом руководстве мы рассмотрим шаги по настройке веб-сервера Nginx/Apache, сервера базы данных MariaDB и HHVM. . Для этой настройки мы будем использовать Ubuntu 15.04 (64-разрядную версию), поскольку HHVM работает только в 64-разрядной системе, хотя дистрибутивы Debian и Linux Mint также поддерживаются.

Шаг 1. Установка Nginx и веб-сервера Apache

1. Сначала обновите систему, чтобы обновить список репозиториев, с помощью следующих команд.


apt-get update && apt-get upgrade

2. Как я уже сказал, HHVM можно использовать как с веб-сервером Nginx, так и с Apache. Итак, вы сами выбираете, какой веб-сервер вы будете использовать, но здесь мы покажем вам как установку веб-серверов, так и то, как их использовать с HHVM.

Установка Nginx

На этом этапе мы установим веб-сервер Nginx/Apache из репозитория пакетов, используя следующую команду.


apt-get install nginx

Установка Апача


apt-get install apache2

На этом этапе вы сможете перейти по следующему URL-адресу и увидеть страницу по умолчанию Nginx или Apache.


http://localhost
OR
http://IP-Address
Страница Nginx по умолчанию

Страница Apache по умолчанию

Шаг 2. Установите и настройте MariaDB

3. На этом этапе мы установим MariaDB, поскольку он обеспечивает более высокую производительность по сравнению с MySQL.


apt-get install mariadb-client mariadb-server

4. После успешной установки MariaDB вы можете запустить MariaDB и установить пароль root для защиты базы данных:


systemctl start mysql
mysql_secure_installation

Ответьте на следующие вопросы, набрав y или n и нажмите Enter. Прежде чем отвечать на вопросы, обязательно внимательно прочтите инструкции.


Enter current password for root (enter for none) = press enter
Set root password? [Y/n] = y
Remove anonymous users[y/n] = y
Disallow root login remotely[y/n] = y
Remove test database and access to it [y/n] = y
Reload privileges tables now[y/n] = y 

5. После установки пароля root для MariaDB вы можете подключиться к приглашению MariaDB с новым паролем root.


mysql -u root -p

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

6. На этом этапе мы установим и настроим HHVM. Вам необходимо добавить репозиторий HHVM в файл sources.list, а затем обновить список репозиториев, используя следующую серию команд.


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

Важно: не забудьте заменить DISTRIBUTION_VERSION на версию вашего дистрибутива Ubuntu (т. е. понятную, точную или надежную). .), а также в Debian замените на jessie или wheezy. В Linux Mint инструкции по установке такие же, но petra — единственный поддерживаемый в настоящее время дистрибутив.

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


apt-get install -y hhvm

Установка HHVM запустит его сейчас, но он не настроен на автоматический запуск при следующей загрузке системы. Чтобы установить автоматический запуск при следующей загрузке, используйте следующую команду.


update-rc.d hhvm defaults

Шаг 4. Настройка Nginx/Apache для взаимодействия с HHVM

7. Теперь nginx/apache и HHVM установлены и работают как независимые, поэтому нам нужно настроить оба веб-сервера для взаимодействия друг с другом. Важнейшая часть заключается в том, что мы должны указать nginx/apache пересылать все файлы PHP в HHVM для выполнения.

Если вы используете Nginx, следуйте инструкциям, как описано.

По умолчанию конфигурация nginx находится в папке /etc/nginx/sites-available/default, и эта конфигурация ищет файлы для выполнения в /usr/share/nginx/html. но он не знает, что делать с PHP.

Чтобы заставить Nginx взаимодействовать с HHVM, нам нужно запустить следующий скрипт включения, который правильно настроит nginx, разместив hhvm.conf в начале конфигурации nginx, как указано выше.

Этот скрипт заставляет nginx обращаться к любому файлу, который заканчивается на .hh или .php, и отправлять его в HHVM через fastcgi.


/usr/share/hhvm/install_fastcgi.sh

Важно! Если вы используете Apache, никакой настройки сейчас не требуется.

8. Далее вам нужно использовать /usr/bin/hhvm, чтобы предоставить /usr/bin/php (php), выполнив эту команду. ниже.


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

После выполнения всех вышеперечисленных шагов вы можете запустить HHVM и протестировать его.


systemctl start hhvm

Шаг 5. Тестирование HHVM с помощью Nginx/Apache

9. Чтобы убедиться, что hhvm работает, вам необходимо создать файл hello.php в корневом каталоге документа nginx/apache.


nano /usr/share/nginx/html/hello.php       [For Nginx]
OR
nano /var/www/html/hello.php               [For Nginx and Apache]

Добавьте следующий фрагмент в этот файл.


<?php
if (defined('HHVM_VERSION')) {
echo 'HHVM is working';
 phpinfo();
}
else {
echo 'HHVM is not working';
}
?>

а затем перейдите по следующему URL-адресу и убедитесь, что вы видите «hello world».


http://localhost/info.php
OR
http://IP-Address/info.php

Если появится страница «HHVM», значит, все готово!

Заключение

Эти шаги очень легко выполнить, и мы надеемся, что это руководство окажется для вас полезным. Если во время установки каких-либо пакетов вы обнаружите какую-либо ошибку, оставьте комментарий, и мы вместе найдем решения. И любые дополнительные идеи приветствуются.