2

サーバー上の複数の仮想ホストで共有したい PHP ライブラリがありますが、open_basedir ディレクティブが問題を引き起こしています。

サイトの管理には ISPConfig 3 を使用しています。

PHP 警告: include(): open_basedir 制限が有効です。File(/var/toaster/latest/__server/core/cms.php) は許可されたパス内にありません: ( [cut:several paths] ) in [cut] on line 5

phpinfo() 言います:

読み込まれた設定ファイル: /etc/php5/cgi/php.ini
open_basedir : [cut:several paths] (ローカル & マスター値)

/etc/php5/cgi/php.ini のコメント:

;open_basedir =

/usr/local/ispconfig/server/conf/vhost.conf.master は次のように述べています。

<tmpl_if name='security_level' op='==' value='20'>
php_admin_value open_basedir <tmpl_var name='php_open_basedir'>
</tmpl_if>

しかし /etc/apache2/sites-enabled/[cut: domain].vhost は言う:

open_basedir についてはまったく何もありません


これはすべて、未知の何かが open_basedir ディレクティブを設定していることを意味します。何、どこ?

4

2 に答える 2

6

予想よりずっと簡単で分かりやすかった。
ISPConfig の「Web ドメイン」の「オプション」パネルには、ラベルの付いたテキストボックスがありPHP open_basedirます。作成または編集する正確な構成ファイルはまだわかりませんが、機能します。

このテキストボックスについても言及する価値があります-新しいサイトを作成するときのデフォルト値は、次の場所で変更できます。

システム >> サーバー構成 >> ウェブ >> PHP 設定 >> PHP open_basedir

于 2012-01-26T14:28:57.583 に答える
3

答えてくれてありがとう!私はいたるところを見て、答えはオプション画面にありました!ありがとう、ありがとう、ありがとう!

さらに調査した後、仮想ホストの起動時にISPConfigがphp-cgiを実行します。スタータースクリプトは/var/www/php-fcgi-scripts/web?/.php-fcgi-starterにあります。ここで?クライアント内のサイト番号を表します。open_basedirは、パラメーターとしてスタートアップに渡されます。そのため、個々のphp.iniでのオーバーライドは機能しません。少なくとも、サイトがfast-cgi / su-execの場合は、このように構成されます。

于 2012-06-15T23:12:07.230 に答える