0

我有 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;
             }
         }
    ?>
4

3 回答 3

0

duh文件夹的权限是什么?请记住,网络服务器将在与您的 shell 帐户不同的用户 ID 下运行。确保目录的模式为 0755,以便所有用户都可以读取。

哎呀,只是您对错误消息的评论。所以,是的,权限错误。duh由用户 id 10012 拥有,而您的 Web 服务器以 root 身份运行。安全模式不允许这样做。'chown' root 拥有的目录...

当然,为什么 webserver 以 root 身份运行?这是非常不安全的。

于 2010-08-30T17:05:31.253 回答
0

现在你知道答案了:它的 SAFE_MODE,最丑陋的 PHP 特性之一。
有一些解决方法,但其中最好的方法是尽可能快地从该主机运行!
或找到禁用它的方法。

于 2010-08-30T17:21:12.517 回答
0

我想到了。我正在处理的服务器具有每个虚拟主机的本地配置文件。本地 conf 的 safe_mode 设置为 on。

感谢那些带领我走上这条路的人。

于 2010-08-30T17:22:17.320 回答