我在我工作的客户端上有一个运行在 IIS 上的 PHP 网站。当我们切换到 MsSQL 时,我需要启用 php_pdo_sqlsrv_53_nts.dll。但是,一旦我启用了扩展,我就会开始收到 500 错误。我的猜测是我需要重新启动网络服务器,但由于某些原因,我们现在想避免它。
您能否告诉我是否需要在 IIS 上重新启动 Web 服务器才能正确启用 php dll?
我在我工作的客户端上有一个运行在 IIS 上的 PHP 网站。当我们切换到 MsSQL 时,我需要启用 php_pdo_sqlsrv_53_nts.dll。但是,一旦我启用了扩展,我就会开始收到 500 错误。我的猜测是我需要重新启动网络服务器,但由于某些原因,我们现在想避免它。
您能否告诉我是否需要在 IIS 上重新启动 Web 服务器才能正确启用 php dll?
即使您在本地主机上工作,也需要重新启动!
是 - 请参阅Microsoft.com
请注意,重新启动我的任何网络服务器只需几秒钟,所以我不确定这对您的客户来说是否是个大问题。他有不止一台带有负载均衡器的服务器吗?在那种情况下,您可以一件一件地做它们吗?或者也许还有另一个聪明的想法,即通过更改 DNS 将流量临时重新路由到其他地方?
与流行的观点相反,我要说不,原因如下:
由于您使用的是 IIS,如果重启不一定紧急,您可以尝试回收应用程序池。
循环可能需要一点时间,但“回收”使用重叠方法,使旧进程保持运行,直到其活动请求完成,而新进程处理任何新生成的请求。这一直持续到所有现有进程完成,然后旧池优雅地退出。这将确保最终用户的服务不会中断。不利的一面是,如果您的用户长时间停留在网站上,您的 PHP 扩展可能需要一段时间才能可用。
我过去使用这种方法取得了成功,能够安装 PHP 扩展而无需直接重新启动 IIS。
在 IIS 7 中回收: