【问题标题】:Hooking PHP into Apache Server is not working [closed]将 PHP 连接到 Apache 服务器不起作用 [关闭]
【发布时间】:2015-02-21 03:09:13
【问题描述】:

我的操作系统是 Windows 7 Professional 64 位。

我在C:\Program Files (x86)\Apache Software Foundation\Apache2.2 文件夹中安装了 32 位 Apache Server 2.2 版本,作为服务侦听端口 81,它工作正常。

我也有 32 位 PHP 5.5.20 线程安全版本工作正常:

  • 我下载了 32 位 PHP 5.5.20 线程安全版
  • 解压到C:\DevPrograms\php-5.5.20-Win32-VC11-x86文件夹中
  • 将php.ini-development文件复制到同一个文件夹并重命名为php.ini文件
  • 在 php.ini 文件中取消注释 extension_dir = "ext"
  • 路径系统变量中包含C:\DevPrograms\php-5.5.20-Win32-VC11-x86
  • 在命令提示符下运行php -v,它工作正常。

现在我正在尝试将 PHP 连接到 Apache 服务器。

在我的C:\DevPrograms\php-5.5.20-Win32-VC11-x86 文件夹中有一个文件 php5apache2_4.dll

我打开C:\Program Files (x86)\Apache Software Foundation\Apache2.2\conf文件夹中的httpd.conf文件进行修改:

在最后一个#LoadModule 行之后包含这些行

# For PHP 5 do something like this:
LoadModule php5_module "C:/DevPrograms/php-5.5.20-Win32-VC11-x86/php5apache2_4.dll"
AddType application/x-httpd-php .php

# configure the path to php.ini
PHPIniDir "C:/DevPrograms/php-5.5.20-Win32-VC11-x86"

保存 httpd.conf 文件,然后在 Apache Service Monitor 窗口中,重新启动 Apache2.2 服务器。但我收到一条错误消息:

请求的操作失败!

为什么会失败?是因为版本不兼容吗?

【问题讨论】:

  • 如果您的服务器是 64 位的,您为什么要下载所有内容的 32 位版本?你没有觉得这样做是错误的吗?
  • 我在使用 64 位版本的软件时遇到了问题,所以我尽量使用 32 位版本的软件。在这种情况下,Apache 和 PHP 都是 32 位的,所以我相信这不是问题。问题可能是 PHP 5.5.20 不向后兼容 Apache 2.2

标签: php windows apache


【解决方案1】:

我已经找到了解决方案。基本上 PHP 5.5.20 与我怀疑的 Apache 2.2.25 不向后兼容。所以我将 PHP 降级到 PHP 5.4.36,然后它可以与 Apache 2.2.25 一起使用。

【讨论】:

    相关资源