Debian / UbuntuでMariaDBを使用して高性能HHVMとNginx / Apacheをセットアップする


HHVMはHipHopVirtual Machineの略で、Hack(HHVMのプログラミング言語)およびPHPで記述されたアプリケーションを実行するために作成されたオープンソースの仮想マシンです。 HHVMは、PHPプログラマーが夢中になっている柔軟性を維持しながら、直前のコンパイルパスを使用して優れたパフォーマンスを実現します。これまで、HHVMは、PHPエンジン+ APC(Alternative PHP Cache)と比較して、Facebookのhttpリクエストスループットを9倍以上向上させ、メモリ使用率を5倍以上削減しました(システムメモリが少ない場合)。

HHVMは、NginxやApacheなどのFastCGIベースのWebサーバーと一緒に使用することもできます。

このチュートリアルでは、Nginx/Apache Webサーバー、MariaDBデータベースサーバー、およびHHVMをセットアップするための手順を見ていきます。このセットアップでは、HHVMが64ビットシステムでのみ実行されるため、Ubuntu 15.04(64ビット)を使用しますが、DebianおよびLinuxMintディストリビューションもサポートされています。

ステップ1:NginxとApacheWebサーバーをインストールする

1.最初にシステムをアップグレードして、次のコマンドを使用してリポジトリリストを更新します。

# apt-get update && apt-get upgrade

2.先ほど述べたように、HHVMはNginxとApacheの両方のWebサーバーで使用できます。したがって、使用するWebサーバーは選択できますが、ここでは、WebサーバーのインストールとHHVMでの使用方法の両方を示します。

このステップでは、次のコマンドを使用して、パッケージリポジトリからNginx/ApacheWebサーバーをインストールします。

# apt-get install nginx
# apt-get install apache2

この時点で、次のURLに移動できるはずであり、NginxまたはApacheのデフォルトページが表示されます。

http://localhost
OR
http://IP-Address

ステップ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. MariaDBのrootパスワードを設定した後、新しいrootパスワードでMariaDBプロンプトに接続できます。

# 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のインストール手順は同じですが、現在サポートされているディストリビューションはペトラだけです。

HHVMリポジトリーを追加した後、図のように簡単にインストールできます。

# apt-get install -y hhvm

HHVMをインストールすると、HHVMが起動しますが、次回のシステム起動時に自動起動するように構成されていません。次回の起動時に自動起動を設定するには、次のコマンドを使用します。

# update-rc.d hhvm defaults

ステップ4:HHVMと通信するようにNginx / Apacheを構成する

7.これで、nginx/apacheとHHVMが独立してインストールおよび実行されるため、相互に通信するように両方のWebサーバーを構成する必要があります。重要な部分は、すべてのPHPファイルをHHVMに転送して実行するようにnginx/apacheに指示する必要があることです。

Nginxを使用している場合は、説明に従ってこの手順に従ってください。

デフォルトでは、nginx構成は/ etc/nginx/sites-available/defaultの下にあり、これらの構成は/ usr/share/nginx/htmlで実行するファイルを探しますが、PHPで何をすべきかわかりません。

NginxがHHVMと通信できるようにするには、上記のようにnginx構成の先頭にhhvm.confを配置することで、nginxを正しく構成する次のincludeスクリプトを実行する必要があります。

このスクリプトにより、nginxは.hhまたは.phpで終わるファイルと通信し、fastcgiを介してHHVMに送信します。

# /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:Nginx / Apacheを使用したHHVMのテスト

9. hhvmが機能していることを確認するには、nginx/apacheドキュメントのルートディレクトリにhello.phpファイルを作成する必要があります。

# 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に移動し、「helloworld」が表示されることを確認します。

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

「HHVM」ページが表示された場合は、準備が整ったことを意味します。

結論

これらの手順は非常に簡単で、このチュートリアルがお役に立てば幸いです。パッケージのインストール中にエラーが発生した場合は、コメントを投稿してください。一緒に解決策を見つけます。そして、どんな追加のアイデアも歓迎します。