ウェブサイト検索

Debian/Ubuntu上でMariaDBを使用した高性能HHVMおよびNginx/Apacheの設定


HHVMはHipHop Virtual Machineの略で、Hack(HHVMのためのプログラミング言語)およびPHPで書かれたアプリケーションを実行するために作成されたオープンソースの仮想マシンです。HHVMは、驚異的なパフォーマンスを達成しながら、PHPプログラマーが慣れ親しんでいる柔軟性を保つために、最後の瞬間にコンパイルするパスを使用しています。現在までに、HHVMはFacebookにおいて、PHPエンジン + APC(Alternative PHP Cache)と比較してhttpリクエストスループットを9倍以上増加させ、メモリ使用量を5倍以上削減しました(システムメモリが低い場合において)。

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

このチュートリアルでは、Nginx/Apache ウェブサーバー、MariaDB データベースサーバー、および HHVM をセットアップする手順について見ていきます。このセットアップでは、HHVM が 64 ビットシステムでのみ動作するため、Ubuntu 15.04 (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

Apacheのインストール


apt-get install apache2

この時点で、次のURLに移動できるはずで、NginxまたはApacheのデフォルトページを見ることができるでしょう。


http://localhost
OR
http://IP-Address
Nginxデフォルトページ

Apacheデフォルトページ

ステップ2:MariaDBをインストールして構成する

3. このステップでは、MySQLと比べてより良いパフォーマンスを提供するため、MariaDBをインストールします。


apt-get install mariadb-client mariadb-server

4. MariaDBのインストールが成功した後、MariaDBを起動し、データベースのセキュリティを強化するためにrootパスワードを設定できます:


systemctl start mysql
mysql_secure_installation

次の質問にyまたはnを入力してエンターを押して答えてください。質問に答える前に指示をよく読んでください。


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のルートパスワードを設定した後、新しいルートパスワードで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ディストリビューションバージョン(例:lucid、precise、またはtrusty)に置き換えるのを忘れないでください。また、Debianではjessieまたはwheezyに置き換えてください。Linux Mintのインストール手順は同じですが、petraが現在サポートされている唯一のディストリビューションです。

HHVMリポジトリを追加した後、示されているように簡単にインストールできます。


apt-get install -y hhvm

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


update-rc.d hhvm defaults

ステップ4: HHVMと通信するためのNginx/Apacheの設定

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で終わる任意のファイルと対話し、それをfastcgi経由でHHVMに送信するようにします。


/usr/share/hhvm/install_fastcgi.sh

重要: Apacheを使用している場合、今は特に設定は必要ありません。

8. 次に、以下のコマンドを実行することで、/usr/bin/php (php) を提供するために /usr/bin/hhvm を使用する必要があります。


/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に移動して「こんにちは世界」が表示されているか確認してください。


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

「HHVM」ページが表示される場合は、すべて準備が整っていることを意味します!

結論

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

関連記事: