LEN

phpinfo 加载不完整问题
诶 这个问题 记得在第一家公司的时候遇到过,当时的现象就是,phpinfo 加载到session 就不加载了 ,前...
扫描右侧二维码阅读全文
18
2017/01

phpinfo 加载不完整问题

诶 这个问题 记得在第一家公司的时候遇到过,当时的现象就是,phpinfo 加载到session 就不加载了 ,前面加载了mysql 等拓展

实际使用其他功能都是ok的,但是登陆就是存在问题, 经测试 session 获取失败,无法存储 ;

打印 phpinfo 发现仅加载一半,剩余部分加载失败;

报告给金龙, 最后告诉我应该是php-fpm 启动不成功导致;

我们线上服务器 使用 nginx - php-fpm 在服务器上 php -m 显示拓展加载 都是ok 的 . 最后也就没有深究 ,当时就是个菜鸟(现在也是)

今天 又遇到类似问题 phpinfo 加载 一小部分就停止了! 所以定位 和 去年的 错误是相同的;

alt

试着重启了 php-fpm 重新加载

#  pkill -15 php-fpm 

#  php-fpm

加载还是没改变 ..... 郁闷 我现在 就开始瞎猜 以为是php编译失败导致的. 我就重新编译了一个php


#  wget http://mirrors.sohu.com/php/php-5.6.2.tar.gz
#  tar zxf php-5.6.2.tar.gz 
#  yum install gcc gcc-c++ libxml2 libxml2-devel libjpeg-devel libpng-devel freetype-devel openssl-devel libcurl-devel libmcrypt-devel
#  cd php-5.6.2
#  ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm --enable-pcntl --enable-mysqlnd --enable-opcache --enable-sockets --enable-sysvmsg --enable-sysvsem  --enable-sysvshm --enable-shmop --enable-zip --enable-ftp --enable-soap --enable-xml --enable-mbstring --disable-rpath --disable-debug --disable-fileinfo --with-mysql --with-mysqli --with-pdo-mysql --with-pcre-regex --with-iconv --with-zlib --with-mcrypt --with-gd --with-openssl --with-mhash --with-xmlrpc --with-curl --with-imap-ssl

#  make && make install

重新编译php 将原有 php-fpm kill 掉 配置新的php-fpm.conf 和 php.ini


#  cp php.ini-development /usr/local/php/etc/

#  cp php-fpm.conf /usr/local/php/etc/

启动 编译后的 php-fpm
然并软 没有任何用 效果还是一样

瞬间就不会玩了 脑袋炸了 百度查询关键次 nginx - php-fpm 页面加载不完整

网上说 出的原因有很多 有的说 短标签 问题 .... 反正就是没有对的 ..............

突然想到一个问题 , nginx 加载问题 的话 有 error.log 日志 为啥我不看呢....
太傻了

找到 error.log 日志

#  tail -f error.log 

2017/01/18 12:03:09 [error] 32202#0: *262 FastCGI sent in stderr: "PHP message: PHP Warning:  phpinfo(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/jzb/alpha1125/test.php on line 2" while reading response header from upstream, client: 10.159.95.251, server: test.com, request: "GET /test.php HTTP/1.0", upstream: "fastcgi://127.0.0.1:9000", host: "test.com", referrer: "http://test.com/test.php"


2017/01/18 12:03:09 [crit] 32202#0: *262 open() "/usr/localinx/fastcgi_temp/5/04/0000000045" failed (13: Permission denied) while reading upstream, client: 10.159.95.251, server: test.com, request: "GET /test.php HTTP/1.0", upstream: "fastcgi://127.0.0.1:9000", host: "test.com", referrer: "http://test.com/test.php"

在访问 phpinfo 页面时 error.log 输出上述日志 记录 第一个错误是 时区问题, php 默认时区需要手动设置下 php.ini

copy 错误百度一下 解决方案 就是 php.ini 中

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = PRC

修改完重启 php-fpm 查看error.log 日志 ok 第一个错误不报了,现在需要

*262 open() "/usr/localinx/fastcgi_temp/5/04/0000000045" failed (13: Permission denied) while reading ... 问题

这个问题 我就不查了 一看就知道权限有问题 手动查看

[root@localhost nginx]# ll -a
total 44
drwxr-xr-x  11 jzb_service root   4096 Jan 17 18:57 .
drwxr-xr-x. 18 jzb_service root   4096 Jan 18 11:02 ..
drwx------   2 jzbzip      root   4096 Nov  8 09:34 client_body_temp
drwxr-xr-x   2 jzb_service root   4096 Jan 18 11:56 conf
drwx------  12 jzbzip      root   4096 Aug 23 17:36 fastcgi_temp
drwxr-xr-x   2 jzb_service root   4096 Dec 21 14:58 html
drwxr-xr-x   2 jzbzip      jzbzip 4096 Jan 18 11:37 logs
drwx------  12 jzbzip      root   4096 Aug 25 18:09 proxy_temp
drwxr-xr-x   2 jzb_service root   4096 Aug 22 20:31 sbin
drwx------   2 jzbzip      root   4096 Aug 22 20:33 scgi_temp
drwx------   2 jzbzip      root   4096 Aug 22 20:33 uwsgi_temp


[root@localhost nginx]# chown -R jzbzip:jzbzip *
[root@localhost nginx]# ll
total 36
drwx------  2 jzbzip jzbzip 4096 Nov  8 09:34 client_body_temp
drwxr-xr-x  2 jzbzip jzbzip 4096 Jan 18 11:56 conf
drwx------ 12 jzbzip jzbzip 4096 Aug 23 17:36 fastcgi_temp
drwxr-xr-x  2 jzbzip jzbzip 4096 Dec 21 14:58 html
drwxr-xr-x  2 jzbzip jzbzip 4096 Jan 18 11:37 logs
drwx------ 12 jzbzip jzbzip 4096 Aug 25 18:09 proxy_temp
drwxr-xr-x  2 jzbzip jzbzip 4096 Aug 22 20:31 sbin
drwx------  2 jzbzip jzbzip 4096 Aug 22 20:33 scgi_temp
drwx------  2 jzbzip jzbzip 4096 Aug 22 20:33 uwsgi_temp

用户是ok 但用户组有问题 干脆就全部都 重新授权用户, 用户组

现在查看 error.log ok 不报错了

查看 phpinfo 页面 加载成功 . 沃日 就因为这点原因就浪费了我一上午时间 ,真是够了,

总结一下 :

    1. 首先,错误认为是 php-fpm 启动不成功导致 错误 重启 php-fpm                失败
    2. 认为 php 编译不完整 重新编译php进行测试 错误依旧                        失败
    3. 查看error.log 日志 根据错误提示, 依次解决问题                           成功

上面是我遇到bug 后 解决问题的处理逻辑 ;

感慨一下: 面试总有人问遇到bug 如何解决问题 我都会说做日志监控 ,复现bug

但是 说到缺做不.........

如果能一上来就查看 错误日志 问题实际没有那么难 , 前两项 全凭 自己主观臆断,根本没有根据;

这不应该是解决bug 的方式, 吃一堑长一智 以后 处理bug 不能不过脑子乱搞 蒙对还是需要靠运气的!

最后修改:2017 年 02 月 08 日 03 : 00 PM
如果觉得我的文章对你有用,请随意赞赏

发表评论