如何包含位于根目录之外的文件?

时间:2012-11-10 20:56:07

标签: php include

在我的服务器中,我的根目录是:home

所有公共文件(www目录)都在:home / public_html

好的,我想把一些文件放在www目录的其他目录中,例如:home / configs或home / php_classes

我想在www目录中的某些文件中包含这些目录中的文件。

基本上,我想home / public_html / index.php包含home / configs和home / php_classes中的文件

我试过了:

include("../configs/site_config.php");
include("../php_classes/mailer.php");

include("/home/configs/site_config.php");
include("/home/php_classes/mailer.php");

但它不起作用,我一直收到包含警告“没有这样的文件或目录”

1 个答案:

答案 0 :(得分:1)

您的两个PHP代码段都应该有效,因此请先仔细检查该文件确实存在

如果您确定没有拼写错误,那几乎肯定是权限问题。 PHP在Apache下执行,因此您需要为Apache运行的用户提供对该文件夹的访问权限。最简单的方法取决于操作系统,这是一个深入细节的答案:How do I give PHP write access to a directory?

要测试这是否是问题,您可以暂时递归设置您尝试访问世界可读/可执行文件的目录的权限(例如755)。像chmod -R 755 /home/configs这样的东西。如果PHP仍然没有找到它,那么你的问题就在其他地方。一旦确定问题,请务必缩小权限范围,因为除非您有充分的理由这样做,否则不要让您的目录保持可读或可执行。