LoginSignup
1
1

More than 5 years have passed since last update.

FreeNAS 9.3 jail に PHP をインストール

Last updated at Posted at 2015-12-29

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 の起動も不要ってんだから楽なもんです。

/usr/local/etc/h2o/h2o.conf
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 の公式サイトでしょうか?

/media/www/test/index.php
<html>
<head>
  <title>PHP Test</title>
</head>
<body>
 <?php echo '<p>Hello World</p>'; ?>
</body>
</html>

ブラウザで http://test.example.com/index.php を表示できれば完成。

…実はここで私、散々ハマりました。最終的に分かった事。どうやら <? の辺りが全角文字か何かになっていたらしく、PHPスクリプトと認識されなかったようです…出力もそういう内容になってまして、それに気付くまで延々と時間を浪費したのでした:sweat: せめて jail のコンソール画面がもうちょっと見易ければ…文字をもう一回り大きくして、黒地に白字を、黒地にシルバー文字にするとか…

教訓。学習目的でなくて単なる動作確認の場合、よくあるサンプルプログラムは素直にコピペする方が無難です:sweat_smile:

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1