【问题标题】:Apache/PHP on Windows 8Windows 8 上的 Apache/PHP
【发布时间】:2012-11-17 15:56:26
【问题描述】:

我在 Windows 8 上使用 Apache/PHP 时遇到了问题。我以前在 XP(以及 MySQL)上使用它们没有任何问题。我从未使用过 Windows 7。

Apache 安装没有问题。一切正常,包括我所有的虚拟服务器。 PHP 安装正常,安装将条目放入 httpd.conf 中而不会出现错误。 但是,当我在安装 PHP 后尝试加载 Apache 时,Apache 不会加载。

当 PHP 条目包含在 httpd.conf 中时,Apache 返回的错误让我感到困惑:

Syntax error on line 1029 of C:/Program Files/Apache Group/Apache2/conf/httpd.conf:
Cannot load C:/Program Files/PHP/php5apache2_2.dll into server: The specified module could not be found. 

这些行是:

#BEGIN PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL
PHPIniDir "C:\Program Files\PHP\"
LoadModule php5_module "C:\Program Files\PHP\php5apache2_2.dll"
#END PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL

(第 1029 行是 LoadModule 行)。 dll 的位置绝对正确。该行的语法由 PHP 插入。我已经将语法与我拥有的以前版本的 httpd.conf 进行了比较,它看起来是正确的。我认为语法错误是一个红鲱鱼。

我试过了:

  • 在 dll 位置将反斜杠切换为斜杠。
  • 将 PHP 添加到路径中。
  • 按两个顺序安装 Apache 和 PHP。
  • 检查 PHP 文件夹和单个文件的权限 以确保 SYSTEM 已读取/执行。

注释掉 PHP 行和 Apache 加载正常。如果我注释掉 LoadModule 行并离开 PHPIniDir 行,它仍然会失败。 Apache 似乎表现得好像看不到 PHP 目录,但我不知道为什么。

Windows 事件日志中没有任何内容。最新版本的 PHP 和 Apache。我有点不知所措,下一步该尝试什么。请问有什么建议吗?

【问题讨论】:

  • 尝试在路径中没有空格的地方重新安装 PHP(例如,C:\PHP)。
  • 想一想:如果您的 Windows 是 64 位的,您的 PHP 可能会在 C:\Program Files (x86) 文件夹中而不是 C:\Program Files 中,因此路径不匹配。
  • 尝试安装到 C:\PHP。结果相同。
  • 它是 32 位的。我检查了所有路径,我相信它们是正确的。
  • Apache 服务本身是否在 Local System 帐户下运行?

标签: php apache windows-8


【解决方案1】:

从此链接下载并按照说明进行操作: http://www.apachelounge.com/download/

最新下载 (2.4) 适用于 Windows 8 和 Server 2012。

我在 Windows 8 上下载并测试了以下内容: 每个 zip 都有一个带有说明的 readme.txt 或 install.txt。

我添加/修改的 httpd.conf 行是:

LoadModule rewrite_module modules/mod_rewrite.so
LoadModule php5_module "C:/Apache24/php-5.4.8/php5apache2_4.dll"
LoadFile "C:/Apache24/php-5.4.8/php5ts.dll"
PHPIniDir "C:/Apache24/php-5.4.8"
<IfModule php5_module>
  <Location />
    AddType text/html .php
    AddHandler application/x-httpd-php .php
    #AddHandler application/x-httpd-php-source .phps
  </Location>
</IfModule>

【讨论】:

  • 我不知道 php5ts.dll 文件做了什么,我猜是安全的,但它导致我的本地 apache 在 IE 中执行请求时变得更快,并且在 IE 中快了大约 300%法郎。感谢您提供 httpd.conf 配置!
【解决方案2】:

它在 ApacheLounge 与 dll 打包的 Readme.txt 文件中提到,但在下载页面或文件名中的其他任何地方都没有提到(与所有其他版本一样):

“使用 PHP 5.4 线程安全 (TS) 运行,并且仅使用 Apache 2.4 Win32 VC9 或 VC10”

这些dll只适用于TS版本,所以如果你下载了另一个,你基本上就完蛋了。 TS php 二进制文件为我修复了它。

GL。

【讨论】:

    【解决方案3】:

    假设这是你的开发环境,而不是部署环境,你为什么不直接从apache friends下载xampp?它应该是预先配置的,无论如何您都将在其他设置中进行部署。

    【讨论】:

    • 这更多的是评论,而不是真正的答案。
    • 不,这是一个实用的解决方案。没有理由用窗户追求“纯粹”。
    • 我以前没有用过xampp,但我会试一试。谢谢。
    • 如果它解决了你的问题,别忘了接受答案
    【解决方案4】:

    我在 Win 8 上重新安装 Apache 和 PHP 时遇到了类似的问题(不过我是更多的 Linux 用户)。与原帖类似,无论我在 httpd.conf 和 php.ini 中尝试做什么,Apache 要么没有启动,要么没有看到 PHP。在花费了不合理的时间后,我决定下载 PHP 5.3 (5.3.27)-VC9 x86 Thread Safe (2013-Jul-10 21:56:58) Installer [45.86MB] 而不是我之前一直在使用的非踏步安全版本。 .msi 安装程序有所不同。线程安全版本的版本实际上包含所需的文件,如果您按照安装程序提示操作,它实际上会询问您是否应该将 php 安装“链接”到 Apache 服务器。然后,您只需提供 hhtpd.conf 目录,一切正常。这就是我的 2c :)

    【讨论】:

      【解决方案5】:

      我认为问题出在空白的“程序文件”中。

      【讨论】:

        猜你喜欢
        • 2014-01-29
        • 2014-01-08
        • 2017-07-18
        • 2011-03-16
        • 2014-05-27
        • 2014-12-14
        • 2014-02-07
        • 1970-01-01
        • 2011-05-13
        相关资源
        最近更新 更多