用Lnmp平台部署一个服务,部署完之后,报如下错误

140158109.jpg


看错误,是php 时区问题。

所以在服务的根目录下,创建一个phpinfo.php的测试页面

<?

phpinfo();

?>

访问如下

140357146.jpg

确实是timezone的问题

参照网上的方法,来修改/etc/php.ini中的

date.timezone = PRC

并重启php-fpm之后,

再访问,phpinfo.php还是date报错

并看到

130132914.jpg

没有加载php.ini,所以刚才的修改没有生效,应该放在/usr/local/php/etc下


# php -i | grep Configuration

Configuration File (php.ini) Path => /usr/local/php/etc/

Loaded Configuration File => (none)

Configuration


1)把/etc/php.ini 移动到/usr/local/php/etc下,修改php的配置文件,重启php-fpm

然后

pkill -9 php-fpm

/usr/local/php/sbin/php-fpm

再刷新phpinfo.php 。。。。。页面不见了

再测试游戏页面。。。。。。。页面正常了

诡异

此时查看php配置文件的路径

php -i | grep Configuration

Configuration File (php.ini) Path => /usr/local/php/etc

Loaded Configuration File => /usr/local/php/etc/php.ini

Configuration

是对的


2)phpinfo怎么老是出不来呢

参照

http://zywqs.blog.51cto.com/1286606/842245

把/usr/local/php/etc/php.ini内容中的

short_open_tag = Off 改为short_open_tag = On

保存

重启php-fpm

pkill -9 php-fpm

/usr/local/php/sbin/php-fpm

测试 可以正常解析了


经过测试,也可以把测试代码改为如下方式

<?php

phpinfo();

?>

保存,把short_open_tag 还原为Off 重启php-fpm

也可以解析


其他方法
可以在报错的文件中添加如下代码

date_default_timezone_set("PRC");

当然这个不能解决根本问题,如果很多配置文件都报错,还是要修改php的配置文件