修改apache配置后Apache启动失败,显示语法错误,无法将php5apache2_2.dll加载到服务器

San*_*ath 3 configuration windows-7 64-bit apache-2.2

我又被 apache 安装人员困住了。我正在使用 Service Pack 1 运行 Windows 7 专业版的 64 位系统。我从队友那里复制了工作 php5 安装目录,.dll从 php5 安装文件夹中复制了必要的文件(就像他们在队友的工作设置中一样)到我的windows/system32/. Apache 服务器使用默认的 apache 配置 ( httpd.conf) 文件成功启动。我能够在浏览器中访问本地主机。但是 php 代码没有解析。我注意到 apache 配置文件中没有像下面这样的行:-

# PHP5 module
LoadModule php5_module D:/php5/php5apache2_2.dll
Run Code Online (Sandbox Code Playgroud)

如果我添加这一行,apache 服务器启动失败。运行测试配置会出现以下错误 -

httpd.exe: Syntax error on line 60 of C:/Program Files (x86)/Apache Software Foundation/Apache2.2/conf/httpd.conf: Cannot load D:/php5/php5apache2_2.dll into server: The specified procedure could not be found.  
Run Code Online (Sandbox Code Playgroud)

但是该php5apache2_2.dll文件位于指定位置,并且我已将所有权限授予当前系统用户对php5安装目录的所有权限。同一行也出现在 apache 错误日志中。这里的另一件事是我不确定何时将日志确切地写入日志文件。如果我打开了日志文件进行阅读,如果没有创建日志条目,我会感到困惑吗?大声笑......因为我无法观察到输入时的模式。我看到一些日志条目正在制作,有些没有。但现在这是一个单独的问题。

我之前在同一系统上,在另一个硬盘上设置了 apache、php。我遵循了与现在相同的步骤,它确实设置成功,尽管经过了很多令人头疼的事情,就像我上面写的日志文件条目混淆一样。我不记得我之前是如何修复它的。但是,我尝试使用相同的 apache 配置文件(之前在旧硬盘上的先前设置中工作的那个文件 - 已备份),但它仍然给出相同的错误。

更新
我阅读了http://us3.php.net/manual/en/install.windows.apache2.phpAddHandler application/x-httpd-php .phpLoadModule php5_module "D:/php5/php5apache2_2.dll". 还是没有成功。

我还阅读了这篇博客,其中提到了一些 VC6 和 VC9 二进制文件。我不知道他们。我需要为此做些什么吗?

进一步更新
我从http://httpd.apache.org/download.cgi下载了 apache - “Win32 Binary without crypto (no mod_ssl) (MSI Installer)”选项。

Laz*_*One 8

很可能您的Apache build 不兼容。你没有提到你从哪里下载 Apache HTTPD + 你有什么 PHP 版本。

  1. Apache Lounge 网站获取最新的 Apache 版本——他们的版本是用VC9编译的,而 apache.org 版本仍然是 VC6。您需要 VC9 构建,因为这是现在编译官方 PHP 构建的方式(您可以阅读 PHP for Windows 网站上的小说明——请参阅 #2 中的链接)。

  2. PHP for Windows获取线程安全的 PHP 构建(根据您想将其作为 Apache 模块运行的问题)。如果要将其作为 FastCGI 运行,则需要非线程安全构建。

  3. 禁用所有非默认的php 扩展(直到您成功启动 Apache 并运行 PHP)。

  4. 如有必要,配置您的 PHP 和 Apache(到目前为止您提到的那些 Apache 配置行都很好)。

PS “将必要的.dll文件从php5安装文件夹中(就像他们在队友的工作设置中一样)复制到我的windows/system32/”

  1. 您使用的是 x64 位版本的 Windows。C:\windows\system32\仅适用于 64 位进程/文件。在您的情况下,Apache 和 PHP 是 x32,因此正确的位置是C:\Windows\SysWOW64.

  2. 没有真正的理由将这些文件复制到那里——您可以将 PHP 安装路径 ( D:\php5\) 添加到 PATH 环境变量(将其放在前面),Windows 将自动查找所有文件(可能需要重新启动)——适用于我。

PPS 而不是手动安装它,您可以使用已经预先配置的堆栈之一:XAMPWAMP或类似的。