【发布时间】:2012-01-26 22:03:37
【问题描述】:
我正在使用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>>
文件路径有问题吗?
【问题讨论】:
-
尝试在 fileperms() 函数中使用整页。接下来是检查文件所有权问题。
-
如果你
var_dump($sLongFileName);,你会得到什么?似乎不能包含正确的文件路径,尤其是因为file_exists() also returns false -
您在哪个发行版上运行?如果您有 Ubuntu 或 Suse,您可能需要查看 AppArmor - 经常看到这种情况
-
请用hexdump输出文件,看起来很奇怪
-
该文件可以被网络服务器读取,但是
/etc/openvpn目录呢?您可以授予文件本身所需的所有权限,但如果目录不允许访问,您将无法访问该文件。
标签: php file permissions apache2