php5-fpm无法打开读取文件
我试图让我的php cgi进程从我的文件系统上的文件读取。文件和父文件夹都具有允许的所有rwx权限,并且该文件与php进程www-data具有相同的所有者和组ID。php5-fpm无法打开读取文件
无论我怎样尝试打开该文件(阅读(),file_get_contents()函数,stream_get_contents()),我总是得到同样的错误: failed to open stream: Permission denied
我没有问题,在PHP交互打开文件会话,在命令行上使用cat,或使用python。
这是怎么回事?
我以前在启用SELinux的Linux系统上看到过这个问题。 httpd进程通常被赋予它自己的安全上下文,只允许某些文件被访问。
您可以通过在文件和php脚本上运行ls --scontext
来检查SELinux是否启用。如果这两个文件具有相同的上下文,或者如果ls
抱怨论证,那么SELinux可能不是问题的原因。
假设SELinux是问题的原因,那么你可以尝试设置有问题的文件与你的php脚本具有相同的安全上下文,命令为chcon
。例如:
chcon --reference=/var/www/html/page.php /data/filetoread
其中/var/www/html/page.php
是你的PHP脚本,/data/filetoread
的是,你要访问的文件。
我试过'ls --context
事实证明,这个文件是在一个FUSE文件系统下,它没有与allow_other
选项一起安装。
如果你sudo su www-data然后通过CLI-php运行脚本会发生什么? – 2013-05-09 02:32:22
权限被拒绝!这里发生了什么?文件和文件夹都有777个权限。 – cachance7 2013-05-09 03:13:42
此外,链上的所有父文件夹也设置了777个权限。 – cachance7 2013-05-09 03:34:14