nginx+fpm记录php的error log
前言将架构从apache+mod_php迁移到nginx+fpm上,会发现如果php脚本出错,nginx的eror_log里不会有记录,只在access_log里记录了500状态码。出现的原因:nginx将php的脚本执行通过fastcgi转到fpm上,所以出错的信息当然不会记录在nginx的error_log里了,但是对于测试环境下程序员的调试这是个悲剧啊,所以我们需要配置fpm的错误日志
nginx+fastcgi+fpm配置见: http://blog.csdn.net/zinss26914/article/details/8175385
php5-fpm.confphp5-fpm的错误日志是在php5-fpm.conf全局配置中进行设置,查看一下php5-fpm.conf日志:
#!/bin/bash - #1.fpm日志存放路径php5_fpm_path="/var/log/php5-fpm"path_array=($php5_fpm_path)#2.日志标识前缀数组icontact_fpm_sign="test"test_fpm_sign="php5-fpm"prefix_array=($icontact_fpm_sign $test_fpm_sign)#3.日志success or slow 标识后缀数组bool_array=("access" "slow" "error")#4.nginx日志切割备份后缀postfix=`date +%Y%m%d`".log"#5.备份当前的日志文件,重命名改为日期后缀for path in ${path_array[*]}dofor prefix in ${prefix_array[*]}dofor bool in ${bool_array[*]}dofile=$path/$prefix.$bool.logbackfile=$path/$prefix.$bool.$postfixif [ -e $file ]thenmv $file $backfilefidonedonedone#6.查找nginx进程号,让其产生新的日志文件fpm_pid=`ps -aux |grep -E 'php-fpm: master process'|grep -v 'grep'|awk '{print $2}'`#USR1:Reopen log files,刷新nginx日志文件kill -USR1 $fpm_pid