web环境配置中,日志的配置

来源:互联网 发布:建筑工程造价算法 编辑:程序博客网 时间:2024/06/14 16:32

菜鸟一枚,每次报错的时候,一脸懵逼,百度太费时间了。。。下面整理了一下简单的日志的配置,php.ini,php-fpm,nginx的error,让错误有迹可循。版本php5.6.5

  • 首先,日志都配置在一个地方,这也是一个同事建议的,的确,这样查问题要好查,我统一配置在 /usr/local/data/log 里面,同时,要把这个目录的权限设置为可写的权限(777)

  • 各类日志分析

    • nginx
      在nginx.conf中作了以下配置:
        error_log  /usr/local/data/log/nginx-error.log;        error_log  /usr/local/data/log/nginx-error.log  notice;        error_log  /usr/local/data/log/nginx-error.log  info;        ...        include /usr/local/nginx/conf/vhost.d/*.conf;

在local.conf中配置:

  server {        listen       8353;        server_name  testlocal.com  ;        error_log  /usr/local/data/log/local.error info;        location / {            root   /home/test/local/public;            index  index.html index.htm index.php;            try_files $uri $uri/ /index.php?$query_string;        }        location ~ \.php$ {            root           /home/test/local/public;            fastcgi_pass   127.0.0.1:9000;            fastcgi_index  index.php;            fastcgi_param  SCRIPT_FILENAME       $document_root$fastcgi_script_name;            include        fastcgi_params;        }    }

nginx作为反向代理,当接收到.php为后缀的请求后,会交给php-fpm进程去处理(这个进程的端口号一般是9000)。

  1. php
    php的日志有两个地方,一个是php-fpm,一个是php.ini里配置的错误。
    php-fpm的日志可以才/etc/php-fpm.conf中配置,安装php5.6的时候没有php.ini,在源码包里可以找到php.ini-development,php.ini-production,可以复制一份到加载位置(可以执行phpinfo(),这里会有Loaded Configuration File,指定的路径)。

  2. 日志分析
    php-fpm.log的是记录php-fpm进程启动过程中的错误,比如,9000被占用,是进程级别的。
    php.ini记录的是php代码被执行过程中的错误记录。
    我们知道,当一个请求发送到服务器的时候,执行过程:ip定位到服务器,指定端口(8353),会定位到一个文件(有相应的root路径),.php的文件会交给php-fpm进程处理。试了几种错误:
    ‘file not found’:linux的多用户系统,新添加一个用户/home/test/ 的权限是644。这里的日志,会报给8353端口配置中的log(local.error),这个错误是工作中实际遇到过的,当时没有完善日志,试了半天,发现是权限不足,其实日志会记录的很清楚,permission deny。
    ‘502 Bad Gateway’ : 这里php-fpm没有开启,其实还是nginx配置里,交给php-fpm处理,php-fpm没有开启进程,错误还会在local.error里,提示,connnect() failed while connect upstream,upstream就是9000的进程。

0 0