在 Windows 2003 IIS6 下跑 PHP 太不不靠谱了
为朋友写了个PHP版本的 socket 程序,在自己的机器环境(WIN2K3, IIS6, PHP4.4.6,ISAPI 模式)下测试一切 OK,到了实际环境却提示 Call to undefined function socket_create()
,初步判断应该 php_socket.dll 未加载的缘故,echo phpinfo 也没有 socket 相关信息。
确认在 php.ini 文件里已经将;extension=php_sockets.dll
这一行的分号去掉了,可 socket 扩展死活不加载。除了 PHP 版本有些差别(实际环境是4.4.9版本),其它设置都一样,正想将 PHP 降到 4.4.6 版本,却突然出现 Service Unavailable 提示,难不成要重装IIS?
不甘心,于是 google 解决方案。参照 Tmouse·方枪枪 的做法:
打开IIS管理器 - 网站 - 右键属性 - 服务 - 勾上”以IIS5.0隔离模式运行www服务”
IIS 的 Service Unavailable 故障消失,更为有意思的是 php_socket 扩展可以正常加载了 -_-! 要不是情况特殊,以后打死我也不用 IIS 跑 PHP 了。