1

我已将 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");

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

根据我到目前为止在网上所做的阅读,可能与更改 php.ini 文件中的 include_path 或以不同的方式写入路径有关。

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

4

3 回答 3

1

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

您尝试包含的文件位于“/library/membership/theScript.php”中,请尝试执行以下操作:

require_once '../data/Dbec.php';
于 2012-05-29T19:45:11.857 回答
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()是否会被调用。由你来弄清楚。

请参阅此相关的错误报告,该报告被裁定为“不是错误”。

于 2012-05-29T19:49:45.567 回答
0

问题也可能出在文件权限和文件名中。Windows 文件系统是不区分大小写的,但 linux 不是。因此,您必须检查文件名以及执行此脚本的用户是否已读取您尝试包含在 require_once 中的文件的权限

于 2012-05-29T20:19:29.923 回答