PHP 在 IIS7 上运行非常慢。需要帮助优化我们的配置

PHP 在 IIS7 上运行非常慢。需要帮助优化我们的配置

我在基于 Windows 2008 的云服务器上运行基于 PHP 的 Web 应用程序。该应用程序在我们的环境之外运行良好(例如不同的 IIS 服务器),但在我们的环境中运行速度非常慢。根据谷歌搜索,这是一种相对常见的情况。

我通过 IIS Web 部署方法安装了 PHP 和 MySQL...

这是我们的设置:

  • Windows 2008 Server Enterprise SP2(32 位)
  • Microsoft-IIS/7.0
  • MySQL 客户端版本:mysqlnd 5.0.8-dev - 20102224$Revision: 321634$
  • PHP 扩展:mysqli
  • 针对 IIS 7.0 FastCGI 的更新
  • 适用于 PHP 5.3 的 Windows 缓存扩展 1.1

我在其他地方读到过 IPv6 可能是一个问题,所以我在网络适配器上关闭了它。

该应用程序正在使用:localhost作为其连接

对我宽容点,因为我对其中一些组件不太熟悉...另外,重写 PHP 应用程序或修改它不是一个选项。我相当肯定我们的配置是问题所在。

答案1

我遇到了类似的问题。将 php 应用程序从 iis6 迁移到 iis8,但在 iis8 上运行非常非常慢!

解决方案:在应用程序本身中,将其指向 127.0.0.1 作为 mysql 服务器名称(而不是 localhost)。似乎存在与使用主机名 localhost 相关的解析问题或 IPv6 问题。

127.0.0.1 解决。

答案2

这里有一篇关于 Windows 上 PHP 的精彩演示这里

文章建议您获取适用于 Windows 的非线程安全 php 二进制文件。您看过了吗?

你用过Microsoft Web 安装程序或者自己配置 php 等?

Wincache 似乎也是一个好主意:http://www.iis.net/download/WinCacheForPhp

答案3

根据这篇博文,修复:php mysql 非常慢,我确定,在我的案例中,问题是由于 MySQL 名称解析造成的。请参阅以获取完整文档,但您应该能够通过修改以下内容my.ini并重新启动 mysqld 来解决问题。

# Do cache host names.
skip-host-cache

# Do not resolve hostnames. All hostnames are IP's or 'localhost'.
skip-name-resolve

您的响应时间应该会显著增加。遗憾的是,您将无法再使用主机名连接到 MySQL,而是需要使用 IP 地址。

相关内容