我在我的Ubuntu 14.04机器上使用php-fpm 5.5.9和nginx 1.4.6。我已经使用apt-get包管理器安装了它们。我无法获得index.php脚本在错误日志和浏览器中遇到的错误的堆栈跟踪。我从stackoverflow和其他文章中搜索并实现了几个解决方案,但没有一个适合我。下面是我的nginx配置文件和php-fpm配置文件。如果我犯了什么愚蠢的错误,请帮助我。
Nginx配置:
location ~ '.php$ {
# With php5-fpm:
#try_files $uri =404;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors on;
fastcgi_read_timeout 600;
fastcgi_send_timeout 600;
proxy_connect_timeout 600;
proxy_send_timeout 600s;
proxy_read_timeout 600s;
fastcgi_pass 127.0.0.1:7777;
fastcgi_index index.php;
}
PHP-FPM配置:
error_log = /tmp/php5-fpm.log
PHP-FPM池配置:
catch_workers_output = yes
slowlog = /var/log/php-fpm/$pool.log.slow
listen = 127.0.0.1:7777
php_flag[display_errors] = On
php_admin_value[error_log] = /tmp/fpm-php.www.log
php_admin_flag[log_errors] = On
不使用PHP xdebug模块,实在找不到合理的解决方案。
sudo apt-get install php5-xdebug
它应该安装模块配置,但之后可能需要重新启动php-fpm。
sudo service php5-fpm restart
安装后,我终于可以从php5-fpm获得堆栈跟踪。
在你的配置中,它说error_log
文件在/etc/...
中,但是你可能只是在错误的地方寻找。
你有没有检查默认的错误日志位置?通常应该是:/var/log/nginx/*
,这里有一个nginx_error.log
文件。可能还有其他日志文件
还要注意PHP-FPM和nginx配置的语法不同。检查是否有这样的错误。它可能被错误地解析,从而导致您的错误。
检查错误日志的文件权限。nginx的运行用户可以在那里写吗?