php日志监控和排查

开启PHP错误日志级别

抛出绝大多数错误异常

//临时修改配置
ini_set("display_errors", On);
ini_set('log_errors','on');    //开启日志写入功能
ini_set('error_log','myerror.log'); //日志的存放位置
ini_set("error_reporting", E_ALL);

#获取运行环境
get_cfg_var("env.name");

命令行:PHP错误日志

//查找和打开php配置文件
vim /usr/local/php-v/etc/php.ini 或者 /etc/php.ini

//设置配置项
display_errors = On
error_log = "/var/log/php74/error.log"
  
//日志文件权限
chmod a+w /var/log/php74/error.log

php-fpm模式:错误日志

配置文件
vim /etc/php-fpm.conf 或者自定义安装目录
vim /etc/php-fpm.d/www.conf

日志目录
error_log = /var/log/php-fpm/error.log

nginx日志

nginx日志是基于nginx.conf域名或全局设置的日志路径

#先找到nginx.conf和vhost目录: whereis nginx

#再找到访问日志和错误日志路径
/data/logs/nginx/host/access.log
/data/logs/nginx/host/error.log

php程序对错误异常捕捉后自定义的日志文件

#设置兜底错误异常捕捉器
set_error_handler([$this, 'handleError']);
set_exception_handler([$this, 'handleException']);
register_shutdown_function([$this, 'handleShutdown']); //终极核武器,放在最前面(按顺序执行越靠前优先级越高),可以捕捉到语法错误

function handleShutdown(){
    if (! is_null($error = error_get_last()) && in_array($error['type'], [E_COMPILE_ERROR, E_CORE_ERROR, E_ERROR, E_PARSE])) {
        var_dump($error);
    }
}

//突破PHP运行时限
set_time_limit(0);

//无视请求断开
ignore_user_abort(true);

完全不抛异常的情况(经验积累)

1,php客户端连接断开

写入文件失败处理

1,文件所用户和组:以php-fpm进程用户来设置文件和目录的所属

2,修改文件的权限:755等等

3,文件的所属为root的时候,就算修改了777权限一段时间又会莫名其妙还原为原来的权限。只有修改文件所属为非root才能解决

ps -ef|grep php-fpm
chown user:user path[/*]
chmod 777 path[/*]

 

 

 

 

posted @ 2021-09-11 22:40  小匡程序员  阅读(256)  评论(0编辑  收藏  举报