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 不匹配的主要内容,如果未能解决你的问题,请参考以下文章