PHP require_once无法在Linux上运行

时间:2012-05-29 19:37:37

标签: php linux require-once

我已将PHP网络系统从Windows托管服务提供商转移到基于Linux的托管服务。

在系统的脚本中,当涉及require_once时,脚本会停止并将用户留在空白页面。

我尝试过以下两种方法:

尝试1

require_once($_SERVER['DOCUMENT_ROOT'] . '\library\data\Dbec.php') or die("could not load file");

尝试2

require_once(dirname(__FILE__) . '/library/data/Dbec.php') or die("could not load file");

在这两种情况下, die 括号中的文本都没有显示,页面仍为空白。 需要上述文件的脚本位于“ /library/membership/theScript.php

基于我迄今为止所做的阅读,也许它与更改php.ini文件中的include_path或以不同方式编写路径有关。

如果是上述任何一种,或者不同的东西,我会感激一些提示。

3 个答案:

答案 0 :(得分:1)

检查错误日志,查看是否有任何明显错误。另请尝试设置error_reporting = E_ALL,并确保php.ini中的display_errors = Onlog_errors = On

您尝试包含的文件位于'/library/membership/theScript.php'中,请尝试:

require_once '../data/Dbec.php';

答案 1 :(得分:0)

这不会做你想要的。 require_once之后的所有内容都被解释为条件。它正在运行($_SERVER['DOCUMENT_ROOT'] . '\library\data\Dbec.php') or die("could not load file")并返回1,然后正在运行require_once 1

为了使它按预期工作,您需要一组额外的括号:

(require_once($_SERVER['DOCUMENT_ROOT'] . '\library\data\Dbec.php')) or die("could not load file");

虽然,我不确定die()会被调用。由你决定。

this related bug report被裁定为“不是错误。”

答案 2 :(得分:0)

问题还可以在文件权限和文件名中。 Windows文件系统是caseinsesetive但linux不是。因此,您必须检查文件名以及执行此脚本的用户是否已尝试在您尝试包含require_once

的文件上读取延迟的事实
相关问题