RHEL / CentOS 建立 Apache 虚拟主机


要在一部主机上面存放多个网站, 可以透过 Apache 的 Virtual Host 实现。以下会示范在 RHEL 及 CentOS 建立 Apache Virtual Host 的方法。

在开始前, 先要建立存放网站的目录, 即 Document Root, 在 CentOS 下 Apache 的默认目录是 /var/www/html, 以下会以 website01.com 及 website02.com 为例, 在 /var/www/ 下建立两个网站的 Document Root, 以及为两个网站建立纪录档的目录:

# mkdir /var/www/website01.com
# mkdir /var/www/website02.com

上面建立 Document Root, 接着是建立了存放纪录档的目录:

# mkdir /var/log/httpd/website01.com
# mkdir /var/log/httpd/website02.com

然后为两个网站建立一个测试页面, 内容如下:

将上面内容放到 website01.comr 及 website02.com 的 Document Root 下, 储存为 index.php:

# vi /var/www/website01.com/index.php
# vi /var/www/website02.com/index.php

将 Document Root 的 owner 改为 Apache:

# chown -R apache:apache /var/www/website0*

下一步是设定 Apache, 让 Apache 可以按 hostname 处理不同网站内容。为以上两个网站建立 Apache 的 .conf 档:

website01.com:

# vi /etc/httpd/conf.d/website01.com.conf

加入以下内容:

website02.com:

# vi /etc/httpd/conf.d/website02.com.conf

加入以下内容:

建立以上两个网站的 Apache .conf 档案后, 需要重新加载 Apache:

# systemctl reload httpd

然后是开放防火墙:

FirewallD:

# firewall-cmd –permanent –zone=public –add-service=http
# firewall-cmd –reload

iptables:

# iptables -A INPUT -p tcp -m tcp –dport 80 -j ACCEPT
# /etc/init.d/iptables save

最后一步就是在 DNS 服务器, 设定两个 Domain 指到以上网页服务器的 IP, 如果用浏览器开启网站可以看到相应的网站便完成了。

One Response

  1. Andy Chang 05 October 2019

Leave a Reply