開発運用

HHVMとNginxの設定ガイド

HHVM(HipHop Virtual Machine)は、PHPおよびHackのコードを効率的に実行するために開発された仮想マシンです。Nginxは、HTTPおよびリバースプロキシサーバーとして広く利用されている高性能なウェブサーバーです。これらを組み合わせて、Ubuntu 14.04でHHVMをインストールし、Nginxと連携させる手順を詳しく説明します。

1. HHVMのインストール準備

まず、Ubuntu 14.04に必要な依存関係をインストールします。これには、必要なリポジトリを追加するためにcurlやsoftware-properties-commonをインストールする作業が含まれます。

1.1 依存パッケージのインストール

ターミナルを開き、以下のコマンドを実行します。

bash
sudo apt-get update sudo apt-get install -y software-properties-common curl

1.2 HHVMのリポジトリを追加

HHVMは、公式のパッケージリポジトリから直接インストールすることができます。まず、HHVMのPPA(Personal Package Archive)を追加します。

bash
sudo add-apt-repository ppa:hhvm/ppa

リポジトリを追加した後、再度パッケージリストを更新します。

bash
sudo apt-get update

1.3 HHVMのインストール

次に、HHVMをインストールします。以下のコマンドを実行します。

bash
sudo apt-get install -y hhvm

インストールが完了したら、HHVMが正しくインストールされていることを確認します。

bash
hhvm --version

このコマンドでHHVMのバージョン情報が表示されれば、インストールは成功しています。

2. Nginxのインストールと設定

次に、Nginxをインストールして設定します。まずはNginxのインストールから始めます。

2.1 Nginxのインストール

以下のコマンドでNginxをインストールします。

bash
sudo apt-get install -y nginx

インストールが完了したら、Nginxが自動的に起動していることを確認します。

bash
sudo systemctl status nginx

active (running) と表示されていれば、Nginxが正しく起動しています。

2.2 Nginxの設定

NginxはPHPを直接実行することはできませんが、FastCGI経由でHHVMにリクエストを渡すことで、PHPファイルを実行することができます。以下の手順でNginxの設定を行います。

2.2.1 Nginxの設定ファイルを編集

Nginxの設定ファイルを編集して、HHVMをFastCGIとして使用するように設定します。/etc/nginx/sites-available/default ファイルを開きます。

bash
sudo nano /etc/nginx/sites-available/default

以下の内容を追加します。

nginx
server { listen 80; server_name example.com; root /var/www/html; index index.php; location / { try_files $uri $uri/ =404; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }

この設定では、fastcgi_pass でHHVMがリッスンしているポート(通常は9000番)にリクエストを渡します。

2.2.2 Nginxの再起動

設定を反映させるために、Nginxを再起動します。

bash
sudo systemctl restart nginx

これで、NginxがHHVMと連携してPHPファイルを実行できるようになります。

3. HHVMの設定

HHVMはFastCGIでリクエストを受け取るために、適切な設定が必要です。デフォルトではHHVMはHTTPサーバーとしても動作しますが、FastCGIモードでの設定に切り替える必要があります。

3.1 HHVMの設定ファイルを編集

HHVMの設定ファイルを編集して、FastCGIモードを有効にします。

bash
sudo nano /etc/hhvm/php.ini

このファイルに以下の行を追加します。

ini
cgi.fix_pathinfo = 0

この設定を追加することで、PHPスクリプトの実行がFastCGIモードで行われるようになります。

3.2 HHVMの再起動

設定を反映させるために、HHVMを再起動します。

bash
sudo service hhvm restart

4. PHPファイルの配置

NginxとHHVMが正しく連携することを確認するために、PHPファイルを配置してテストします。

4.1 テスト用PHPファイルを作成

/var/www/html ディレクトリにテスト用のPHPファイルを作成します。

bash
echo "" | sudo tee /var/www/html/info.php

4.2 ブラウザでテスト

ブラウザでhttp://your-server-ip/info.phpにアクセスし、PHPの情報ページが表示されれば、NginxとHHVMの設定が正しく動作していることを確認できます。

5. セキュリティ設定

セキュリティを強化するために、公開する必要のないPHP情報を表示させない設定を行います。

5.1 PHPファイルの削除

テスト用のinfo.phpファイルを削除します。

bash
sudo rm /var/www/html/info.php

5.2 Nginxのセキュリティ設定

Nginxの設定ファイルにセキュリティ強化のための設定を追加します。例えば、/etc/nginx/sites-available/defaultに以下のような設定を追加することができます。

nginx
server { listen 80; server_name example.com; root /var/www/html; index index.php; location / { try_files $uri $uri/ =404; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; # ヘッダー設定 add_header X-Content-Type-Options nosniff; add_header X-XSS-Protection "1; mode=block"; add_header X-Frame-Options DENY; } }

これにより、セキュリティヘッダーが追加され、ウェブサイトがより安全になります。

6. 結論

これで、Ubuntu 14.04上にHHVMをインストールし、Nginxと連携させる設定が完了しました。これにより、高速なPHPおよびHackの実行環境が整い、ウェブアプリケーションのパフォーマンスを向上させることができます。

Back to top button