ubuntu14.04 and apache2 添加自己的web应用,403 forbidden

1、ubuntu14.04 and apache2 添加自己的web应用

1> 安装apache2:apt-get install  apache2

2>修改目录权限

chown -R www-data /usr/local/ixp
chmod -R u+rX /usr/local/ixp
chmod -R u+w /usr/local/ixp/var
3> 修改 /etc/apache2/apache2.conf 添加应用DocumentRoot



4>修改/etc/apache2/sites-enabled/000-default.conf



2、ubuntu14.04 +apache2环境: Forbidden You don't have permission to access on this server. 403 forbidden

这种问题不是权限问题就是没有索引或apache中的目录配置问题。

buntu上apache和centos上不同,服务进程不是httpd,而是apache2,配置方法也不一样。

apache的配置文件在/etc/httpd目录下面httpd.conf,虚拟主机的配置文件conf.d/vhost.conf。而Apache2的配置目录则是/etc/apache2,其下的apache2.conf是总配置文件,引用了mods-available、mods-enabled、sites-available、sites-enabled这几个目录下的.load和.conf文件。它的逻辑更加简单,即apache2.conf作为总配置文件,把一些基础的配置放在这里,mods-available、sites-available里面则放可用的模块和网站配置。“可用”不是说“已启用”,如果要启用这些“可用”的模块或配置,需要在对应的enabled目录下放一个软连接。

下面举一个例子:

$ sudo vi /etc/apache2/sites-available/www.test.com.conf
这样就创建了这个conf文件,但是它不会马上用于配置中,即使你restart一下服务,也不会让它生效。要生效,必须先“启用”它,并且reload服务。

 代码如下 复制代码

$ sudo ln -s /etc/apache2/sites-available/www.test.com.conf /etc/apache2/sites-enabled/www.test.com.conf

然后再来执行reload:

 代码如下 复制代码

$ sudo service apache2 reload

才能更新配置,让配置生效。不过apache2提供了一个操作,不需要我们自己使用ln -s命令来实现软链接。这个命令如下:

 代码如下 复制代码
$ sudo a2ensite /etc/apache2/sites-available/www.test.com.conf

a2ensite相当于apache2 enable site的缩写,意思是说“启用网站”,实际上是把sites-available目录下的对应的conf文件做一个软链接到sites-enabled目录下。使用这句命令后再reload一下服务,就可以启用这个网站了。同样的道理,使用a2dissite(apache2 disable site)命令就可以停用这个网站。

从总体结构上跟其他的虚拟主机配置差不多,但是这总配置没有我们下面要提到的Require all。Apache2中增加了这一个语句,用来替换Deny from all, Allow from all。

403 forbidden的原因基本上就是权限问题了。有人说使用上面的Require all granted就可以解除了,但事实是不行的。问题跟它也有点关系,但不在于虚拟主机,而在于apache2配置文件。vi apache.conf之后可以看到,在下方有几个<Directory></Directory>进行的权限控制,其中就有require all语句。

可能一:

我们把web目录放到自己的目录下面,是想不需要sudo就能修改和调整网站,但是apache2不认你的目录,因为apache2为了安全起见,只允许/var/www、/usr/share下面的文件夹被访问。所以在最后一个</Directory>后面再添加上一个允许的目录就可以了。例如:

 代码如下 复制代码

<Directory /home/user/websites>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

这样之后,再sudo service apache2 reload,就可以访问这个目录了。

可能二:

可能apache的用户组www-data没有权限访问你的目录(权限控制的比较紧的情况下),你还要考虑chmod你的目录权限:

 代码如下 复制代码

$ chmod 711 /home/user
$ chmod 755 /home/user/websites

让目录具有可读可执行的权限。这样之后应该就可以访问你的网站了。

可能三:/etc/apache2/sites-enabled  查看唯一的000-default文件,看看VirtualHost的值是否为该host地址或*,另外查看是否添加了DocumentRoot为用户自定义应用的目录,如下红色标示:

VirtualHost *:80>

      ........

             <Directory /用户应用目录/>

       </Directory>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值