Apache 2.2 phpinfo() 配置文件 (php.ini) 路径与 httpd.conf 不匹配

Posted

技术标签:

【中文标题】Apache 2.2 phpinfo() 配置文件 (php.ini) 路径与 httpd.conf 不匹配【英文标题】:Apache 2.2 phpinfo() Configuration File (php.ini) Path doesn't match httpd.conf 【发布时间】:2012-08-16 07:20:29 【问题描述】:

我正在尝试设置 Apache 以使用 php。它似乎正在工作,因为我可以从我的“示例”目录中运行文件 index.php,该目录位于 Apache 的 htdocs 中。但是,当我查看 phpinfo() 屏幕上的配置文件 (php.ini) 路径时,它与我在 httpd.conf 中的路径不匹配。此外,我在 php.ini 文件中打开的模块未设置为启用。

所以我认为它没有得到我的 php.ini。在 phpinfo() 屏幕上,它显示路径是 C:\Windows。

在 Apache 的 conf 目录中的 httpd 文件中,我有这个:

.
.
.
#LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule php5_module C:/php/php5apache2_2.dll
PHPIniDir "C:/php/"

所有这些文件都存在。然而,这甚至不是 C:\Windows 中的 php.ini。

您可能会说我的 httpd.conf 文件可能没有被读取。但是,如果我将 php5_module 行更改为类似

LoadModule php5_module C:/php/incorect.dll

Apache 无法启动。所以这是正在阅读。只是我的 php.ini 没有被读取。为什么?感谢您的帮助!

编辑: 还想提一下,在 phpinfo() 屏幕上, 加载的配置文件显示为(无)。甚至不知道这在说什么,但只是对你们中的那些人有一些更深入的了解。

哦,PHP 版本是 5.4.6。

编辑 2: Windows 版本:Windows 7 专业版 服务包:服务包 1

【问题讨论】:

您是否已将“C:/php/”添加到您的 PATH 中? 试试看。您可以从 cmd 执行此操作:set PATH="%PATH%;C:\php" 我刚试过,在环境变量中查看了我的Path变量,我放的东西没有添加。我的路径系统变量不是拼写为 PATH,它是路径,是正确的吗? 是的,可能是Path。在您的控制面板中检查它:System and Security > System > Advanced system settings > Environment variables (win7)。您可以添加同名的用户变量“Path”(或“PATH”)或系统变量,没关系。 那么是的,它就在那里,而 Apache 仍然没有捡起它。 【参考方案1】:

变化:

PHPIniDir "C:/php/"

收件人:

PHPIniDir "C:/php"

加载模块:

LoadModule php5_module "c:/php/php5apache2_2.dll"

添加 PHP 处理程序:

AddHandler application/x-httpd-php .php

更新目录索引(可选):

DirectoryIndex index.php index.html

Path 变量的末尾包含“c:\php”。

【讨论】:

这很奇怪。之后您是否重新启动了httpd?尝试重新启动系统。 重启httpd?我重新启动 Apache。不过我也可以尝试重新启动系统。 是的,httpd 那是您的 Apache HTTP 服务器。您如何安装 Apache 以及如何启动它?作为 Windows 服务还是通过运行二进制文件? 我将它作为 Windows 服务启动。使用 .msi 安装程序或您所称的任何名称安装它。我现在在我的旧计算机上,我遇到这些问题的计算机在重新启动时正在经历一些愚蠢的 Windows 更新,但我在这里用 phpinfo() 检查了我的 php.ini,它实际上是 C: \Windows 用于配置文件路径,但另一个对我显示(无)的应该说 C:/php/php.ini。所以这就是我现在遇到的问题。并且系统重启并没有解决问题,对于加载的配置文件仍然(无)。 能否请您告知您的 Windows 版本和服务包?在您的问题中包含所有这些信息。【参考方案2】:

已解决 - 不能是正斜杠,必须是反斜杠。拿了

PHPIniDir "C:\srv\php5_4_8\"

【讨论】:

【参考方案3】:

我找到了在 IIS 7 上正确安装它的方法:

如果您使用 64 位,请将 IIS 设置为允许 32 位

cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1

设置环境变量

到 C:\php\

的路径

PHPRC 到同一个目录

转到 Web 服务扩展:添加新扩展...

将其命名为 php,并将其指向 php5isapi.dll。

将状态设置为允许。

右击网站:

在选项卡上,ISAPI 过滤器,将其命名为例如 php,并将其指向 php5isapi.dll

然后转到主目录选项卡:

点击配置

在映射上,单击添加:

可执行文件是:php5isapi.dll 扩展名:.php

单击确定,然后单击确定。

然后在“文档”选项卡上单击“添加”:

并在那里添加你想要加载的默认值,比如 index.php

然后停止,然后启动 IIS。

这适用于我在 Windows 2003 Server 和 WinXP 64 上。

我希望这对你也有用。

【讨论】:

【参考方案4】:

我的系统:Windows with apache 2.2, php 5.3

症状: PDO drivers not found.

我发现了什么: phpinfo() 显示 php.ini 文件是 "C:\Windows",尽管我预计它是 "C:\Program Files (x86)\PHP\",正如我在 apache\conf 中的 httpd.conf 文件中指定的那样

问题出在httpd.conf 中的PHPIniDir 字符串,所以我打算使用的php.ini 文件没有找到。

失败:

PHPIniDir "C:\Program Files (x86)\PHP\"

工作:

PHPIniDir "C:\Program Files (x86)\PHP"
PHPIniDir "C:/Program Files (x86)/PHP"
PHPIniDir "C:/Program Files (x86)/PHP/"

注意: FAILED 情况下的额外“\”。删除它,保存 conf 文件,然后重新启动 apache。现在 phpinfo 应该显示 php.ini 文件来自“C:\Program Files (x86)\PHP”,并且 PDO 驱动程序已加载。

【讨论】:

【参考方案5】:

我也遇到了同样的问题。

就我而言,问题在于我将 php.ini 文件保存为文本文件。当我在记事本中将文本文件转换为“所有文件”并为其赋予“.ini”扩展名后,它就变成了“配置设置文件”并且可以正常工作。

(在 Windows 上工作)

【讨论】:

【参考方案6】:

由于我运行的是 Windows 7(Apache 2.2 & PHP 5.2.17 & mysql 5.0.51a),文件“httpd.conf”中的语法(C:\Program Files (x86)\Apache Software Foundation\Apache2. 2\conf\httpd.conf) 对斜杠非常敏感。我需要改变

PHPIniDir 'c:\PHP'

PHPIniDir 'c:\PHP'

注意最后一个斜线扰乱了一切!

【讨论】:

嗯 - 他们都是一样的

以上是关于Apache 2.2 phpinfo() 配置文件 (php.ini) 路径与 httpd.conf 不匹配的主要内容,如果未能解决你的问题,请参考以下文章

apache 2.2 配置参数详解

解决phpinfo()与 php -v不一样

Mac下配置xampp和Xdebug

Mac下配置xampp和Xdebug

Centos 6 apache httpd 2.2 主要配置详解( 一 )

Apache Http-Server的安装及配置