我有同样的错误,我的问题是文件权限不正确。

chmod 755 index.php

对我有用。

经历了同样的错误,对我来说,这是因为在我的 Mac 上,我已经将 DocumentRoot 更改为我的用户站点目录。

为了解决这个问题,我运行了递归命令以确保 Apache 服务具有读权限。

sudo chmod -R 755 ~/Sites

我今天在 /home/user/public _ html/index.php中遇到了这种情况,解决方案是执行 chmod o+x /home/user,因为这个目录必须有 X,否则 Apache 服务器不能列出文件(即执行 ls)

如果忘记创建了指向不同目录的 Windows 符号链接,而其他目录没有适当的权限,也会发生这种情况(这种情况尤其令人困惑)。

如果您正在运行 Fedora,请确保 SELinux 没有干扰:

    sudo /sbin/restorecon -R /var/www/

更多信息请点击: Linuxquestions.org/questions/linux-server-73/

我有这个问题时,插入错误的文件地址到 .htaccess

php_value auto_prepend_file "/home/user/wrong/address/config.php"

因此,如果您使用 Auto _ prepend _ file检查您的文件路径。它从 .htaccess调用,因此 PHP 无法确定错误文件和行。

这里有一些指导如何修复它:

cd /var/www


sudo chown www-data:www-data * -R


sudo usermod -a -G www-data username

用你的用户名改变用户名,希望对你有帮助。

这不是这个问题的直接答案,但我也有同样的问题。我在我的 Ubuntu 服务器 VPS 上安装了 VSFTPD。我可以上传文件,但是我上传的每个文件都没有执行权限(所有文件都有“600”权限)。这些文章详细解释了如何配置 VSFTPD 来设置文件的默认权限:

有一次,这种事也发生在我身上。当我在谷歌上搜索这件事的时候,我知道当文件的权限被错误地设置为000(这意味着没有人可以读、写或执行该文件)时,就会发生这种情况。然后我把我的文件许可权限改成了读写权限,这对我很有效。

要更改 Mac 上的文件权限设置: 右键单击特定文件,然后单击从下拉菜单获取信息,参考共享和权限面板,并将权限设置更改为读写

更多: http://www.itoctopus.com/warning-unknown-failed-to-open-stream-permission-denied-in-unknown-on-line-0-error-in-joomla

检查 dos 和 unix 文件格式。如果使用 dos 文件格式,在 Linux 平台上可以看到这个问题。使用 doc2unix 命令,如下所示,然后重试应该可以工作 Dos2unix * . php

以下问题的解决方法

Wed Nov 12 07:50:19 2014] [error] [client IP1] PHP Warning: Unknown: failed to
open stream: Permission denied in Unknown on line 0
[Wed Nov 12 07:50:19 2014] [error] [client IP1] PHP Fatal error: Unknown: Failed
opening required '/var/www/html/index.php' (include_path='.:/usr/share/pear:
/usr/share/php') in Unknown on line 0

在我看来,真正的方法是:

# add READ permission to all directories and files under your DocumentRoot
sudo chmod +r /path/to/DocumentRoot/ -R


# add EXECUTE permission to all DIRECTORIES under your DocumentRoot
find /path/to/DocumentRoot/ -type d -exec chmod +x {} \;

我只是遇到了同样的问题,在我的案例中,它是由 selinux 引起的。关闭它解决了问题。不,我的工作站不需要 selinux,谢谢。

转到文件夹 htdocs

cd htdocs

Execute

chmod -R 755 sites

没必要这样!

仅引用用户1992554的上述答案 这个对我在 Linux Mint 中非常有用,可以去掉警告: 未能打开数据流: 权限被拒绝

Cd/var/www
Sudo chown www-data: www-data *-R
Sudo usermod-a-G www-data 用户名

这是一个 SELinux 阻塞问题,Linux 阻止 httpd 访问。以下是解决方案:

# restorecon '/var/www/html/wiki/index.php'
# restorecon -R '/var/www/html/wiki/index.php'
# /sbin/restorecon '/var/www/html/wiki/index.php'

在 Fedora 25中,它被证明是一个 SE Linux 问题,并且通知给出了这个解决方案,这对我来说是有效的。

Setsebool-P httpd _ read _ user _ content 1

在我的例子中,apache 使用的组 _www在文件夹的访问列表中丢失了,所以首先我必须添加丢失的组,如下所示:

sudo chown -R _www ~/path-to-folder

_www更改为运行 apache 的任何用户或组。

使用 apachectl -S查找 apache 的用户/组

产量是巨大的,但是看看最后的结果:

User: name="_www"
Group: name="_www"

除了权限之外,问题可以是 open _ basedir。如果你正在使用它(我建议你使用它) ,那么检查一下虚拟主机的设置:

 php_admin_value open_basedir <YOUR ROOT>