fileperms():stat失败,但文件存在

时间:2011-12-23 15:41:18

标签: php file permissions apache2

我正在使用OpenVPN Web GUI而我遇到了一些问题,因为该程序没有看到必要的文件之一。该文件的ls -l如下:

-rw-r--r-- 1 root www 4153 Dec 20 10:12 /etc/openvpn/inn.crt

但是当我运行该程序时,它声称该文件不存在。我尝试了这个sprintf('%d', fileperms($sLongFileName));,这引发了“无法统计”警告。 file_exists()也返回false。存在另一个PHP可见的文件:

-rw-r--r-- 1 root www 581 Dec 21 12:52 /etc/openvpn/crl.pem

这是什么原因?

编辑:我让程序为这两个文件执行此操作:

file_put_contents("_dumpfile", "\n<<".$sLongFileName.">>\n", FILE_APPEND);

结果如下:

>>/etc/openvpn/inn.crt

<</etc/openvpn/crl.pem>>

文件路径有问题吗?

1 个答案:

答案 0 :(得分:2)

除了文件的物理存在之外,还有其他不同的东西会阻止您访问特定用户下的文件。

您需要验证是否可以使用PHP脚本用来执行这些调用的用户访问文件和文件所在的目录(这取决于您的服务器和PHP配置)。所以首先要找出哪个是用户名。

然后检查您的系统配置是否像SELinux这样的实用程序因某种原因阻止了对文件的访问,例如webrequest导致文件访问不允许的文件。