アンケート一覧ページでアンケートを探す

PHPファイルのパーミッションを755にしなくても644でもPHPプログラムが実行できるのはなぜでしょうか。 こちらの環境はRaspbian+nginx+PHPです。 PHPの初心者です。

PHP | Linux系6,675閲覧xmlns="http://www.w3.org/2000/svg">100

新機能 AI回答テストを実施中! テスト対象カテゴリ:歴史・悩み相談 ※回答がつかない場合は、画面のリロードをお試しください

ベストアンサー

NEW! この回答はいかがでしたか? リアクションしてみよう

ThanksImg質問者からのお礼コメント

いろいろ調べたところ、PHPはモジュールモードとして動作していて、PHPのソースコードをApacheやnginxが読み込み、PHPモジュールとして実行するので、実行権限がなくても読み込み権限のみ与えれば実行することがわかりました。 ただし、PHPをCGIとして実行させている場合は、実行権限を与えないと実行できないようです。ありがとうございました。

お礼日時:2015/8/28 1:19

その他の回答(2件)

そのPHPファイルそのものを実行するわけではないからです。 644 でも php aaa.php は動きます。 これは、実行しているのは、phpコマンドで、aaa.phpはphpコマンドがロードしているからです。 こんどは、755にし、 ./aaa.php とすると、このファイル自体を実行するのでうごきます。 (ただし、これをしたいときは、1行目に #!/usr/bin/php とスクリプトインタプリタを指定する必要があります。) 実行時に、実行可能かどうか判断されますが、インタプリタの指定があるので、これを参照して、該当するphpコマンドに、自身の内容を渡すため動きます。 ロードで済む場合は、読み取り属性があれば良いのです。

>こちらの環境はRaspbian+nginx+PHPです。 この環境だとFastCGIだと思われます(phpinfo()で確認してください)。 phpスクリプトファイルはphp-cgiに引き渡されるだけなので直接実行されるわけではありません(起動されるのはphp-cgi)。実行権限は不要です。