【问题标题】:Apache 2.2 phpinfo() Configuration File (php.ini) Path doesn't match httpd.confApache 2.2 phpinfo() 配置文件 (php.ini) 路径与 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 仍然没有捡起它。

标签: apache php httpd.conf


【解决方案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'

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

          【讨论】:

          • 嗯 - 他们都是一样的
          猜你喜欢
          • 2013-03-26
          • 2015-06-09
          • 1970-01-01
          • 1970-01-01
          • 2019-03-17
          • 2015-09-08
          • 1970-01-01
          • 2018-11-07
          • 2023-03-24
          相关资源
          最近更新 更多