一台服务器可以访问多个网站,每个网站都是一个虚拟主机 概念:域名(主机名)、DNS、解析域名、hosts 任何一个域名解析到这台机器,都可以访问的虚拟主机就是默认虚拟主机

1、默认虚拟主机 这个站点就是默认的虚拟主机

2、设置自定义虚拟主机(第一个为默认) vim /usr/local/apache2/conf/httpd.conf //搜索httpd-vhost,去掉# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf 这个是虚拟主机配置文件//改为如下

<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/abc.com"
    ServerName abc.com
    ServerAlias www.abc.com www.123.com
    ErrorLog "logs/abc.com-error_log"
    CustomLog "logs/abc.com-access_log" common
</VirtualHost>
<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/111.com"
    ServerName 111.com
    ServerAlias www.111.com
    ErrorLog "logs/111.com-error_log"
    CustomLog "logs/111.com-access_log" common
</VirtualHost>

ServerAdmin这个用来定义管理员的邮箱,要不要无所谓,可以删除 DocumentRoot这个用来定义网站的根目录在哪 ServerAlias 别名 ErrorLog指定错误日志 CustomLog指定访问日志

3、测试上面配置的虚拟主机 首先创建目录

mkdir /data/wwwroot/
mkdir /data/wwwroot/abc.com
mkdir /data/wwwroot/111.com

在目录中添加一个PHP代码文件 vim /data/wwwroot/abc.com/index.php //内容如下

<?php
echo "abc.com"
?>

vim /data/wwwroot/111.com/index.php //内容如下

<?php
echo "111.com"
?>

4、使上面配置生效 /usr/local/apache2/bin/apachectl –t //测试语法 /usr/local/apache2/bin/apachectl graceful //重新加载配置文件,不会重启服务

5、 编辑vi /etc/hosts文件来设置abc.com访问到本机上 或者curl命令用法:

curl -x192.168.111.120:80 abc.com
curl -x192.168.111.120:80 www.abc.com
curl -x192.168.111.120:80 111.com