2

ISPConfig3 がインストールされたサーバーがあり、複数の Web サイトと共有ファイルを持つユーザーがいます。

私は奇妙なopen_basedir問題を抱えています:

含めようとしています: /var/www/clients/client2/web4/web/core/defs.php
警告: require(): open_basedir 制限が有効です。File() は許可されたパス内にありません: (/var/www/clients/client2/web4/web:/その他のパス.....

ご覧のとおり、open_basedir の許可されたパスにある の/var/www/clients/client2/web4/web/core/defs.php下にあります。/var/www/clients/client2/web4/web

それが何であるかについて何か考えはありますか?

編集:

わかりました、defs.php実際に適切に含まれていることがわかりました。終了後、「File() は許可されたパス内にありません」というエラーが表示されます。

File()<- 中括弧が空であることに注意してください。

おそらくrequire/関数が原因で発生すると思います。include私はfastCGIところで使用しています。

誰かこれをどこかで見た?

ノート:

http://www.howtoforge.com/forums/showthread.php?t=51164

suPHP では表示されません。

eAccelerator を使用すると問題が発生することがわかりました。APCに切り替えて解決!

4

1 に答える 1

1

これは、eAccelerator キャッシュ rm -rf /var/cache/php-eaccelerator/*をフラッシュして Apache をリロードすることで修正できます。

open_basedir以前のパスが狭すぎるために拡張した場合、コードは正しく機能しますが、以前の警告が誤ってキャッシュされたままになり、再度報告されます。

他の解決策は、Web コントロール パネル /usr/share/doc/php-eaccelerator- を構成することです。.*/control.php と set へeaccelerator.allowed_admin_path。次に、ブラウザでキャッシュをクリアし、すぐにApacheをリロードします

共有ホスティングでは、より大きな問題です。(キャッシュをフラッシュしないと、含まれるファイルはそこにとどまるためです。「open_basedir」を無効にしても、警告は回避されません。また、空白などの小さな編集では再キャッシュには不十分であり、後方編集では同じ問題。)

于 2013-01-28T04:28:43.040 に答える