nginx + PHP-FPM = quyền bị từ chối lỗi Lỗi 13 trong nhật ký nginx; Lỗi cấu hình?


20

Tôi đã có nginx 0,7x + PHP-FPM chạy trong PHP 5.2.10 trên một máy chủ RHEL5, nhưng đang cố gắng sao chép thiết lập đó dưới PHP-FPM được đóng gói trong PHP 5.3.3 trên máy chủ thứ hai, tôi đang có một số rắc rối với lỗi cấp phép mỗi khi có GET.

FPM được bắt đầu và xác nhận rằng fastcgi đang nghe trên 9000, nhưng mỗi lần tôi thực hiện GET, tôi thấy lỗi này trong nhật ký 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 hoạt động, ít nhất. Đây là nginx.conf của tôi

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;
        }
    }

(Các chỉ thị viết lại thêm dành cho việc sử dụng WordPress multisite hay WordPress MU)

Tôi cũng đã xác minh rằng dữ liệu www của người dùng được khai báo không chỉ bằng nginx.conf mà còn trong php-fpm.conf cho các giá trị của người dùng và nhóm.

Có lẽ tôi không hiểu nguyên nhân gây ra thông báo lỗi 13? Thật kỳ lạ, tôi đã cố gắng thiết lập dev.noisepages.com trên máy chủ đầu tiên song song với một vài máy chủ ảo khác - mỗi máy chủ đều hoạt động tốt - và gặp cùng một lỗi.

Câu trả lời:


57

Bạn cần đảm bảo bạn có +xtrên tất cả các thư mục trong đường dẫn dẫn đến thư mục gốc của trang web - vì vậy /home, /home/noisepages/home/noisepages/www


2
Vâng, trên thực tế www đã có quyền chính xác nhưng không phải là toàn bộ đường dẫn! Cảm ơn! Làm cho ý nghĩa - sai lầm ngớ ngẩn về phía tôi.
Peter Kirn

1
Nếu tôi có thể cung cấp cho bạn thêm 10 upvote tôi sẽ.
Tim

Bạn thật sự rất cool! Tôi dành 2 giờ trong google để tìm câu trả lời của bạn! Cảm ơn bạn!
Serhii Ba Lan

Cám ơn rất nhiều! Tôi đã làm rối tung máy chủ sản xuất và tôi ướt đẫm mồ hôi lạnh khi điều này xảy ra ...!
lephleg

5

đảm bảo / home / dev có quyền chính xác

chmod +x /home/dev

2

Tôi cũng gặp vấn đề với quyền trong php-fpm, đặc biệt là với các phiên php. Hóa ra tôi chỉ phải sửa đổi người dùng mà php-fpm sử dụng để chạy các quy trình, vì theo mặc định, nó được đặt thành người dùng "không ai".

hướng dẫn về nó ở đây: http://www.duchnik.com/tutorials/setting-up-php-with-nginx/


3
Trong khi về mặt lý thuyết có thể trả lời câu hỏi, tốt hơn là nên bao gồm các phần thiết yếu của câu trả lời ở đây và cung cấp liên kết để tham khảo.
Scott Pack

3
Liên kết đã chết ..
Christoph Bühler

1

Tôi đã có một vấn đề simlar mà có tôi ở đây. Giải pháp của tôi (dựa trên câu trả lời được chọn) đã làm một

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

Bây giờ nó hoạt động tốt :)


Nhưng làm thế nào bạn có thể làm điều đó nếu bạn sử dụng người dùng Chroot? Khi sử dụng người dùng chroot, thư mục / home / user / www phải thuộc quyền sở hữu của người dùng và nó không hoạt động.
Vincent LITUR

Xin lỗi, tôi không biết :(
Scott Warren
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.