Apache服务器的架设(虚拟主机)
2012-05-18 20:15
239 查看
前言:一些公司拥有多个网站,可是每个网站不可能在一台服务器上跑,因为成本太高了,然而虚拟主机可以解决该问题,虚拟主机使得一台服务器可以运行多个网站。而配置虚拟主机的方法有三种,分别是:基于IP地址不同端口的虚拟主机、基于不同IP地址的虚拟主机、基于域名的虚拟主机这三种,下面就对他们各自进行详述吧!
1. 检查是否安装了Apache的相关组件,同时关闭掉防火墙先(免得忘记,^_^),截图如下:
2. 配置基于IP地址不同端口的虚拟主机:配置一台虚拟主机,其Ip地址为192.168.10.100,分别使用8000和8080端口,其Web站点的根目录分别为/var/www/html/IP_8000和/var/www/html/IP_8080。同时在IP_8000目录和IP_8080目录下分别建立Index.html文件,并分别在Index.html文件中添加一些内容。截图如下:
3. 查看一下网卡的IP地址,如果网卡的Ip地址不是我们所需要的那个IP地址的话,我们可以创建临时起作用的IP地址,输入命令“ifconfig
eth0 192.168.10.100 netmask 255.255.255.0”.查看一下网卡IP地址截图如下:
4. 编辑/etc/httpd/conf/httpd.conf文件,设置其内容,在配置文件的最后面就是虚拟主机的设置,这里只截关键的图,截图如下:
架设同一IP地址不同端口的多个虚拟主机时,Listen参数值为端口号,而在<VirtualHost IP地址:端口号>语句块中,指定了DocumentRoot参数值就制定虚拟主机的站点目录。
5. 输入命令“service
httpd restart”,重启httpd服务,同时在windows计算机中启动IE,地址栏中输入:http://192.168.10.100:8000,和http://192.168.10.100:8080,显示如下图所示:
6. 基于相同IP地址不同端口的虚拟主机测试成功。
7. 基于不同IP地址的虚拟主机:配置一台虚拟主机,其Ip地址分别是192.168.10.100和192.168.10.196,其web站点的根目录为/var/www/html/IP_100和/var/www/html/IP_196.并且在IP_100和IP_196两个目录下分别创建Index.html文件,并写入一些内容到Index.html文件中。截图如下:
8. 由于我的虚拟机上用了两块网卡,eth0的IP地址是192.168.10.196,另一块网卡eth1的IP地址是192.168.10.100,所以我就决定用着两块网卡来做实验,如果你只有一块网卡的话,那么你也不用着急怕做不了这个实验,因为Linux中的网卡支持虚拟子接口,所以使用“ifconfig
eth0:0 192.168.10.100”和“ifconfig eth0:1 192.168.10.196”就可以实现了,但是要让这些子接口有效的话,一定要保证eth0这个网卡是启动有效的。由于我有两块网卡,所以我就用两块网卡做实验,截图如下:
9. 编辑/etc/httpd/conf/httpd.conf文件,设置其内容,在配置文件的最后面就是虚拟主机的设置,添加下面截图的内容,这里只截关键的图,截图如下:
10.输入命令“service
httpd restart”,重启httpd服务,同时在windows计算机中启动IE,地址栏中输入http://192.168.10.100,和http://192.168.10.196显示虚拟主机的主页如下:截图如下:
11.基于不同IP地址的虚拟主机测试成功
12.基于域名的虚拟主机:配置一虚拟主机,其IP地址为192.168.10.100,设置两个虚拟主机,其域名分别是product.redhat.com和service.redhat.com.(注:由于我的DNS服务器已经搭建好了,用的域名是redhat.com,在这里我就不再做详细介绍,可以去看《DNS服务器的架设》这份文档,这里就把主区域和反向区域进行截图)。我们在/var/www/http/目录下分别建立Vhost_service和Vhost_product目录,并分别在两个目录中创建Index.html文件,截图如下:
13.创建DNS服务器的配置文件,输入命令“vim
/var/named/chroot/etc/named.conf”,文件内容如下:
14.编辑redhat.com这个域的正向区域文件,输入命令“vi
/var/named/chroot/var/named/yangzexin.redhat.com”,编辑的内容如下,product.redhat.com和service.redhat.com与IP地址192.168.10.100的对应关系。
15.编辑redhat.com这个域的反向区域文件,输入命令“vi
/var/named/chroot/var/named/192.168.10.in-addr.arpa”,编辑的内容如下,IP地址192.168.10.100和域名product.redhat.com和service.redhat.com的对应关系。
16.启动named守护进程,输入命令“service
named Start”
17.编辑/etc/httpd/conf/httpd.conf文件,添加内容如下,截图如下:
架设不同域名的多个虚拟主机是,<VirtualHost IP地址:端口号>语句块的Servicename参数值就是虚拟主机的域名,DocumentRoot参数值就是指定虚拟主机的站点目录。
18.重启httpd守护进程,输入命令“service
httpd restart”重启。
19.在windows计算机下打开IE浏览器,在地址栏输入:http://service.redhat.com和http://product.redhat.com将分别显示/var/www/html/Vhost_service和
/var/www/html/Vhost_product目录下Index.html文件的内容,如图所示:
配置时出现的问题及解决方法有:
# service httpd start
问题一:配置apache多个虚拟主机以后,重启,出现以下错误提示:
[warn] NameVirtualHost *:80 has no VirtualHosts
原因:NameVirtualHost语法错误,对于同一主机支持多个虚拟主机的情况,只需要命名一次NameVirtualHost,如果在每个虚拟主机配置文件中都加上NameVirtualHost *:80
,则会报这个警告。
原来在/etc/apache2/ports.conf中定义了*:80的 VirtualHost。找到了这个后呢,接下来一切就都顺利了。删除之前添加的NameVirtualHost,将所有vhost相应的地方都改成*:80。OK,一切非常顺利地解决了。
NameVirtualHost 192.168.1.232在所有httpd.conf中只需添加一次,如果添加多次也会出现上述错误。
问题二:You don't have permission to access /hello.php on this server
配置apache后访问网页出现“HTTP 错误 403 - 禁止访问,即
403 Forbidden:You don't have permission to access / on this server”。
这是由于你更改了你的DocumentRoot,而更改了这个默认值后,下面还有一个值是要随着更改的。就在它下面不远的地方,有这样一段:
#
# This should be changed to whatever you set DocumentRoot to.
#
<Directory "\Your_New_DocumentRoot">
中括号里的内容就是你更改的新值。这样就不会出现403错误了。
<Directory "/var/www/html1/">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
如果是Deny from all,则把Deny from all中的Deny改成了Allow,保存后重起了apache,然后再一测试我的网页
参考:http://yangzexin07.blog.51cto.com/767128/227848/
1. 检查是否安装了Apache的相关组件,同时关闭掉防火墙先(免得忘记,^_^),截图如下:
2. 配置基于IP地址不同端口的虚拟主机:配置一台虚拟主机,其Ip地址为192.168.10.100,分别使用8000和8080端口,其Web站点的根目录分别为/var/www/html/IP_8000和/var/www/html/IP_8080。同时在IP_8000目录和IP_8080目录下分别建立Index.html文件,并分别在Index.html文件中添加一些内容。截图如下:
3. 查看一下网卡的IP地址,如果网卡的Ip地址不是我们所需要的那个IP地址的话,我们可以创建临时起作用的IP地址,输入命令“ifconfig
eth0 192.168.10.100 netmask 255.255.255.0”.查看一下网卡IP地址截图如下:
4. 编辑/etc/httpd/conf/httpd.conf文件,设置其内容,在配置文件的最后面就是虚拟主机的设置,这里只截关键的图,截图如下:
架设同一IP地址不同端口的多个虚拟主机时,Listen参数值为端口号,而在<VirtualHost IP地址:端口号>语句块中,指定了DocumentRoot参数值就制定虚拟主机的站点目录。
5. 输入命令“service
httpd restart”,重启httpd服务,同时在windows计算机中启动IE,地址栏中输入:http://192.168.10.100:8000,和http://192.168.10.100:8080,显示如下图所示:
6. 基于相同IP地址不同端口的虚拟主机测试成功。
7. 基于不同IP地址的虚拟主机:配置一台虚拟主机,其Ip地址分别是192.168.10.100和192.168.10.196,其web站点的根目录为/var/www/html/IP_100和/var/www/html/IP_196.并且在IP_100和IP_196两个目录下分别创建Index.html文件,并写入一些内容到Index.html文件中。截图如下:
8. 由于我的虚拟机上用了两块网卡,eth0的IP地址是192.168.10.196,另一块网卡eth1的IP地址是192.168.10.100,所以我就决定用着两块网卡来做实验,如果你只有一块网卡的话,那么你也不用着急怕做不了这个实验,因为Linux中的网卡支持虚拟子接口,所以使用“ifconfig
eth0:0 192.168.10.100”和“ifconfig eth0:1 192.168.10.196”就可以实现了,但是要让这些子接口有效的话,一定要保证eth0这个网卡是启动有效的。由于我有两块网卡,所以我就用两块网卡做实验,截图如下:
9. 编辑/etc/httpd/conf/httpd.conf文件,设置其内容,在配置文件的最后面就是虚拟主机的设置,添加下面截图的内容,这里只截关键的图,截图如下:
10.输入命令“service
httpd restart”,重启httpd服务,同时在windows计算机中启动IE,地址栏中输入http://192.168.10.100,和http://192.168.10.196显示虚拟主机的主页如下:截图如下:
11.基于不同IP地址的虚拟主机测试成功
12.基于域名的虚拟主机:配置一虚拟主机,其IP地址为192.168.10.100,设置两个虚拟主机,其域名分别是product.redhat.com和service.redhat.com.(注:由于我的DNS服务器已经搭建好了,用的域名是redhat.com,在这里我就不再做详细介绍,可以去看《DNS服务器的架设》这份文档,这里就把主区域和反向区域进行截图)。我们在/var/www/http/目录下分别建立Vhost_service和Vhost_product目录,并分别在两个目录中创建Index.html文件,截图如下:
13.创建DNS服务器的配置文件,输入命令“vim
/var/named/chroot/etc/named.conf”,文件内容如下:
14.编辑redhat.com这个域的正向区域文件,输入命令“vi
/var/named/chroot/var/named/yangzexin.redhat.com”,编辑的内容如下,product.redhat.com和service.redhat.com与IP地址192.168.10.100的对应关系。
15.编辑redhat.com这个域的反向区域文件,输入命令“vi
/var/named/chroot/var/named/192.168.10.in-addr.arpa”,编辑的内容如下,IP地址192.168.10.100和域名product.redhat.com和service.redhat.com的对应关系。
16.启动named守护进程,输入命令“service
named Start”
17.编辑/etc/httpd/conf/httpd.conf文件,添加内容如下,截图如下:
架设不同域名的多个虚拟主机是,<VirtualHost IP地址:端口号>语句块的Servicename参数值就是虚拟主机的域名,DocumentRoot参数值就是指定虚拟主机的站点目录。
18.重启httpd守护进程,输入命令“service
httpd restart”重启。
19.在windows计算机下打开IE浏览器,在地址栏输入:http://service.redhat.com和http://product.redhat.com将分别显示/var/www/html/Vhost_service和
/var/www/html/Vhost_product目录下Index.html文件的内容,如图所示:
配置时出现的问题及解决方法有:
# service httpd start
问题一:配置apache多个虚拟主机以后,重启,出现以下错误提示:
[warn] NameVirtualHost *:80 has no VirtualHosts
原因:NameVirtualHost语法错误,对于同一主机支持多个虚拟主机的情况,只需要命名一次NameVirtualHost,如果在每个虚拟主机配置文件中都加上NameVirtualHost *:80
,则会报这个警告。
原来在/etc/apache2/ports.conf中定义了*:80的 VirtualHost。找到了这个后呢,接下来一切就都顺利了。删除之前添加的NameVirtualHost,将所有vhost相应的地方都改成*:80。OK,一切非常顺利地解决了。
NameVirtualHost 192.168.1.232在所有httpd.conf中只需添加一次,如果添加多次也会出现上述错误。
问题二:You don't have permission to access /hello.php on this server
配置apache后访问网页出现“HTTP 错误 403 - 禁止访问,即
403 Forbidden:You don't have permission to access / on this server”。
这是由于你更改了你的DocumentRoot,而更改了这个默认值后,下面还有一个值是要随着更改的。就在它下面不远的地方,有这样一段:
#
# This should be changed to whatever you set DocumentRoot to.
#
<Directory "\Your_New_DocumentRoot">
中括号里的内容就是你更改的新值。这样就不会出现403错误了。
<Directory "/var/www/html1/">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
如果是Deny from all,则把Deny from all中的Deny改成了Allow,保存后重起了apache,然后再一测试我的网页
参考:http://yangzexin07.blog.51cto.com/767128/227848/
相关文章推荐
- Apache服务器的架设(虚拟主机) 推荐
- apache服务器—虚拟目录+虚拟主机
- Apache下服务器虚拟主机设置方法介绍
- apache服务器一个ip(如:127.0.0.1)和多个域名(虚拟主机)的绑定
- Apache服务器虚拟主机和别名配置及问题
- 服务器 | 用phpStudy配置Apache虚拟主机
- Apache服务器配置多个虚拟主机
- [Linux]Apache下服务器虚拟主机设置技术深入解析[1]
- 搭建Apache服务器的虚拟主机
- [Linux]Apache下服务器虚拟主机设置技术深入解析[2]
- Apache服务器搭建--基于域名的虚拟主机
- 菜鸟学Linux之八:LAMP架构之Apache服务器的虚拟主机创建与部署
- Apache服务器实现基于名称的虚拟主机服务 推荐
- 一台主机利用apache服务器开启虚拟主机后无法使用www域名解决方法
- Apache服务器配置虚拟主机
- apache服务器配置虚拟主机
- Linux运维实战之Apache服务器的高级配置(虚拟主机、status)
- Web服务器(Apache)虚拟主机的配置
- Web服务器(Apache)虚拟主机的配置
- RHEL6.3配置Apache服务器(2) 构建虚拟主机