【发布时间】:2010-08-30 16:46:00
【问题描述】:
我有 2 个文件夹: /var/www/vhosts/mydomain.com/httpdocs/ 和 /var/www/vhosts/mydomain.com/httpdocs/duh/
两个文件夹的权限、组、所有者等所有内容完全相同。
如果我将 $path 设置为第一个,没问题,我会回显文件名中带有“html”的文件列表。
如果我将 $path 设置为第二个,它会在 opendir() 上死掉。但是,它可以从命令行正常工作,而不是浏览器。
有什么想法吗?
这是我非常简单的代码:
<?php
$path = "/var/www/vhosts/mydomain.com/httpdocs/duh/";
$img_folder = opendir($path) or die("Unable to open $path");
while (false !== ($file = readdir($img_folder))){
if (eregi("html", $file)){
echo $file;
}
}
?>
【问题讨论】:
-
去掉@,你至少会看到它给出了什么错误,以防你不知道@抑制错误报告,这就是为什么你不知道原因是什么
-
抱歉,我应该把它取下来的。我正在测试一些东西,它在这里成功了。我现在不使用它,我将编辑。
-
那么它给出了什么错误? (除了“无法打开 $path”)
-
[2010 年 8 月 30 日星期一 13:02:50] [错误] [客户端] PHP 警告:opendir() [function.opendir] :安全模式限制生效。不允许 uid 为 0 的脚本访问第 4 行 /var/www/vhosts/mydomain.com/httpdocs/t.php 中 uid 10012 拥有的 /var/www/vhosts/mydomain.com/httpdocs/duh/ [2010 年 8 月 30 日星期一 13:02:50] [错误] [客户端] PHP 警告:opendir(/var/www/vhosts/mydomain.com/httpdocs/duh/) [function .opendir]:无法打开目录:第 4 行 /var/www/vhosts/mydomain.com/httpdocs/t.php 中设备的 ioctl 不合适
-
我应该注意,根据我的 /etc/php.ini safe_mode = Off;
标签: php command-line permissions filesystems opendir