频道栏目
首页 > 资讯 > 虚拟机 > 正文

Apache403error,(13)Permissiondenied:accessto/denied问题

17-07-07        来源:[db:作者]  
收藏   我要投稿

虚拟主机(Virtual Host)是指在一个机器上运行多个网络站点 (比如:www.company1.com和www.company2.com)。 如果每个网络站点拥有不同的IP地址,则虚拟主机可以是"基于IP"的; 如果只有一个IP地址,也可以是"基于主机名"的, 其实现对最终用户是透明的。具体细节可以查看Apache官方说明。

一. “基于主机名”虚拟主机的配置

Listen81
NameVirtualHost *:81

ServerAdmin example@company.com
DocumentRootyourRoot

Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all



配置说明:

81: 为端口号,可以是其他现在系统未用的端口

yourRoot: Linux下格式形如: /export/www注意最后没有"/"

将上面的添加到apache的配置文件httpd.conf(linux下在/usr/local/apache2/conf/,视具体情况而定),然后重新启动Apache.

注意:

要配置基于主机名的虚拟主机,必须保留原有的80端口。

二. 查看配置是否成功

在浏览器中输入 http://localhost:81 查看是否配置成功。

三. 常见问题常见解决方案

当在浏览器中查看配置成功与否出现问题时,可优先到Apache官方网站的FAQ上或用搜索引擎搜索你的问题。

我这里就最常见403问题:

Forbidden

You don't have permission to access / on this server.

提供几种常见的解决方法:

1.按上面的配置正确,特别是:

Order allow,deny
Allow from all

2.确保youRoot文件夹下有index.html文件(或名为index而后缀为其他形式(如.jsp .PHP等)的文件),因为Apache默认以index.html为网站首页,如果没有这个文件就会出现上面的403错误。

注:如果你想以其他形式的文件(如:index.jsp或index.php等)作为出现的网页,可将Apache的配置文件中的:


DirectoryIndex index.html


改为(如你想用index.jsp):


DirectoryIndex index.htmlindex.jsp

如果需要浏览该文件夹下的内容,可以在前添加:

Options Indexes

就可以了。
3. 针对linux用户,windows或其他用户一般没这种情况。linux系统中一般会自带apache,在修改了配置文件后,最好到安装Apache的目录下重启Apache。


如果是CentOS系统,则有可能以下原因

检查了一圈httpd.conf和目录权限,均没有发现问题。

最后,看了这篇文章,发现是因为系统启动了SELINUX导致的。

http://stackoverflow.com/questions/8816836/apache-403-error-13permission-denied-access-to-denied-fedora-16

 

关闭SELINUX

setenforce 0

 

vim /etc/selinux/config

修改

SELINUX=enforcing

改成

SELINUX=disabled

 

 

细检查了一遍配置文件httpd.conf,找到这么一段:

代码如下 复制代码

Options FollowSymLinks
AllowOverride None
Order deny,allow
deny from all
Satisfy all

然后试着把deny from all中的deny改成了allow,保存后重起了apache,然后再一测试我的网页


apache

解决Apache下403 Forbidden错误

正 文:
今天在公司电脑上安装Apache,版本2.2.8,装完刚测试可以;配置了下php的php.in文件再次localhost打开发现错误:HTTP 错误 403 - 禁止访问,即403 Forbidden:You don't have permission to access / on this server.权限又不够了?


马上打开apache的配置文件httpd.conf,逐行检查。在大约快一半的地方有以下这段代码:

代码如下 复制代码



Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all

发现了吧。由于配置了php后,这里的“Deny from all”已经拒绝了一切连接。把该行改成“allow from all”,修改后的代码如下,问题解决。

 

代码如下 复制代码

Options FollowSymLinks
AllowOverride None
Order deny,allow
allow from all


系统是centos,You don't have permission to access / on this server.

在google上搜索了一下,大部分的解决方法就是。

代码如下 复制代码

Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
这里改成


Options Indexes FollowSymLinks
AllowOverride None

>
我改了之后还是会出现上面的错误,于是看一下自己设定的工作目录权限。

代码如下 复制代码
Options ExecCGI Includes

改成下面这行设置后,显示正常。

代码如下 复制代码
Options Indexes FollowSymLinks

当访问类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,看是否解决问题

相关TAG标签
上一篇:Git解析
下一篇:JS浮点数计算BUG
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站