linux显示you don't have permission to access

如题所述

你这个应该是目录没有权限,下面是apache服务出现这个情况。

项目部署到Apache Http Server上面,通过apachectl -t 检测配置文件也没有问题。可是通过浏览器访问,却出现了“you don't have permission to access / on this server”.
项目部署到Apache Http Server上面,通过apachectl -t 检测配置文件也没有问题。可是通过浏览器访问,却出现了“you don't have permission to access / on this server”.
1、首先,查看conf.d/python.conf文件
<Directory "项目路径">
Options Indexes FollowSymLinks +Includes
AllowOverride None
Order allow,deny
Allow from all
</Directory>
上面标红部分,表示允许任何人访问目录
2、其次,既然配置文件没有问题,那就需要考虑http.conf文件中指定的用户和组的访问权限。在Apache的wiki上有关于PermissionDenied的解决方法,链接是http://wiki.apache.org/httpd/13PermissionDenied,译文如下:
Error 13 指的是文件系统的访问权限错误。也就是由于错误的权限,apache被拒绝访问。一般的来说,这并不意味着是Apache配置文件存在错误。
为了给文件提供服务,Apache必须有适当的权限去访问那些文件,这些权限是由操作系统授予的。特别是在httpd.conf文件中指定User或者Group必须能够读取所有被服务的文件,以及查找包含那些文件的目录和所有的父目录直至文件系统的根。
一个类unix操作系统上不属于httpd.conf文件中指定的User或Group的资源的典型访问权限,对于普通的文件是644 -rw-r--r--,对于文件夹或者CGI脚本是755 drwxr-x-r-x。你也可能需要去查看操作系统所支持的扩展的访问权限(例如SELinux访问权限).
例子
当访问类unix操作系统上的/usr/local/apache2/htdocs/foo/bar.htm文件时,你收到了Permission Denied的错误。
首先,查看文件的访问权限:
$ cd /usr/local/apache2/htdocs/foo
$ ls -l bar.htm
如果须要的话,就修复它们:
$ chmod 644 bar.html
对文件夹以及每个父文件夹做相同的操作(/usr/local/apache2/htdocs/foo,/usr/local/apache2/htdocs,/usr/local/apache2,/usr/local/,/usr):
$ ls -la
$ chmod +x
$ cd ..
$ #repeat up to the root
在一些系统上,可使用工具namei来列出各个路径上的不同组件的访问权限,然后去发现是否有权限问题:
$ namei -m /usr/local/apache2/htdocs/foo/bar.html
3、最后,如果还是没有解决问题,那么需要查看扩展的访问权限。
使用setenforce 0关闭SELinux,看是否解决问题。
我遇到的问题是http.conf文件中所指定的用户没有访问项目所在目录的权限。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-06-25
1)关闭selinux 。坑,服务器根本就没开启selinux
2)修改 httpd.conf 中的 allow from all!坑,Apache都2.4+,根本就不存在 allow from all ,现在改为了 Require all granted!
3)修改 chcon -R httpd_user_content_t !坑,误人子弟,CentOS7 中根本就没这样一个上下文,因为selinux根本就没开启
4)修改 chown apache: -R /home/xxx.com/public_html!误人子弟,坑比!这样把目录改了,他本来的用户却没有目录访问权限了!逗比!!!
第2个回答  2017-06-24
说明你没有权限浏览或打开,可以通过命令 ls -al 文件夹或文件名 来查看权限