HHVM(HipHop Virtual Machine)は、HackおよびPHPで記述されたプログラムを実行するために設計されたオープンソースの仮想マシンです。 HHVMはFacebookによって開発されており、そのソースコードはGithubでホストされています。 PHPおよびZendライセンスの条件の下でリリースされました。
HHVMは、PHPが提供する開発の柔軟性を損なうことなく、優れたパフォーマンスを実現するのに役立つJIT(ジャストインタイム)コンパイルの原則を使用しています。 HHVMは、PHPまたはハックコードを中間HipHopバイトコード(HHBC)に実行してから、x86_64マシンコードに動的に変換します。
HHVMは、ほとんどの主要なLinuxプラットフォームにインストールできます。 Mac OS X 10.10での実験的なサポートもあり、Windowsオペレーティングシステムをサポートするための作業が進行中です。
HHVMは、DebianおよびUbuntuオペレーティングシステム用のビルド済みパッケージを提供します。
Ubuntu 16.04(Xenial)
Ubuntu 15.10(Wily Werewolf)
Ubuntu 15.04(Vivid)
Ubuntu 14.04(Trusty)
Debian 8(Jessie)
Debian 7(Wheezy )
他の種類のLinuxディストリビューションのソースからビルドすることもできます。
リリース:
HHVMはFacebookによって積極的に開発されており、8週間ごとにフルバージョン(安定版リリース)を入手できます。 HHVMの3つおきのメジャーポイントリリースは、ロングタームサポート(LTS)リリースと見なされます。 LTSはほぼ1年間サポートされており、重大なバグ修正とセキュリティパッチがバックポートされています。
それでも質問がある場合は、LTSリリースに関するブログ投稿にアクセスしてください。
このガイドは、Ubuntu16.04およびDebian8でHHVMをセットアップするのに役立ちます。このガイドは、Ubuntu 15.10、Ubuntu 14.04 LTS、Ubuntu 15.04、Debian7などの以前のバージョンのUbuntuで機能するはずです。
HHVMリポジトリの追加:
次に、インストールに進む前に、マシンにHHVMリポジトリを追加します。
Debian:
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0x5a16e7281be7a449 echo deb http://dl.hhvm.com/debian $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/hhvm.list
Ubuntu:
sudo apt-get install software-properties-common sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0x5a16e7281be7a449 sudo add-apt-repository "deb http://dl.hhvm.com/ubuntu $(lsb_release -sc) main"PS:Ubuntuの場合、変数「$(lsb_release -sc)」をディストリビューションのcodnameに置き換えます。例:ゼニアル
Ubuntu 16.04 / Debian 8にHHVMをインストールします:
リポジトリキャッシュを更新し、HHVMのインストールに進みます。これにより、最新バージョンのHHVMがマシンにインストールされます。
sudo apt-get update sudo apt-get install -y hhvm
HHVMのバージョンを確認します。
$ php -v HipHop VM 3.15.0 (rel) Compiler: tags/HHVM-3.15.0-0-g92a682ebaa3c85b84857852d8621f528607fe27d Repo schema: 225d4323575bbc8a498dc809a1c41354f6bca830
HHVMのテスト:
コマンドを呼び出すだけでHHVMを起動できます。 「hhvm」コマンドで追加の引数を使用してHHVMサーバーを制御できます。
現在の作業ディレクトリでWebブラウザを介してリクエストを処理するPHPファイルを作成しましょう。
vi test.php
以下の内容を上記のファイルに入れてください。
以下のコマンドを実行します。
hhvm -m server -p 8080
-m モードを表し、ここではHHVMがHTTPサーバーモードとして実行されていることを示します
-p HHVMがHTTPリクエストをリッスンするために使用するTCPポートを構成します。
HHVMモードについて詳しく知る。
Webブラウザを以下のURLに移動します。
http://ip-add-re-ss:8080 / test.phpHHVMが正常に機能していることを確認する以下のページが表示されます。
サーバーの種類:
サーバータイプは、HHVMがユーザーの要求に応じてページを提供する方法に基づいて分類されます。サーバータイプのサポートが組み込まれています: Proxygen およびFastCGI 。
HHVM ProxyGen:
Proxygenモードは、HHVMに直接組み込まれた完全なWebサーバーです。セットアップと実行は非常に簡単で、Webリクエストを高速に処理します。 Porxygenモードは、FastCGIおよびNginxと同等の高性能Webサーバーを提供します。
すでに述べたように、構成パラメーターは非常に単純でセットアップが簡単です。 HHVMのメイン構成ファイルは/etc/hhvm/server.iniです。 。
以下のように構成ファイルを編集します。
sudo vi /etc/hhvm/server.ini
要件に応じてHHVM構成を変更します。
; configures the TCP port that HHVM uses to listen to HTTP requests. hhvm.server.port = 80 ; Configures HHVM server type hhvm.server.type = proxygen ; Configures default document for the directory hhvm.server.default_document = index.php ; Enabling Logs hhvm.log.use_log_file = true hhvm.log.file = /var/log/hhvm/error.log ; Configures Error document for the directory hhvm.server.error_document404 = index.php ; Sets the default directory for HHVM webserver when it is started hhvm.server.source_root=/var/www/public
これらのコマンドを実行して、HHVMを起動時に起動し、今すぐサービスとして起動するように設定できます。
sudo update-rc.d hhvm defaults sudo service hhvm restart
Webサイトのドキュメントを保持する/var/ www/publicディレクトリを作成します。
sudo mkdir -p /var/www/public
テストファイルを作成して、HHVMがWebリクエストを処理していることを確認します。
sudo vi /var/www/public/index.php
以下の内容を上記のファイルに貼り付けます。
選択したブラウザからHHVMWebサーバーにアクセスします。
http:// ip-add-re-ssPHPに関するすべての情報を見つけることができるPHPInfoページが表示されます。
HHVM FastCGI:
このモードでは、HHVMはWebドキュメント( .php )の間に配置されます )およびWebサーバー( Apache またはNginx )。 FastCGIは、Webページを高速に提供する際に高性能を提供します。これは、PHP-FPMと非常によく似ています。 HHVMはTCPソケット( localhost:9000 )のいずれかでリッスンします )またはUNIXソケット。 Webサーバー( Nginx またはApache )ポート80または443でWebリクエストをリッスンします。
新しいリクエストが着信すると、WebサーバーはHHVMに接続するか、HHVMFastCGIを使用して以前に開いていた接続の1つを再利用します。接続が確立されると、WebサーバーはHHVMに、要求ヘッダー、本文、実行するファイルのパスなどの情報を提供します。これで、HHVMは受信した情報を計算し、FastCGIを使用してWebサーバーに送り返します。最後に、Webサーバーは要求されたデータを含む応答をクライアントに送信します。
Apache:
次のコマンドを使用して、Apacheサーバーをマシンにインストールします。
sudo apt-get install -y apache2
以下のコマンドを実行すると、ApacheがHHVMと連携してWebリクエストを処理するように設定されます。
sudo /usr/share/hhvm/install_fastcgi.sh
デフォルトでは、apacheは / var / www / htmlでWebページを検索します リクエストを処理するディレクトリですが、 .phpの処理方法がわからない場合があります ファイル。したがって、 .hhで終わるファイルを取得するようにapacheに指示する必要があります。 または.php fastCGI経由でHHVMに送信しました。
以下の構成ファイルを編集します。
sudo vi /etc/apache2/mods-enabled/hhvm_proxy_fcgi.conf
以下のように設定してください。
ProxyPassMatch ^/(.+\.(hh|php)(/.*)?)$ fcgi://127.0.0.1:9000/var/www/html/$1
apacheおよびHHVMサービスを再起動します。
sudo /etc/init.d/apache2 restart sudo /etc/init.d/hhvm restart
Nginx:
次のコマンドを使用して、マシンにNginxをインストールします。
sudo apt-get install -y nginx
以下のコマンドを実行すると、NginxがHHVMと連携してWebリクエストを処理するように設定されます。
sudo /usr/share/hhvm/install_fastcgi.sh
デフォルトでは、Nginxは / usr / share / nginx / htmでWebページを検索します l(OSによって異なります)リクエストを処理するディレクトリですが、 .phpの処理方法がわからない場合があります ファイル。したがって、 .hhで終わるファイルを取得するようにNginxに指示します または.php fastCGI経由でHHVMに送信しました。
以下の構成ファイルを編集します。
sudo vi /etc/nginx/sites-available/default
行の下を変更し、インデックス行にindex.phpを追加します。
差出人:
index index.html index.htm;
宛先:
index index.php index.html index.htm;
apacheおよびHHVMサービスを再起動します。
sudo /etc/init.d/nginx restart sudo /etc/init.d/hhvm restart
FastCGIタイプをテストするには、.phpファイルを作成してデフォルトのディレクトリに配置します。
ApacheおよびNginxUbuntu16.04、15.04 / Debian 8:
$ sudo vi /var/www/html/index.php
以下の内容を上記のファイルに貼り付けます。