刚刚安装上apache作为本地测试环境,ubuntu上apache和centos上不同,服务进程不是httpd,而是apache2,配置方法也不一样。
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)命令就可以停用这个网站。
配置虚拟主机 ↑
这个和一般的虚拟主机配置没有特别大的区别,不过apache2中多了一条Require all granted/denied,官方更新说明,下面会讲到。
上面我们已经vi了一个www.test.com.conf,我们现在干脆就用它做讲解。写入下面的内容:
代码如下 | 复制代码 |
|
从总体结构上跟其他的虚拟主机配置差不多,但是这总配置没有我们下面要提到的Require all。Apache2中增加了这一个语句,用来替换Deny from all, Allow from all。可以用下面的来实现:
代码如下 | 复制代码 |
|
但是实际上这个不是关键,只是一点小变化而已,原来的配置其实是可以继续用的。有人说使用这种方法能够解决下面的问题,但是实际上是不行的,逻辑都不对。
在用户目录创建网站时出现403 Forbidden ↑
403 forbidden的原因基本上就是权限问题了。有人说使用上面的Require all granted就可以解除了,但事实是不行的。问题跟它也有点关系,但不在于虚拟主机,而在于apache2.conf文件。vi apache.conf之后可以看到,在下方有几个
我们把web目录放到自己的目录下面,是想不需要sudo就能修改和调整网站,但是apache2不认你的目录,因为apache2为了安全起见,只允许/var/www、/usr/share下面的文件夹被访问。所以在最后一个后面再添加上一个允许的目录就可以了。例如:
代码如下 | 复制代码 |
|
这样之后,再sudo service apache2 reload,就可以访问这个目录了。当然,还有一种可能,就是apache的用户组www-data没有权限访问你的目录(权限控制的比较紧的情况下),你还要考虑chmod你的目录权限:
代码如下 | 复制代码 |
$ chmod 711 /home/user |
让目录具有可读可执行的权限。这样之后应该就可以访问你的网站了。
« WP2PCS 1.4.0版插件发布 备份网站到云盘 调用百度云盘资源到网站用