Plesk で open_basedir とか safe_mode の回避 - Enjoi Blog

Plesk で open_basedir と safe_mode の設定が効いていて、思うようにPHPのプログラムを動かすことができなかったり、Pear や ZendFramework や Smarty をいちいちopen_basedirの中に入れなければ動かせない不便がありましたが、こちらのサイトの方法で、インクルードパスを通すことができるようになりました。

http://blog.enjoitech.jp/で解決。


以下は、http://blog.enjoitech.jp/article/141のそのままコピーさせていただきました。

ここから--

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

---ここまで、
実際にPLESKを利用しているサーバーで私もこの通りに行ってうまくいきました。

httpd.includeを書きなおしても、実際には動作するのですが、Plesk で設定をした時にそれが、このファイルに影響がある場合には、元の状態に書き直されてしまうので、
httpd.includeに書き込むのは、Pleskを運用する場合には、ほとんど無意味といってよいようです。

クララオンラインでもFAQにまた違った方法で解決方法がありましたが、こちらは試していません。