修改PHP.ini后发现没有效果。后来查看phpinfo()发现原来之前的安装出现了问题。
/usr/local/php/bin/php -i |head
phpinfo()
PHP Version => 5.3.28
System => Linux ol11.localdomain 2.6.18-238.2.AXS3 #1 SMP Tue May 17 10:04:54 CST 2011 x86_64
Build Date => Apr 9 2014 14:40:50
Configure Command => './configure' '--prefix=/usr/local/php' '--with-mysql=/usr/local/mysql' '--with-openssl' '--enable-fpm' '--enable-sockets' '--enable-sysvshm' '--with-mysqli=/usr/local/mysql/bin/mysql_config' '--enable-mbstring' '--with-freetype-dir' '--with-jpeg-dir' '--with-png-dir' '--with-zlib-dir' '--with-libxml-dir=/usr' '--enable-xml' '--with-mhash' '--with-mcrypt' '--with-config-file-path=/etc/php' '--with-config-file-scan-dir=/etc/php' '--with-bz2' '--with-curl'
Server API => Command Line Interface
Virtual Directory Support => disabled
Configuration File (php.ini) Path => /etc/php
Loaded Configuration File => (none)
最后一行表示,没有加载到任何配置文件php.ini ,然而 ls /usr/local/php/etc/php.ini 确实有这个文件。
实在没有办法,只能使用strace去追踪一下:
strace /usr/local/php/bin/php -i 2> /tmp/1.log
grep 'php.ini' /tmp/1.log 显示如下信息:
open("/usr/local/php/bin/php.ini", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/local/nginx/lib/php.ini", O_RDONLY) = -1 ENOENT (No such file or directory)
write(1, "Configuration File (php.ini) Pat"..., 33) = 33
此时,发现问题,php竟然去/usr/local/php/bin/ 下去找php.ini了。
这是为什么呢? 暂时我还无法解释,之后问题就容易解决了,直接把 php.ini 拷贝至/usr/local/php/bin/后重启nginx和php-fpm即可