一、apache虚拟主机
一台服务器可以访问多个网站,每个网站都是一个虚拟主机 概念:域名(主机名)、DNS、解析域名、hosts 任何一个域名解析到这台机器,都可以访问的虚拟主机就是默认虚拟主机。
1. windows下host用法
第一步:按下图找到host文件
第二步:按下图添加域名;
第三步:ping 设置的域名是否通畅;
Microsoft Windows [版本 10.0.17134.112]
(c) 2018 Microsoft Corporation。保留所有权利。
C:\Users\zqsgq>www.abc.com
'www.abc.com' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
C:\Users\zqsgq>ping www.abc.com
正在 Ping www.abc.com [192.168.112.136] 具有 32 字节的数据:
来自 192.168.112.136 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.112.136 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.112.136 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.112.136 的回复: 字节=32 时间<1ms TTL=64
192.168.112.136 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 0ms,最长 = 0ms,平均 = 0ms
C:\Users\zqsgq>ping test.com
正在 Ping www.abc.com [192.168.112.136] 具有 32 字节的数据:
来自 192.168.112.136 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.112.136 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.112.136 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.112.136 的回复: 字节=32 时间<1ms TTL=64
192.168.112.136 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 0ms,最长 = 0ms,平均 = 0ms
C:\Users\zqsgq>ping ying.com
正在 Ping www.abc.com [192.168.112.136] 具有 32 字节的数据:
来自 192.168.112.136 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.112.136 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.112.136 的回复: 字节=32 时间=1ms TTL=64
来自 192.168.112.136 的回复: 字节=32 时间<1ms TTL=64
192.168.112.136 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 0ms,最长 = 1ms,平均 = 0ms
C:\Users\zqsgq>
第四步:在浏览器访问域名
2. linux下配置虚拟主机
第一步:编辑配置文件httpd.conf,去掉以下的#号,使虚拟主机的配置文件生效
# Virtual hosts
Include conf/extra/httpd-vhosts.conf //去掉#号 加载虚拟主机的配置文件
第二步:进入虚拟主机配置文件中;
以下内容需要更改
<VirtualHost *:80>
ServerAdminwebmaster@dummy-host.example.com //定义管理员的邮箱
DocumentRoot "/usr/local/aprche2.4/docs/dummy-host.example.com"
ServerNamedummy-host.example.com
ServerAliaswww.dummy-host.example.com
ErrorLog "logs/dummy-host.example.com-error_log"
CustomLog "logs/dummy-host.example.com-access_log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdminwebmaster@dummy-host2.example.com
DocumentRoot "/usr/local/aprche2.4/docs/dummy-host2.example.com"
ServerNamedummy-host2.example.com
ErrorLog "logs/dummy-host2.example.com-error_log"
CustomLog "logs/dummy-host2.example.com-access_log" common
</VirtualHost>
更改为以下内容:
<VirtualHost *:80>
DocumentRoot "/data/wwwroot/abc.com" //定义网站的根目录
ServerNameabc.com //定义域名,只能写1个
ServerAliaswww.abc.comwww.123.com //定义别名,可以写多个
ErrorLog "logs/abc.com-error_log" //定义错误日志
CustomLog "logs/abc.com-access_log" common //定义访问日志
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/data/wwwroot/111.com"
ServerName111.com
ServerAliaswww.example.com
ErrorLog "logs/111.com-error_log"
CustomLog "logs/111.com-access_log" common
</VirtualHost>
第三步: 创建和虚拟主机对应的站点根目录,以及新建相应index.php
[root@ying01 php-7.1.6]# mkdir /data/wwwroot/[root@ying01 php-7.1.6]# mkdir /data/wwwroot/abc.com[root@ying01 php-7.1.6]# mkdir /data/wwwroot/111.com[root@ying01 php-7.1.6]# vim /data/wwwroot/abc.com/index.php[root@ying01 php-7.1.6]# vim /data/wwwroot/111.com/index.php[root@ying01 php-7.1.6]# /usr/local/apache2.4/bin/apachectl -t //需要检查配置语法[root@ying01 php-7.1.6]# /usr/local/apache2.4/bin/apachectl graceful //需要加载
第四步:ping 设置的www.abc.com