Apache配置虚拟主机

一个web服务器一般都会为多个网站服务,所以都会对其配置虚拟主机。

由于开发测试需要,我在服务器上对Apache进行了虚拟主机配置。

首先确认是否开启了vhost-alias 模块,没有开启最好开启。

然后进行如下配置:

1、编辑httpd.conf 文件

vim /usr/local/httpd/conf/httpd.conf

找到

# Virtual hosts
#Include conf/extra/httpd-vhosts.conf

一般都是去掉Include这一行前面的注释,把所有虚拟主机配置在conf/extra/httpd-vhosts.conf这个文件里

我并不是很推荐这样配置,下面我介绍我的配置方法

在conf下面创建一个文件夹名为vhost,并为每个虚拟主机创建一个配置文件,比如renyiwei.com这个网站对应配置文件renyiwei.com.conf

如果每个虚拟主机端口都是一致的,比如81,那么将NameVirtualHost *:81这一配置项加到httpd.conf这个配置文件中。

因此,我一般把上面那一行改为

# Virtual hosts
Include conf/vhost/*.conf 

这样可以引入vhost文件夹下面所有后缀为.conf的配置文件,如过暂时想关闭这个虚拟主机,我们也只需修改这个配置文件的后缀,这种方法是模仿lnmp一键安装包对于nginx虚拟主机配置的方法。

2、在vhost文件夹下创建renyiwei.com.conf这个配置文件:

文件内容如下:

 #我服务器上的80端口已被nginx监听,所以我这里用了81端口
#如果整个apache都只监听81端口的话,修改httpd.conf里面的Listen后面的端口号
<VirtualHost *:81>
    ServerAdmin renyiwei@foxmail.com
    DocumentRoot "/home/www/renyiwei/htdocs" #网站的根目录
    ServerName renyiwei.com #网站绑定的域名
    ServerAlias www.renyiwei.com #绑定的其他域名 vhost-alias模块可以让一个虚拟主机绑定多个域名
</VirtualHost>

这个文件也可以从conf/extra/httpd-vhosts.conf复制过来进行修改

3、修改完之后需要重启一下

service httpd restart

4、这样我们就配置完成了,我们可以通过浏览器输入地址:http://www.renyiwei.com:81去进行访问。

当然,仅仅这样配置还会出现很多问题。

常见的错误:403 Forbidden

403_forbidden

这种错误安装apache之后经常碰到,首先我们先去httpd.conf这个文件看一下

找到类似如下这一段:

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow  #这里是控制访问的,顺序为先拒绝后允许
    Deny from all #这一行已经拒绝所以访问
</Directory>

如果配置像上面这样的,我们需要修改一下:

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order allow,deny #顺序改为先允许,后拒绝
    Allow from all #允许所有
</Directory>

然后重启一下apache再刷新页面看一下。

如果还出现403错误,我们再去虚拟主机绑定的目录去看一下是否有文件,假如下面有一个index.php的文件,那我们地址栏输入http://www.renyiwei.com:81/index.php这样的地址去访问,如果能访问到,那么我们进行下面配置:

出现这样的问题是因为默认的索引文件中没有index.php

有两种方式可以给apache添加索引文件

1、在httpd.conf这里配置(这个是修改全局的,假如配置虚拟主机的时候没有指定,那就会以这里为准)

找到如下代码:

<IfModule dir_module>
    DirectoryIndex index.html  #如果这里只有index.html 那我们在后面自行添加
</IfModule>

修改后的代码为:

<IfModule dir_module>
    DirectoryIndex index.html index.php 
    #默认索引文件按这里的顺序,如果有index.html默认就会显示index.html如果没有则会显示index.php
</IfModule>

修改之后重启,刷新页面即可

2、在虚拟主机文件里面配置,比如我刚才renyiwei.com.conf

<VirtualHost *:81>
    ServerAdmin renyiwei@foxmail.com
    DocumentRoot "/home/www/renyiwei/htdocs" #网站的根目录
    ServerName renyiwei.com #网站绑定的域名
    ServerAlias www.renyiwei.com #绑定的其他域名 vhost-alias模块可以让一个虚拟主机绑定多个域名
    DirectoryIndex index.html index.php #如果不想修改全局的,而是针对单个修改,则在这里添加一条
</VirtualHost>

本文出自 全栈笔记 版权所有,你可以在保留原文地址:Apache配置虚拟主机 及作者的情况下到你的网站或博客。

【上一篇】
【下一篇】

您可能感兴趣的文章:

发表评论

您必须 登录 后才能发表评论。