Server Faultでの投稿 PHP-FPMに必要なexecuteパーミッションを読みました。ただし、 Webサイトを作成するとき、どのような許可とディレクトリ構造ですか? の答えは、readおよびwritePHP-FPMへのアクセス許可。 PHPハンドラー(またはCGI全般)がどのように機能するのかよくわかりませんが、2つの主張は矛盾しているように見えます。
私が理解するように、Apache/Nginxはfoobar.php
のリクエストを取得すると、ファイルを適切なハンドラーに「渡します」。つまり、www-root
(またはApache
またはWebサーバーの実行者)が何らかのコマンドを実行するかのように、
/usr/sbin/php-fpm foobar.php
実は、いや、それはナイーブだ、と私は気付いた。 PHP-FPMは実行中のインスタンスである必要があり(パフォーマンスやキャッシュなどの場合)、おそらくPHP-FPMはtold、 "ねえ、クイック、プロセスこのファイルは私のためです!」
どちらの場合でも、なぜexecute許可が必要なのかわかりません。 Webサーバーが文字通りexecuteファイルi.e。を実行する必要はない
./foobar.php
サーバー障害の答えは単純に間違っていますか?
いいえ、php-fpm
ユーザーはPHPファイルに対するexecute
権限を必要としません。 PHPファイルはPHPプリプロセッサによって解析であり、直接実行されないであるため、読み取り権限のみが必要です。
正しい-ファイルは実行可能ファイルである必要はありません。 PHP-FPMに渡されるファイルには、644(所有者の読み取り/書き込み、グループの読み取り、グローバルの読み取り)に設定されたアクセス許可が必要です。これは、他のユーザーがファイルを上書きできないように、共有ホスティングで特に必要です。