什么是虚拟主机?当你的一台服务器上面运行多个多个网站,每个网站都是一个虚拟主机!
vim /usr/local/apache2.4/conf/httpd.conf //搜索httpd-vhost,去掉#
vim /usr/local/apache2/conf/extra/httpd-vhosts.conf //改为如下定义多个server name
<VirtualHost *:80>
ServerAdmin [email protected].com
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/haha.com"
ServerName www.haha.com
ErrorLog "logs/haha.com-error_log"
CustomLog "logs/haha.com-access_log" common
</VirtualHost>
以上每个VitualHost都对应一个站点,如上是两个自定义配置文件!
2.1 两个核心的配置:
ServerAdmin 用来定义管理员邮箱,可以自定义 ServerAlias www.abc.com www.123.com 可以指定多个域名
2.2 然后返回根据所配置的文件创建目录
mkdir -p /data/wwwroot/
mkdir -p /data/wwwroot/abc.com
mkdir -p /data/wwwroot/haha.com
2.3 创建各个站点的页面
vim /data/wwwroot/abc.com/index.php
<?php
echo "welcome access abc.com";
vim data/wwwroot/haha.com/index.php
<?php
echo "welcome access haha.com";
/usr/local/apache2.4/bin/apachectl –t
/usr/local/apache2.4/bin/apachectl graceful
由于这种域名(abc.com;123.com;haha.com)早就被人注册掉了,所以几乎是都在使用的状态,所以我们必须更改hosts然后才可以正常测试:
[root@zhdy-02 ~]# vim /etc/hosts
或者是使用curl命令:效果如下:
[[email protected] ~]# curl -x192.168.59.130:80 abc.com
welcome access abc.com
[[email protected] ~]# curl -x192.168.59.130:80 www.haha.com
welcome access haha.com
一旦我们自定义了vhost,默认的www.example.com 和 ServerName就会失效!