我最近编辑了apache httpd.conf文件,以便mod_rewrite工作。我不知道这个问题是否源于此问题,但是从那天起我就遇到了这个问题 这是我在运行软件时在前端看到的内容 -
服务器错误网站遇到了 检索时出错 http://localhost/prestashop/。有可能 关闭进行维护或配置 不正确。
没有特定文件可以触发此操作。但是我看到通常由4-5个php文件组成的小程序运行正常,但是包含大量文件的软件(如PrestaShop)没有。 我检查了日志,这就是我找到的。
[Wed Mar 16 19:33:39 2011] [error] [client ::1] PHP Warning: Unknown: failed to open stream: Permission denied in Unknown on line 0
[Wed Mar 16 19:33:39 2011] [error] [client ::1] PHP Fatal error: Unknown: Failed opening required '/var/www/html/yomig/index.php' (include_path='.:/usr/share/pear:/usr/share/php') in Unknown on line 0
[Wed Mar 16 19:33:39 2011] [error] [client ::1] File does not exist: /var/www/html/favicon.ico
[Wed Mar 16 19:33:41 2011] [error] [client ::1] PHP Warning: Unknown: failed to open stream: Permission denied in Unknown on line 0
[Wed Mar 16 19:33:41 2011] [error] [client ::1] PHP Fatal error: Unknown: Failed opening required '/var/www/html/yomig/index.php' (include_path='.:/usr/share/pear:/usr/share/php') in Unknown on line 0
答案 0 :(得分:130)
遇到同样的错误,对我来说这是因为在我的Mac上我将DocumentRoot更改为我的用户站点目录。
为了解决这个问题,我运行了recursive命令以确保Apache服务具有读权限。
sudo chmod -R 755 ~/Sites
答案 1 :(得分:31)
如果您正在运行Fedora,请确保SELinux没有干扰。您可以使用以下命令解决此问题:
sudo /sbin/restorecon -R /var/www/.
答案 2 :(得分:9)
我遇到了同样的错误,我的问题是文件权限不正确。
chmod 755 index.php
为我工作。
答案 3 :(得分:4)
将错误的文件地址插入.htaccess
php_value auto_prepend_file "/home/user/wrong/address/config.php"
因此,如果您使用 auto_prepend_file 检查文件路径。它从.htaccess
调用,因此PHP无法确定错误文件和行。
答案 4 :(得分:4)
这里有一些指导如何解决它。转到:
cd /var/www
sudo chown www-data:www-data * -R
sudo usermod -a -G www-data username
使用您的用户名更改用户名。我希望它有所帮助。
答案 5 :(得分:4)
在我看来,真正的方法是:
# 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 {} \;
答案 6 :(得分:2)
今天我发现了 /home/user/public_html/index.php ,解决方法是chmod o+x /home/user
,因为这个目录必须有X,否则apache服务器无法列出文件(即执行ls
)
答案 7 :(得分:2)
这是一个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'
答案 8 :(得分:1)
在我的情况下,文件夹访问列表中缺少apache使用的组_www
,所以首先我必须添加缺少的组,如下所示:
sudo chown -R _www ~/path-to-folder
将_www
更改为以apache身份运行的任何用户或组。
使用apachectl -S
输出巨大,但最后看一下:
User: name="_www"
Group: name="_www"
答案 9 :(得分:1)
在Fedora 25中,它被证明是一个SE Linux问题,通知给出了这个对我有用的解决方案。
setsebool -P httpd_read_user_content 1
答案 10 :(得分:1)
我刚遇到同样的问题,在我的情况下,它是由selinux引起的。禁用它解决了这个问题。不,我在工作站上不需要selinux,谢谢。
答案 11 :(得分:1)
只需引用user1992554的上述答案 这个在Linux Mint中完全适合我,摆脱警告:无法打开流:权限被拒绝
cd / var / www
sudo chown www-data:www-data * -R
sudo usermod -a -G www-data username
答案 12 :(得分:0)
除权限外,问题可能是open_basedir。如果您正在使用它(我建议使用它),请在VirtualHost上检查设置:
php_admin_value open_basedir <YOUR ROOT>
答案 13 :(得分:0)
转到文件夹htdocs
cd htdocs
执行
chmod -R 755 sites
不需要sudo!
答案 14 :(得分:0)
检查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
答案 15 :(得分:0)
有一次,这也发生在我身上。当我搜索这个问题时,我知道当文件的权限被错误地设置为000(这意味着没有人可以读取,写入或执行该文件)时会发生这种情况。然后我只是将我的文件权限权限更改为Read&amp;写,它对我有用。
更改mac上的文件权限设置:右键单击特定文件,然后单击从下拉菜单中获取信息,并参阅共享和权限面板,并将权限设置更改为Read&amp;写
答案 16 :(得分:0)
这不是问题的直接答案,但我遇到了同样的问题。我在我的Ubuntu Server VPS上安装了VSFTPD。我可以上传文件,但我上传的每个文件都没有执行权限(所有文件都有权限“600”)。这些帖子解释了如何配置VSFTPD以设置文件的默认权限:
答案 17 :(得分:0)
如果您忘记为其他目录创建了Windows符号链接,并且其他目录没有适当的权限,则也会发生这种情况(特别容易引起混淆)。