FreeNAS9.3 + h2o の環境に PHP をインストールしました。
インストール
難しい事は何も無く、 pkg コマンドでいけました。
# pkg install php56
...
# pkg install php56-extensions
...
設定ファイルを用意。まずは起動実験という事で、開発用の php.ini を使い、 doc_root を暫定のディレクトリにします。
# cd /usr/local/etc
# cp -p php.ini-development php.ini
# vi pnp.ini
# diff -U0 php.ini php.ini-development
--- php.ini 2015-12-27 22:22:14.499742681 +0900
+++ php.ini-development 2015-12-17 21:01:05.000000000 +0900
@@ -725 +725 @@
-doc_root = /media/www/test
+doc_root =
h2o.ini に php 関連を追記。これもそこら中で説明されていますね。大事なのは file.custom-handler: の部分。これだけで FastCGI になって php-fpm の起動も不要ってんだから楽なもんです。
user: www
pid-file: /var/run/h2o.pid
access-log: /var/log/h2o/h2o-access.log
error-log: /var/log/h2o/h2o-error.log
listen: 80
file.custom-handler:
extension: .php
fastcgi.spawn: "PHP_FCGI_CHILDREN=10 exec /usr/local/bin/php-cgi"
hosts:
test.example.com:
paths:
"/":
file.dir: "/media/www/test"
設定ファイルを修正したら再起動しましょう。余談ですが reload だと時々失敗するんですよね。原因不明。
# /usr/local/etc/rc.d/h2o restart
最後に bind で test.example.com を設定します。以上で設定は終了。
動作確認
/media/www/test に index.php を用意。これまた php の入門サイトによく書かれている内容です。元は PHP の公式サイトでしょうか?
<html>
<head>
<title>PHP Test</title>
</head>
<body>
<?php echo '<p>Hello World</p>'; ?>
</body>
</html>
ブラウザで http://test.example.com/index.php を表示できれば完成。
…実はここで私、散々ハマりました。最終的に分かった事。どうやら <? の辺りが全角文字か何かになっていたらしく、PHPスクリプトと認識されなかったようです…出力もそういう内容になってまして、それに気付くまで延々と時間を浪費したのでした せめて jail のコンソール画面がもうちょっと見易ければ…文字をもう一回り大きくして、黒地に白字を、黒地にシルバー文字にするとか…
教訓。学習目的でなくて単なる動作確認の場合、よくあるサンプルプログラムは素直にコピペする方が無難です