Plesk で php 関連の作業していると、必ずといっていいほど毎回 open_basedir とか safe_mode のエラーではまり、その度に解決策を探しているので、とりあえずメモっておく。
今回の Plesk 環境は以下の通り。
Fedora Core 6
PSA-3.2.0
Plesk はドメインを追加すると、バーチャルドメイン毎にディレクトリを作成して、その中に htdocs やら conf やら log やらを作成することになる。
で、元になる設定ファイルはドメイン名が enjoitech.jp だとすると。
/var/www/vhosts/enjoitech.jp/conf/httpd.include
になる。
このファイルを開くと書いてあるけど、このファイルは手書きで書き換えたりしてはいけない。 Plesk がきっとバグる。
なので、このファイルが参照できる決められた場所とファイル名で追加設定用のファイルを作成する。それがここ。
/var/www/vhosts/enjoitech.jp/conf/vhost.conf
ここに設定を書いたら、後はちょちょいとコマンドを打って、設定を reload すれば良い。
とりあえず今回は safe_mode を off にして、 open_basedir を無効にする設定。
# vi /var/www/vhosts/enjoitech.jp/conf/vhost.conf
<Directory /var/www/vhosts/enjoitech.jp/httpdocs> <IfModule sapi_apache2.c> php_admin_flag engine on php_admin_flag safe_mode off php_admin_value open_basedir none </IfModule> <IfModule mod_php5.c> php_admin_flag engine on php_admin_flag safe_mode off php_admin_value open_basedir none </IfModule> </Directory>
次に作成したファイルを Plesk に追加するため、コマンドを実行する。
# /usr/local/psa/admin/bin/websrvmng -v -a
するとこのファイルを include する行が、 /var/www/vhosts/enjoitech.jp/conf/httpd.include に追加される。なら最初から編集させろと思うんだが、まあいいや。
そして最後に apache をリロードして終了。
# /etc/init.d/httpd reload