私はApacheとPHPを使用しています。パーミッション拒否された警告を:ウェブルートディレクトリには、私は、ストリームをオープンに失敗しましたしまった/home/name/abc.php
PHPはwebrootの外部からのファイルを含む
include_one "/home/name/abc.php";
からファイルを含めたい/home/name/public_html
です。
私はウェブルート/home/name/public_html/abc.php
内部の同じファイルを移動した場合はエラーはありません。
Apacheのユーザーとグループが、私は同様の構成を持つ別のサーバーを持っている
/home/name/abc.phpファイルにアクセスする権限を持っている、それが働いています。考えられる理由を知りたいだけです。
私はLinuxのコンソールで直接PHPスクリプトを実行しようとしましたが、許可の問題はありません。私は問題がApacheの設定にあると思います。
これは問題ではありません、それはセキュリティ機能です。ファイルがwebrootディレクトリの外にある必要があるのはなぜですか? –
phpはファイルシステム内のどこにいても、REACHとREADの権利を持っているファイルを読むことができます。ファイル自体に読み取り権限があっても、そのディレクトリにアクセスする必要があります。 –
@cale_b:すべてが最初にウェブルートの内側にあるべきではないからです。定義上、Webroot内のものはすべて世界で利用可能です。 1つの設定エラーやサーバの不具合があり、そのコードに格納されているバックエンドクレデンシャルを含め、未処理のPHPコードを提供することになります。 –