IIS无法加载PHP.ini
我在服务器上安装了Apache,PHP和MYSQL,这三个软件都是使用的绿色版复制过来,然后启动的服务。在这三种软件环境下,网站源代码运行正常。后来因某种需要,必须使用IIS替代Apache。按照网上的介绍,在IIS中新建了网站,添加了php5isapi等,并且该应用程序就是使用的Apache相同的PHP,把主目录设置为源代码所在的目录,把PHP.ini复制到\windows目录下。然而,当我兴高采烈地浏览访问时,发现并没有输出任何结果。经测试,发现系统对处理PHP代码是正常的,只是连接mysql数据库失败。在这里,我觉得还有点邪门。正常的话,代码中至少应该显示错误消息。可是错误信息一点都没有,就卡在mysql_connect(...)这个函数这里。此函数之前的echo正常输出,此函数之后就没有了,也没有任何错误信息。后来尝试了phpinfo(),粗略看看,有很多信息,也没细看,以为是正常的。搜索了谷歌,注意到mysql等所有的ext都没有加载。这时我才注意到了PHP.ini。发现,尽管加载的PHP.ini是c:\windows\php.ini,但我在其中设置的extension_dir是PHP目录中的,而phpinfo()输出的却是.\。我意识到php.ini未加载。不仅是mysql未加载,其他的也没有加载。我尝试在IIS管理器里面停止 、启动了网站多次,问题不见消失。最后,又是多亏了谷歌,发现在IIS管理器的重启网站是不会重新加载php.ini的,可以重启服务器。但服务器是托管在异地的,上面还跑着好几个其他应用,万一重启过程中出现问题,不能起来,就麻烦了。最后,使用了命令行下的 iisreset,执行完,问题解决。