【问题标题】:How to include a file that is located out of the root directory?如何包含位于根目录之外的文件?
【发布时间】:2012-11-10 20:56:06
【问题描述】:

在我的服务器中,我的根目录是: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");

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

【问题讨论】:

  • PHP 可能没有该目录/文件的权限。你检查过吗?

标签: php include


【解决方案1】:

您的两个 PHP 代码 sn-ps 都应该可以工作,所以首先要仔细检查该文件是否确实存在。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-22
    • 1970-01-01
    • 2012-11-01
    • 2017-02-05
    • 1970-01-01
    • 2016-11-24
    相关资源
    最近更新 更多