Настройка высокопроизводительного 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», значит, все готово!
Заключение
Эти шаги очень легко выполнить, и мы надеемся, что это руководство окажется для вас полезным. Если во время установки каких-либо пакетов вы обнаружите какую-либо ошибку, оставьте комментарий, и мы вместе найдем решения. И любые дополнительные идеи приветствуются.