在一个Ubuntu系统上配置Apache支持多个站点

时间:2024-03-28 21:08:14

查看原文请访问:http://codewenda.com/ubuntu16-04%E9%85%8D%E7%BD%AEapache%E6%94%AF%E6%8C%81%E5%A4%9A%E4%B8%AA%E7%AB%99%E7%82%B9/

怎样在一个Ubuntu的机器上(虚拟机)配置Apache支持多个网站呢?

比如你有一*立的Ubuntu虚拟机,配有一个外网的IP(45.46.47.48),并且注册了两个域名AAA.com和BBB.com,将这两个域名DNS解析到你虚机的IP地址。假设你已经安装好了Apache,一切都是默认的设置。
我们需要在这一个server上面,同时host AAA.com,BBB.com

第一步:修改hosts文件

在Ubuntu系统中,hosts文件目录为/etc/hosts,可以用vi编辑
sudo vi /etc/hosts
添加一下两行内容:
127.0.0.1 AAA.com
127.0.0.1 BBB.com

第二步:创建站点目录

默认一个站点,我们的站点目录为/var/www/html,这里我们分别为两个站点创建两个目录:
创建目录/var/www/html/AAA/, 并创建一个index.html文件,添加内容”Hello, site AAA”
然后,
创建目录/var/www/html/BBB/, 并创建一个index.html文件,添加内容”Hello, site BBB”

第三步:修改apache config文件

进入目录 /etc/apache2/sites-available/
可以看到有一个默认文件000-default.conf,我们可以直接将其作为A站点的config文件,它的内容如下:

  1. <VirtualHost*:80>
  2. ServerName AAA.com
  3. ServerAlias www.AAA.com
  4. <Directory/var/www/html/AAA/>
  5. AllowOverride All
  6. </Directory>
  7. ServerAdmin webmaster@localhost
  8. DocumentRoot /var/www/html/AAA
  9. ErrorLog ${APACHE_LOG_DIR}/error.log
  10. CustomLog ${APACHE_LOG_DIR}/access.log combined
  11. </VirtualHost>

运行命令为BBB.com创建配置文件:
sudo cp 000-default.conf 001-default.conf
修改其内容如下:

  1. <VirtualHost*:80>
  2. ServerName BBB.com
  3. ServerAlias www.BBB.com
  4. <Directory/var/www/html/BBB/>
  5. AllowOverride All
  6. </Directory>
  7. ServerAdmin webmaster@localhost
  8. DocumentRoot /var/www/html/BBB
  9. ErrorLog ${APACHE_LOG_DIR}/error.log
  10. CustomLog ${APACHE_LOG_DIR}/access.log combined
  11. </VirtualHost>

第四步:启动站点

运行命令:
sudo a2ensite 000-default.conf
sudo a2ensite 000-default.conf
如果提示需要运行apache load,你可以按照提示运行命令。

第五步:重启Apache service

运行命令:
sudo service apache2 restart

第六步:验证

你可以在浏览器中分别输入AAA.com和BBB.com查看是否和index里面的内容一致。如果和预期一致,那么就完成了Apache多站点的配置了。

是不是很简单?有问题欢迎直接留言。