ライン

ポイント:apache22との連動のために

ライン

 はじめに

lang/php5

 phpを必要とするパッケージを多く利用しています。
更にいろいろなサーバに導入する都度多くの設定が思い出せなくなっているので、本ページにメモを集中させていこうということでページを作成することにしました。

 portsを利用

導入

 まずは、導入を行います。

# cd /usr/ports/lang/php5
# make config

現行のportsでは、上記のような指定ができるようになっていました。
以下のように決め、導入を行うことにします。

# make clean install

後は何もしないで待つだけです。

 終わりましたら先に進めます。
まず、Apache 2.2の/usr/local/etc/apache22/httpd.conf を確認し、必要なものが加わっているかを確認します。

    LoadModule php5_module        libexec/apache22/libphp5.so

さらに追加したいため、以下のように加えます。<IfModule mime_module> 下の辺りがよいでしょう。

    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps

/usr/local/etc/php.conf もできあがっているはずです。
php.iniは必要な時に、/usr/local/etc/php.ini-dist をコピーした上で修正して利用するとよいでしょう。
php.ini-recommended というのも用意されています。

Apache22の設定の追加部分

 Server error! で Error 500を発生させてしまったら、

DDD MMM DD HH:MM:SS YYYY
Apache/9.9.99 (FreeBSD) mod_ssl/9.9.99 OpenSSL/9.9.9x DAV/2 PHP/9.9.9 with Suhosin-Patch

のようにブラウザに、サーバの詳細を表示してしまいました。
 これは、ターゲットの中身をさらけ出しすぎという状態なので、少しシンプルにしないとダメでしょう。

そこで、Aapche側の設定を対処することにします。

ExtendedStatus On

をextra にある httpd-info.conf に記述。
次に、

ServerTokens ProductOnly
ServerSignature Off

をextra にある httpd-default.conf に記述。

 また、この設定ファイルを参照するように httpd.conf に各設定ファイルが反映されるよう修正を入れることも忘れずに。

 これで、エラーの時の表示は Apache としかいわなくなったと思います。めでたし。

/usr/local/libexec/apache22/mod_auth_digest.so は存在し、httpd.confに記述しているのに、

Invalid command 'AuthDigestFile', perhaps misspelled or defined by a module not included in the server configuration

というエラーが発生しています。過去に動作させていた、Apache20ではこの事象は発生していませんでした。

 ウェブ検索にて、探してみます。
おまかせブログ2.0 さんのDigest認証でエラー の記述に答えがありました。
AuthDigestFile が AuthUserFile に変わったとのこと。misspelledというエラーメッセージは不親切。
ログにワーニングぐらい表示させる気配りが欲しいところです。

何にせよ、これでこの部分は解決しました。php5とは関連することではありませんでしたが念のためにメモ。

【改訂履歴】作成:2009/01/10
2009/06/06 … Namazu検索の窓を追加
【参考リンク】
日本 PHP ユーザ会 (Japan PHP Users Group) … PHP ユーザ会のページ

Copyright © 1996,1997-2006,2007- by F.Kimura,