【问题标题】:Adding PHP extension to IIS Without Restarting在不重新启动的情况下将 PHP 扩展添加到 IIS
【发布时间】:2013-03-14 20:49:10
【问题描述】:

我在我工作的客户端上有一个运行在 IIS 上的 PHP 网站。当我们切换到 MsSQL 时,我需要启用 php_pdo_sqlsrv_53_nts.dll。但是,一旦我启用了扩展,我就会开始收到 500 错误。我的猜测是我需要重新启动网络服务器,但由于某些原因,我们现在想避免它。

您能否告诉我是否需要在 IIS 上重新启动 Web 服务器才能正确启用 php dll?

【问题讨论】:

    标签: php sql-server iis


    【解决方案1】:

    即使您在本地主机上工作,也需要重新启动

    【讨论】:

      【解决方案2】:

      是的 - 见Microsoft.com

      请注意,重新启动我的任何网络服务器只需几秒钟,所以我不确定这对您的客户来说是否是个大问题。他有不止一台带有负载平衡器的服务器吗?在那种情况下,您可以一件一件地做它们吗?或者也许还有另一个聪明的想法,即通过更改 DNS 将流量临时重新路由到其他地方?

      【讨论】:

        【解决方案3】:

        与流行观点相反,我要说,原因如下:

        由于您使用的是 IIS,如果重启不一定紧急,您可以尝试回收 App Pool。

        循环可能需要一点时间,但“回收”使用重叠方法,让旧进程保持运行,直到其活动请求完成,而新进程处理任何新生成的请求。这一直持续到所有现有进程都完成,然后旧池优雅地退出。这将确保最终用户的服务不会中断。不利的一面是,如果您的用户长时间停留在网站上,您的 PHP 扩展可能需要一段时间才能可用。

        我过去曾使用此方法取得成功,无需直接重新启动 IIS 即可安装 PHP 扩展。

        在 IIS 7 中回收:

        1. 打开 Internet 信息服务 (IIS) 管理器
        2. 导航到 SERVERNAME > 应用程序池
        3. 选择您要回收的池(附加到您需要扩展的站点的池)
        4. 在“操作”窗格中,单击“回收...”

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-05-13
          • 2014-03-11
          • 1970-01-01
          • 1970-01-01
          • 2011-04-27
          • 2014-02-22
          • 1970-01-01
          • 2017-07-09
          相关资源
          最近更新 更多