最近突然遇到个 PHP 的技术问题,官方也没给出解决方案只好自己动手了,最早发现问题开始是小程序客服插件在用户说话的时候提示“该小程序出现故障,无法提供服务”,环境用的是win2008+IIS+PHP。综合查看后考虑到是php配置和版本的问题,就用 phpinfo()函数看下版本,结果直接给我报500错误(也有可能报其他错误),网站正常运行,只有phpinfo函数报500错误。网上找了一堆解决方案,大致分下面几种(对我遇到的问题程序然并卵,也许对大家有帮助):

1、在php.ini里禁用了phpinfo函数,这个好解决 打开php.ini找到disable_functions这个标签 把后面的phpinfo删除就行

2、没启用简短标签short_open_tag但写程序的时候缺用这样写,这个也好解决 把short_open_tag=On开启了或者这样写

  下面我找到了一种终极解决办法:最常见的原因可能是这样两个导致的,网上其他扯蛋的方法就不说了,但经过我测试这两个都是正常的,因为网站可以正常运行,其他函数也没问题,所以没考虑是服务器的问题,肯定是php配置文件导致的,所以我找了个正常能打开phpinfo函数的php.ini替换我以前打不开phpinfo函数的php.ini,重启IIS,测试正常打开phpinfo函数,最终我拿两个文件载文件对比器里对比了把,经过一个个测试问题在于date.timezone这个标签,打不开phpinfo那个里这个标签是注释的 而且后面没有参数,这个是个世界标签,在官方下载的php版本这个标签一般都没开启。把这个标签打开(去掉前面分号)写成date.timezone=PRC。如下图,左边是正确的,至此,问题解决!(文/小灰博客)