Plesk利用環境 で open_basedir(Apacheの設定) を変更する場合

—–
PHPでドキュメントルート以外にあるファイルやディレクトリを読みに行くと
[code]Warning: ~ open_basedir restriction in effect. ~[/code]
といったエラーになる場合がある。

—–
Pleskではバーチャルホストごとに
[code]/home/httpd/vhosts/example.com/conf/httpd.include[/code]
といった設定ファイルが作成されるが、
この中にopen_basedirの設定があり、かつ以下のようになっている。
[code]php_admin_value open_basedir “/home/httpd/vhosts/example.com/httpdocs:/tmp”[/code]
結果、前段のエラーとなる。

—–
open_basedirの設定部分を書き換えればいいのだが、
httpd.includeの冒頭に記載があるとおり、
Pleskの都合上?は直接編集してはいけないことになっている。
で、さらに読むとカスタマイズしたいなら
[code]/home/httpd/vhosts/example.com/conf/vhost.conf[/code]
でやれと。

—–
具体的には以下の手順で作成。反映させる

(1)ファイル作成
[code]vi /home/httpd/vhosts/example.com/conf/vhost.conf[/code]
(sslの場合 vhost_ssl.conf)

(2)内容記述(open_basedirの設定を上書き)
[code]
<Directory /home/httpd/vhosts/example.com/httpsdocs>
php_admin_flag engine on
php_admin_value open_basedir none
</Directory>[/code]

(3)設定反映
以下のコマンドを実行

[code]/usr/local/psa/admin/bin/websrvmng -v -a[/code]
/home/httpd/vhosts/example.com/conf/vhost.conf (vhost_ssl.conf)
が存在する場合、
/home/httpd/vhosts/example.com/conf/httpd.include
内にInclude文が記述される)

(4)設定確認
[code]/etc/init.d/httpd configtest[/code]

(5)apache再起動
[code]/etc/rc.d/init.d/httpd restart[/code]