FreeBSD7.2:apache2.2とPHP5導入



はじめに

FreeBSD7.2におけるapache2.2及びPHP5関連に関するメモを残します。

インストール

www/apache22

$ cd /usr/ports/www/apache22
$ make config-recursive
$ make install clean

lang/php5

$ cd /usr/ports/lang/php5
$ make config-recursive   ← apache module, mbsringのオプションは有効にする
$ make install clean

lang/php5-extensions

$ cd /usr/ports/lang/php5-extensions
$ make config-recursive ← 使用するエクステンションを設定する
$ make install clean

設定

apache2.2側

/etc/rc.confに下記を追記

apache22_enable="YES"

httpd.confの編集

$ cd /usr/local/etc/apache22
$ vi httpd.conf
[下記を<IfModule mime_module>〜<IfModule>に追記]
AddType application/x-httpd-php .php
AddType application/x-httpd-source .phps

[補足]
CGIを有効にする場合、
# AddHandler cgi-script .cgi .plのコメントを外す
AddHandler cgi-script .cgi .pl

[<IfModule dir_module>〜</IfModule>の書き換え]
Directory-Index index.html index.php index.htm index.cgi index.pl

php5_moduleの読み込みを有効化

$ vi httpd.conf 
LoadModule php5_module libexec/apache22/libphp5.so

[補足]
libphp5が存在しない場合はインストールに失敗しているか、オプション設定ミスの可能性あり。
再インストール↓
$ cd /usr/ports/lang/php5
$ make clean
$ make deinstall
$ make rmconfig
$ make config-recursive
$ make install clean

php5側

php.iniの生成

$ cd /usr/local/etc
$ cp php.ini-dist php.ini

mbstring関連

$ cd /usr/local/etc
$ vi php.ini
mbstring.language = Japanese
mbstring.internal_encoding = EUC-JP
mbstring.http_input = auto
mbstring.http_output = SJIS
mbstring.detect_character = none
mbstring.func_overload = 0

;mbstring.encoding_translations = Off
mbstring.encoding_translations = On

動作確認

phpinfo.phpの作成

$ cd /usr/local/www/apache22/data
$ vi phpinfo.php
<?php phpinfo(); ?>

apache2.2の再起動

$ cd /usr/local/etc/rc.d/apache22 restart

確認

http://localhost:8080/phpinfo.php

その他

ファイルロケーション

apache2.2

/usr/local/include/apache22
/usr/local/etc/rc.d/apache22
/usr/local/etc/apache22
/usr/local/libexec/apache22
/usr/local/share/doc/apache22
/usr/local/share/examples/apache22
/usr/local/share/apache22
/usr/local/www/apache22

PHP5

/usr/local/include/php
/usr/local/bin/php
/usr/local/etc/php
/usr/local/lib/php