nginx php-fpm 输出php错误日志

在使用nginx和php-fpm架构提供web服务的过程中,经常会遇到php代码出现错误的情况,如果没有正确地输出错误日志,那么在调试和优化过程中就会变得非常困难。本文将介绍如何配置nginx和php-fpm,使其能够正确地输出php错误日志,以便更快地排查问题。

1. 配置php-fpm

在php-fpm的配置中,需要将错误日志输出到一个文件中。我们可以在php-fpm.conf中添加以下配置:

error_log = /var/log/php-fpm/php-fpm.log

; 将日志输出到/var/log/php-fpm/php-fpm.log文件中

log_errors = on

; 开启错误日志记录

这里我们将错误日志输出到了/var/log/php-fpm/php-fpm.log文件中,这个文件需要根据实际情况自行创建。同时,我们还需要开启错误日志记录。

2. 配置nginx

在nginx的配置中,需要设置fastcgi_param参数中的SCRIPT_FILENAME和SCRIPT_NAME参数,以便让php-fpm在接收到请求的时候,知道要执行哪个php文件。在这里,我们还需要设置fastcgi_param参数中的ERROR_LOG参数,以便nginx能够正确地输出php错误日志。

location ~ \.php$ {

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

fastcgi_param SCRIPT_NAME $fastcgi_script_name;

fastcgi_param ERROR_LOG /var/log/nginx/php-error.log;

include fastcgi_params;

}

3. 创建日志文件

在以上配置完毕后,我们需要创建对应的日志文件。

sudo touch /var/log/php-fpm/php-fpm.log

sudo touch /var/log/nginx/php-error.log

sudo chown www-data:www-data /var/log/php-fpm/php-fpm.log /var/log/nginx/php-error.log

4. 测试

在以上步骤完成后,我们可以进行测试,看看配置是否生效。我们可以先故意将代码中的一个变量名拼写错误,然后访问相应的网页。这时,php-fpm就应该会输出错误日志了。

假设我们有一个test.php的文件,文件中包含以下代码:


$value = 'Hello World!';

echo $vale;

?>

假设我们的web根目录为/var/www/html,那么我们访问http://127.0.0.1/test.php,应该会看到一些错乱的代码,同时,php-fpm应该输出了错误日志。

5. 总结

通过以上步骤,我们成功地配置了nginx和php-fpm,使其能够正确地输出php错误日志。这将在调试和优化过程中非常有用,并能够节省大量时间。

后端开发标签