web-dev-qa-db-ja.com

nginx + PHP-FPM =「許可が拒否されました」nginxログのエラー13;設定ミス?

Nginx 0.7x + PHP-FPMをPHP 5.2.10を1つのRHEL5サーバーで実行していますが、バンドルされたPHP-FPMでPHP 5.3.3を2番目のサーバーで使用している場合、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 multisite aka WordPress MU)を使用するためのものです)

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

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

20
Peter Kirn

あなたが持っていることを確認する必要があります+x on allサイトのルートへのパスにあるディレクトリ-/home/home/noisepagesおよび/home/noisepages/www

57
bear

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

chmod +x /home/dev
6
Mike

私をここに連れて行った同様の問題がありました。私の解決策(選ばれた答えに基づく)は

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

今ではうまくいきます:)

2
Scott Warren

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

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

2
Rob