【问题标题】:File or directory not found error on apache 1.3 but works on apache 2.x在 apache 1.3 上找不到文件或目录错误,但在 apache 2.x 上有效
【发布时间】:2016-01-21 08:17:16
【问题描述】:

所以有这个问题,我们有一些运行 apache 服务器的硬件设备,一些较旧的运行 1.3 和较新的运行 2.X。我们正在更新一些 html/php 内容以及在我们的包含中使用相对路径的位置

include_once("../stuff/other_file.php")

这在 2.x apache 服务器上工作正常,但在 1.3 服务器上它返回文件未找到错误(即使文件存在),我尝试将 include_path 设置为根目录但它仍然没有工作。

像这样设置 include_once 起作用的是

include_once($_SERVER['DOCUMENT_ROOT']."/stuff/other_file.php"); 

这两种方法都可以正常工作,但问题是这个系统上有很多包含包含的文件,这需要几天时间才能完成并修复所有问题。

那么为什么这在 apache 1.3 下不起作用?

【问题讨论】:

  • 始终使用绝对路径。您可以使用dirname(__FILE__) 获取目录的当前文件路径。
  • @CharlotteDunois 好吧,我之前没有参与过这个项目,现在为时已晚,我现在需要检查 1000 多个文件并在任何地方写绝对路径吗?

标签: php apache


【解决方案1】:

对于 apache2.x 正确定义的 httpd 和模块路径可能存在问题,但对于 apache1.x 则没有。使用 httpd-switcher 从头开始​​安装 1.x。这应该可以解决问题。

有关更多信息,请使用以下命令 httpd-switcher -h

【讨论】:

  • 这些服务器上的 apache 或 linux 系统不会被触及,只是 html 将被更改,所以我将无法重新安装 apache 服务器
  • 请检查 apache1.x 配置中是否存在“AllowOverride All”。例如: AllowOverride All
  • 在旧系统之一的 php.ini 中找不到 AllowOverride
猜你喜欢
  • 1970-01-01
  • 2011-06-27
  • 2019-06-12
  • 1970-01-01
  • 1970-01-01
  • 2019-08-05
  • 1970-01-01
  • 1970-01-01
  • 2019-06-21
相关资源
最近更新 更多