PHP包括不加载文件

时间:2017-10-27 20:42:06

标签: php apache server include require

我在我的ubuntu 16.04操作系统上本地运行灯堆栈并且在包含文件时遇到问题。我在index.php中的代码:
<?php include('steamauth/steamauth.php'); ?> <?php include('steamauth/userinfo.php');?> 我的结构是:
index.php steamauth steamauth.php userinfo.php
我得到以下错误:
include(steamauth / userinfo.php):无法打开流:/var/www/html/index.php中没有这样的文件或目录
include():打开&stequouth / userinfo.php&#39;在/var/www/html/index.php中包含(include_path =&#39;。:/ usr / share / php&#39;)
我尝试使用完整路径,在路径之前添加webroot,更改php.ini中的include_path,但似乎没有任何工作。我该怎么办?

1 个答案:

答案 0 :(得分:0)

检查文件夹授权

检查Apache用户是否有权访问include文件夹。

检查文件权限

检查Apache用户是否可以读取和执行您所包含文件的权限。

检查PHP设置

可能是由以下PHP设置之一引起的:

open_basedir的: 如果设置了这个,PHP将无法访问指定目录之外的任何文件(甚至不能通过符号链接)。

安全模式: 如果启用此限制可能适用。

路径绝对

使用以下方法检查是否为您的域正确设置了$ _SERVER [&#34; DOCUMENT_ROOT&#34;]:

print $_SERVER["DOCUMENT_ROOT"]; // Add to top of you index.php file. 

然后将您的包含更改为:

$_SERVER["DOCUMENT_ROOT"] . '/sub_folder/file_to_include';

检查拼写错误和拼写错误

仔细检查您认为自己所谓的文件夹以及您使用它的内容拼写相同。

BTW:您可以在index.php文件中使用以下内容:

<?php
include('steamauth/steamauth.php');
include('steamauth/userinfo.php');

您也不需要添加结账?&gt;在文件的最后 - 它实际上是不好的做法。