编辑:问题出现在
array_filter(glob('*'), 'is_dir')
中 包含文件。该文件被包含,但没有输出。
我有以下两个脚本:
http://exampletld/mrrobot/mrobotseason1.php:
<?php
error_reporting(E_ALL);
print $_SERVER['DOCUMENT_ROOT'];
echo ini_get('open_basedir');
include("/var/www/virtual/exampletld/episodes/htdocs/dirs.php");
?>
<?php
error_reporting(E_ALL);
include("/var/www/virtual/exampletld/episodes/htdocs/dirs.php");
?>
第二个脚本通过包含dirs.php给出预期输出。但是,在第一个脚本中,dirs.php根本不包括在内。我已检查并验证了文件的所有权和权限。他们都是一样的。唯一的区别似乎是第一个脚本位于相对于第二个脚本的子目录中。但是我指的是包含的php文件的完整路径。
我检查过apache服务器日志。没有显示错误。第二个脚本(在Web服务器根目录中正确执行),如果复制到包含第一个脚本的目录,则无法包含php文件。
open_basedir
是/var/www/virtual/exampletld/:/usr/share/php/
为什么执行时会有不同的结果?