m_shige1979のときどきITブログ

プログラムの勉強をしながら学習したことや経験したことをぼそぼそと書いていきます

Github(変なおっさんの顔でるので気をつけてね)

https://github.com/mshige1979

CentOSでHHVMの実験

環境

OS

CentOS 64bit(VMPlayer)

PHPある?

plenvで搭載済み

fastcgiは?

一応入れている

HHVM

リポジトリ登録
yum install http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum upgrade
cd /etc/yum.repos.d/
wget http://www.hop5.in/yum/el6/hop5.repo
インストール
yum install hhvm
バージョン確認
hhvm --version

実行結果

[root@localhost yum.repos.d]# hhvm --version
HipHop VM 2.4.0 (rel)
Compiler: tags/HHVM-2.4.0-0-gc82fcd8e6199c500454b1a8b930a876ef2c1522b
Repo schema: c63b08a9dc618c8a3eaea633d4d1776b668c75d6
[root@localhost yum.repos.d]#

HHVMのサーバとしてfastcgiとして稼働

ディレクトリを作成
mkdir -p /var/www/html/dev7.example.com/public
mkdir -p /var/log/nginx/dev7.example.com
nginx
server {
    # ポート、サーバネーム
    listen       80;
    server_name  dev7.example.com;

    # アクセスログ、エラーログ
    access_log  /var/log/nginx/dev7.example.com/access.log  main;
    error_log   /var/log/nginx/dev7.example.com/error.log;

    # ドキュメントルート
    root   /var/www/html/dev7.example.com/public;

    # indexファイル
    index  index.php index.html index.htm;

    #
    location / {
        root   /var/www/html/dev7.example.com/public;
        index  index.php index.html index.htm;
        try_files $uri $uri/ /index.php?$args;
    }

    # phpの処理
    location ~ \.php$ {
        root   /var/www/html/dev7.example.com/public;
        fastcgi_pass   127.0.0.1:9001;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

    # アクセスを制限する
    location ~ (\.htaccess|\.git|\.svn) {
        deny  all;
    }

    # 文字コード
    charset utf-8;

}
サンプル用のphpファイルをドキュメントルート直下にindex.phpとして作成
<?php
phpinfo();
nginxを再起動
service nginx restart
hhvmをサーバとして起動
hhvm --mode server -vServer.Type=fastcgi -vServer.Port=9001

[root@localhost conf.d]# hhvm --mode server -vServer.Type=fastcgi -vServer.Port=9001
mapping self...
mapping self took 0'00" (88072 us) wall time
loading static content...
loading static content took 0'00" (0 us) wall time
page server started
all servers started

結果

f:id:m_shige1979:20140406211312j:plain
なんかこれでいいらしい
ちょっと焦った

まとめ

既存のfastcgiサーバに9000を使用しているので9001にして対応
他になんかのプログラムを実行して確認をしないと。

パフォーマンスはわからんけど、なんかイケる感じになる。仕事では使えないけど個人でいろいろやってみよう