【问题标题】:phpinfo says php.ini path is C:\Windows but there is no php.ini therephpinfo 说 php.ini 路径是 C:\Windows 但那里没有 php.ini
【发布时间】:2023-03-24 20:26:02
【问题描述】:

我们正在尝试从 PHP5 切换到 PHP7。

我们现在已经安装了 Apache 并且 PHP 可以工作了。

但是,我们在php.ini 文件中所做的更改无效。

通过phpinfo()我们意识到原因是Configuration File (php.ini) PathC:\Windows

在我们的httpd.conf 我们有:

# PHP7 setup
LoadFile "C:/test/php/php7ts.dll"
LoadModule php7_module "C:/test/php/php7apache2_4.dll"
AddHandler php7-script .php
PHPINIDir "C:/test/php"

据我所知,应该让 Apache 在 c:\test\php 中查找 php.ini(根据需要在 http.conf 中使用正斜杠)

不明白为什么 Apache 不在我们告诉它的地方寻找 php.ini,我们将 php.ini 放在仍然未被读取的 c:\Windows 中(我们在 php.ini 中加载的模块不是加载在phpinfo中)。

每次我们对 php.inihttpd.conf 进行更改时,我们都会使用 Apache 监视器重新启动 Apache。

我们如何告诉 Apache 读取特定目录中的 php.ini 文件,而不是我们上面尝试过的?

附录:

我们将所有内容切换回 PHP5,现在出现与上述屏幕截图中 PHP 路径所在位置相同的错误。它说它现在是 PHP 5.6.0,所以它显然正在加载新的 PHP 版本,但是发生了一些变化,因此在任何一个版本中都不会读取 php.ini 文件。 (???)

重启也无济于事。

【问题讨论】:

  • 这可能会有所帮助howtoforge.com/…
  • 尝试使用 PHPRC?您可以指定包含 php.ini 的目录的路径,而不是 php.ini 的直接路径。所以 export PHPRC=/test/php 。希望这会有所帮助?
  • 这听起来有点像执行phpinfo() 脚本时出现的缓存问题...确保在浏览器中进行深度重新加载或为此禁用缓存。
  • 查看下面的行(加载的配置文件)。 配置文件 (php.ini) 路径 多年来一直显示 C:\Windows,原因不明。
  • 是否将 ;c:\php 添加到 PATH 中?在系统变量

标签: php apache


【解决方案1】:

您可以尝试添加斜杠

PHPINIDir "C:/test/php/"

来自manual

注意:请记住,在 Windows 上的 Apache 配置文件中添加路径值时,所有反斜杠如 c:\directory\file.ext 应转换为正斜杠: c:/目录/file.ext。尾随斜杠也可能是必要的 目录。

【讨论】:

  • 关于斜杠的有趣评论...我从未使用过它,甚至同一页面上的示例也没有使用...但是对于 PHP 和 Windows,您永远不知道。
  • 我试过 PHPIniDir "C:/test/php/"PHPINIDir "C:/test/php/" 但无济于事。就好像它只是忽略了这条线。如果我取出任何其他线路,例如LoadFile "C:/test/php/php5ts.dll"LoadModule php5_module "C:/test/php/php5apache2_4.dll" 然后 PHP 停止工作,所以我知道 Apache 正在解析这些行,它只是出于某种原因忽略了 PHPINIDir 行。
  • 并且在httpd.conf 文件中的其他任何地方都没有提到 PHP,例如没有其他设置会覆盖这些设置。
猜你喜欢
  • 2018-09-28
  • 2022-01-16
  • 2012-03-09
  • 2012-08-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-03
  • 1970-01-01
相关资源
最近更新 更多