Tôi vừa gặp lỗi này một lần nữa khi tôi cập nhật máy của mình (có bản cập nhật cho PHP) chạy Ubuntu 14.04 . Tệp cấu hình phân phối /etc/php5/fpm/pool.d/www.conf
vẫn ổn và hiện tại không yêu cầu bất kỳ thay đổi nào.
Tôi tìm thấy các lỗi sau:
dmesg | grep php
[...]
[ 4996.801789] traps: php5-fpm[23231] general protection ip:6c60d1 sp:7fff3f8c68f0 error:0 in php5-fpm[400000+800000]
[ 6788.335355] traps: php5-fpm[9069] general protection ip:6c5d81 sp:7fff98dd9a00 error:0 in php5-fpm[400000+7ff000]
Điều kỳ lạ là tôi có 2 trang web đang chạy sử dụng PHP-FPM trên máy này, một trang đang chạy tốt và trang kia (cài đặt Tiny Tiny RSS) đã cho tôi một 502, trong đó cả hai đều chạy tốt trước đó .
Tôi đã so sánh cả hai tập tin cấu hình và thấy rằng nó fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
bị thiếu cho trang web bị ảnh hưởng.
Cả hai tệp cấu hình hiện chứa khối sau và đang chạy tốt trở lại:
location ~ \.php$ {
fastcgi_pass unix:/var/run/php5-fpm.sock;
include /etc/nginx/snippets/fastcgi-php.conf;
}
Cập nhật
Cần lưu ý rằng Ubuntu gửi hai tệp tham số liên quan đến fastcgi và cũng là đoạn mã cấu hình có sẵn từ Vivid và cả trong PPA phiên bản . Các giải pháp đã được cập nhật cho phù hợp.
Diff của các tệp tham số fastcgi:
$ diff -up fastcgi_params fastcgi.conf
--- fastcgi_params 2015-07-22 01:42:39.000000000 +0200
+++ fastcgi.conf 2015-07-22 01:42:39.000000000 +0200
@@ -1,4 +1,5 @@
+fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
Đoạn cấu hình trong /etc/nginx/snippets/fastcgi-php.conf
# regex to split $uri to $fastcgi_script_name and $fastcgi_path
fastcgi_split_path_info ^(.+\.php)(/.+)$;
# Check that the PHP script exists before passing it
try_files $fastcgi_script_name =404;
# Bypass the fact that try_files resets $fastcgi_path_info
# see: http://trac.nginx.org/nginx/ticket/321
set $path_info $fastcgi_path_info;
fastcgi_param PATH_INFO $path_info;
fastcgi_index index.php;
include fastcgi.conf;