2012年11月13日火曜日

BSDの寄り道#2 apache2 + PHP5

OpenBSD+Apache2+PHP5 の場合、apache2 の httpd.conf に PHP モジュールの設定をすると、以下のメッセージが出力される場合がある。
# apachectl2 start
/usr/local/sbin/httpd2:/usr/local/lib/php-5.3/libphp5.so: undefined symbol 'ap_block_alarms'
/usr/local/sbin/httpd2:/usr/local/lib/php-5.3/libphp5.so: undefined symbol 'ap_unblock_alarms'
:
:
:
/usr/local/sbin/httpd2:/usr/local/lib/php-5.3/libphp5.so: undefined symbol 'ap_reset_timeout'
/usr/local/sbin/httpd2:/usr/local/lib/php-5.3/libphp5.so: undefined symbol 'ap_unblock_alarms'
httpd2: Syntax error on line 117 of /etc/apache2/httpd2.conf: Cannot load /usr/local/lib/php-5.3/libphp5.so into server: Cannot load specified object

これは PHP5 が Apache1.3用に Build されている為、ライブラリの参照に失敗しているようだ。
対策として、OpenBSD の Package ではなく Ports でのインストールを行う事とし、その際に FLAVOR を set する。具体的には、
# FLAVOR='ap2' ; export FLAVOR
# make
# make install
/usr/local/lib/php-5.3/ にある libphp5.so を httpd.conf に登録
LoadModule php5_module /usr/local/lib/php5-3/libphp.so
AddType application/x-httpd-php .php .phtml

# apachectl2 start
#

上記のように、FLAVOR環境変数で ap2 (apache2オプションなんだろね) という設定を有効にしてから build する。
この後、php で書かれたコンテンツが正常に表示される事を確認した。メデタシ

参照: OpenBSD FAQ 8 - 一般的な質問

1 件のコメント:

  1. 下記 URL が OpenBSD5.2 をインストールした場所。
    http://blog1.afthink.mydns.jp/
    WordPress を使ったブログの更新を開始!

    返信削除