Apahe22でPHP5を動かす(FreeBSD6.2編)
結局、portupgrade -a でパッケージをすべて最新バージョンに上げたのはいいが、PHP5のmbstringのフラグが有効になっているのか分からない。これは、次の内容をphpinfo.phpのようにして読ませれば確認できるので、まずはそれをすることにした。
<?php phpinfo(); ?>
これで、クライアントのFirefoxから読ませようとすると、ファイルを保存するかと聞いてくる。いや、PHP情報をブラウザに表示してほしいのだが。設定内容がどうもダメらしい。修正したのは、/usr/local/etc/apache22/にあるhttpd.confで、こんな感じ。
.... <IfModule dir_module> DirectoryIndex index.html index.php </IfModule> .... <IfModule mime_module> .... AddHandler cgi-script .cgi AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps </IfModule> ....
いろいろ調べてみたが、これというのが見つからない。AddType application/x-httpd-php .phpという記述が、AddType text/html .phpという例があったので、これを試してみた。ファイルを保存するかと聞かれなくなったが、ブラウザは真っ白で、何も表示されない。
httpd.confの最後ぐらいに、Includesにある設定ファイルも読むことが書いてあったので、そこを見てみたが、モジュールを設定したものがあるだけで参考にならない。ここで、php.confを検索してみると、なぜかphp4.confが引っかかった。これを参考に、/usr/local/etc/apache22/Includes にphp5.confというファイルを作って、次のようにしてみた。
<IfModule mod_php5.c> AddType application/x-httpd-php .php .phtml .php3 AddType application/x-httpd-php-source .phps </IfModule>
ビンゴ!! これで、これでクライアントのFirefoxで確認してみると、PHPの状況がすべて分かるようになった。ありゃ、mbstringがonになっていないじゃない。MakefileのMulti...のところを"off”から”on”に変更しても、ダメだったみたい。/usr/ports/langを眺めて、php-extentionsをmake installを実行して、mbstringオプションを選択してみたが、どうもそれも活きていない。
FreeBSDのウェブサイトをいくつか探してみたところ、次のおまじないが見つかった。Linuxでいうところの、./configureのようなものか。
# make config
これでメニューからmbstringの設定ができた。続いてmake installをやったが、途中でエラーが出てストップ。メッセージを読むと、既にインストールしてあるから、これを削除してからもう一度やってねというお言葉。それにしたがって、make deinstallでパッケージを削除してから、あらためてmake installを実行。
これで、mbstring機能が活きたPHP環境ができあがった。ちょっとした満足感が得られたけれども、次は何をすればいいだったかなぁ。あまりに長い構築作業で、目標を失いつつある。いかん、いかん、サーバを更新させるための作業だから、まだいろいろやらなくちゃいけない。