मैंने अभी एक nginx + php-fpm सर्वर स्थापित किया है। सब कुछ ठीक लगता है सिवाय इसके कि PHP-FPM अपने लॉग में कभी त्रुटि नहीं लिखता है।
fpm.conf
[default]
listen = /var/run/php-fpm/default.sock
listen.allowed_clients = 127.0.0.1
listen.owner = webusr
listen.group = webusr
listen.mode = 0666
user = webusr
group = webusr
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.status_path = /php/fpm/status
ping.path = /php/fpm/ping
request_terminate_timeout = 30s
request_slowlog_timeout = 10s
slowlog = /var/log/php-fpm/default/slow.log
chroot = /var/www/sites/webusr
catch_workers_output = yes
env[HOSTNAME] = mapsvr.mapking.com
php_flag[display_errors] = on
php_admin_value[error_log] = /var/log/php-fpm/default/error.log
php_admin_flag[log_errors] = on
nginx.conf
server
{
listen 80 default_server;
server_name _;
charset utf-8;
access_log /var/log/nginx/access.log rest;
include conf.d/drops.conf.inc;
location /
{
root /var/www/sites/webusr/htdocs;
index index.html index.htm index.php;
}
# pass the PHP scripts to FastCGI server listening on socket
#
location ~ \.php$
{
root /var/www/sites/webusr/htdocs;
include /etc/nginx/fastcgi_params;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /htdocs/$fastcgi_script_name;
if (-f $request_filename)
{
fastcgi_pass unix:/var/run/php-fpm/default.sock;
}
}
location = /php/fpm/status
{
include /etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass unix:/var/run/php-fpm/default.sock;
}
location = /php/fpm/ping
{
include /etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass unix:/var/run/php-fpm/default.sock;
}
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html
{
root /usr/share/nginx/html;
}
}
मैंने एक त्रुटिपूर्ण php स्क्रिप्ट बनाई है और चला रहा हूँ, और वेब ब्राउज़र पर त्रुटि आउटपुट देखता हूँ। इसके अलावा nginx त्रुटि लॉग उसी संदेश के साथ fpm से stderr आउटपुट बताता है। मैंने जाँच की है कि उपयोगकर्ता ने लिखा है (मैंने 777 की भी कोशिश की है) नियुक्त लॉग फ़ोल्डर में अनुमति। यहां तक कि नियत त्रुटि .log फ़ाइल php-fpm द्वारा सफलतापूर्वक बनाई गई है। हालाँकि, लॉग फ़ाइल हमेशा खाली होती है, इससे कोई फर्क नहीं पड़ता कि php स्क्रिप्ट से कोई अपमानजनक त्रुटि हुई है।
क्या चल रहा है?
[काफी समय बाद कारण मिला]
इसकी अनुमति थी। साइटों के उपयोगकर्ताओं के लिए स्वामी को बदलने से समस्या हल हो गई।