nginx + PHP-FPM = nginxログの「permission denied」エラー13。設定ミス?


20

1つのRHEL5サーバーでPHP 5.2.10の下でngi​​nx 0.7x + PHP-FPMを実行していますが、2台目のサーバー上のPHP 5.3.3のバンドルされたPHP-FPMでセットアップを複製しようとしています。 GETが発生するたびに許可エラーが発生する問題。

FPMが起動し、fastcgiが9000でリッスンしていることを確認しましたが、GETを実行するたびに、nginxログに次のエラーが表示されます。

2010/08/12 23:38:53 [crit] 5019#0: *5 stat() "/home/noisepages/www/" failed (13: Permission denied), client: 24.215.173.141, server: dev.noisepages.com, request: "GET / HTTP/1.1", host: "dev.noisepages.com"

Barebones nginx.conf.defaultは、少なくとも動作します。これが私のnginx.confです

server {
        listen       80;
        server_name  dev.noisepages.com;
        root   /home/noisepages/www;
        index  index.html index.htm index.php;

        access_log  logs/dev.access.log;
 error_log logs/dev.error.log;

        location / {

 if (-f $request_filename) {
  expires 30d;
  break;
  }

 # this sends all non-existing file or directory requests to index.php
 rewrite ^.*/files/(.*) /wp-includes/ms-files.php?file=$1;
 if (!-e $request_filename) {
     rewrite ^.+?(/wp-.*) $1 last;
  rewrite ^.+?(/.*\.php)$ $1 last;
  rewrite ^ /index.php last;
  }
        }

        location ~ \.php$ {
            include        fastcgi_params;
            fastcgi_pass   unix:/dev/shm/php-fastcgi.sock;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME    /home/dev/www/$fastcgi_script_name;
        }
    }

(追加の書き換えディレクティブは、WordPressマルチサイト、別名WordPress MUを使用するためのものです)

また、ユーザーwww-dataがnginx.confだけでなく、ユーザーとグループの値のphp-fpm.confでも宣言されていることを確認しました。

エラー13メッセージの原因を理解していないのでしょうか?奇妙なことに、私は最初のサーバーでdev.noisepages.comを他の2、3の仮想ホストと並行して設定しようとしましたが、それぞれが正常に機能しており、同じエラーが発生しました。

回答:


57

あなたが持っていることを確認する必要がある+x、すべてのサイトのルートへのパス内のディレクトリの-そう/home/home/noisepages/home/noisepages/www


2
はい、実際にはwwwには正しいアクセス権がありましたが、パス全体はありませんでした!ありがとう!理にかなっています-私の側の愚かな間違い。
ピーターカーン

1
私があなたに別の10の賛成票を与えることができれば私はそうするでしょう。
ティム

あなたは本当にクールです!私はあなたの答えを見つけるためにグーグルで2時間過ごします!ありがとうございました!
Serhiiポーランド語

本当にありがとう!実稼働サーバーをいじっていて、これが起こったときは冷や汗をかいていた...!
lephleg

5

/ home / devに適切な権限があることを確認してください

chmod +x /home/dev

2

php-fpm、特にphpセッションのパーミッションにも問題がありました。デフォルトでは「nobody」ユーザーに設定されているため、php-fpmがプロセスを実行するために使用するユーザーを変更する必要がありました。

こちらのチュートリアル:http : //www.duchnik.com/tutorials/setting-up-php-with-nginx/


3
これは理論的には質問に答える可能性がありますが、答えの重要な部分をここに含め、参照用のリンクを提供することが望ましいでしょう
スコットパック

3
リンクが死んでいる...
クリストフ・ビューラー

1

私はここに私を導いた同様の問題がありました。私の解決策(選ばれた答えに基づいて)はすることでした

chown -R root:www-data /home/noisepages/www
chmod g+w -R /home/noisepages/www

今ではうまく動作します:)


しかし、Chrootユーザーを使用する場合、どうすればそれができますか?chrootされたユーザーを使用する場合、/ home / user / wwwフォルダーはユーザーが所有する必要があり、機能しません。
ビンセントLITUR 14

申し訳ありませんが、わかりません:(
スコットウォーレン14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.