【问题标题】:PHP - readfile() failed to open stream: Permission deniedPHP - readfile() 无法打开流:权限被拒绝
【发布时间】:2014-10-28 01:11:52
【问题描述】:

我有以下脚本: /var/www/vhosts/default/download/index.php

我正在使用 readfile();提供文件:

$path = '/data/'. $arr["$product"] .'';
readfile($path);

但是会产生如下错误:

[error] [client xx] PHP Warning: readfile(/data/xxx.iso): failed to open stream: Permission denied in /var/www/vhosts/default/download/index.php on line 33, referer :http://zxc.com/

我以为是权限问题,所以给/data目录下777,给/data下的文件777,还是没有解决问题。然后我把目录+文件的所有者改成了apache,也没有解决。

还有什么问题?还尝试使用 open_basedir 解决它。但没有成功。

【问题讨论】:

  • 删除第一个斜杠/作为相对路径?还是数据真的是顶级目录?
  • 对不起,直接文件夹是:/data/(它在不同的分区上)
  • 文件真的存在吗? (检查file_exists)
  • 是的,该文件确实存在。我从错误日志中复制了文件名并通过 SSH 检查。该文件确实存在。
  • 文件在 /var/www/vhosts/default/download/data/yourfile 吗??

标签: php


【解决方案1】:

我发现了问题。似乎启用了 SELinux。禁用 SELinux,它现在可以工作了。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2015-11-15
  • 1970-01-01
  • 2010-11-14
  • 2016-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多