Linux 技术手札

RHEL / CentOS 7 用 Ubuntu 的方式管理 Virtual Host

在 Ubuntu 开启及关闭虚拟主机, 会用 a2ensite 及 a2dissite 指令, 这个方法在管理多个 Virtual Host 时方便很多, 以下是在 RHEL 7 及 Centos 7 下, 设定类似 Ubuntu 管理 Virtual Host 的方法。

Ubuntu 在 /etc/httpd 目录下建立两个目录, 分别是 sites-available 及 sites-enabled, 将每个 Virtual Host 的设定放在 sites-available 目录, 当开启 vhosts 时, 将 Virtual Host 的设定档从 sites-available 搬到 sites-enabled 目录, 而 Apache 会读取 sites-enabled 的 Virtual Host 设定.

关于安装 Apache 的步骤, 可参考以下文章:

RHEL 及 CentOS 7 安装 Apache, MariaDB, PHP(LAMP)

首先建立储存 Virtual Host 的目录:

/linux/vhosts

  • # cd /etc/httpd
    # mkdir sites-available sites-enabled

然后开启 httpd.conf 设定档, 设定 Apache 自动读取 /etc/httpd/sites-enabled/ 目录下所有 .conf 结尾的档案。

/linux/vhosts

  • # vi /etc/httpd/conf/httpd.conf

在 httpd.conf 最后加入以下一行:

IncludeOptional sites-enabled/*.conf

现在建立 Virtual Host 的档案, 建立了一个档案后, 以下会以 opencli.com 为例子, 并假设 DocumentRoot 放在 /var/www/opencli.com, 建立 vhosts 的设定档:

/linux/vhosts

  • # vi /etc/httpd/sites-available/opencli.com.conf

加入以下内容:

建立 DocumentRoot 目录, 用作储存网页:

/linux/vhosts

  • # mkdir -p /var/www/opencli.com

现在建立 a2ensite 及 a2dissite 的 Shell Script, 以上名称可以自订, 方便自己记忆便好了:

建立 a2ensite:

/linux/a2ensite

  • # vi /usr/local/bin/a2ensite

加入以下内容:

建立 a2dissite:

/linux/a2dissite

  • # vi /usr/local/bin/a2dissite

加入以下内容:

建立 a2ensite 及 a2dissite 后, 用 chmod 给以上 Shell Script 可执行权限:

/linux/a2ensite-a2dissite

  • # chmod +x /usr/local/bin/a2*

现在可以用以下指令开启及关闭 vhosts:

/linux/a2ensite-a2dissite

  • # a2ensite vhost_name
    # a2disite vhost_name

以上面的 opencli.com 作为例子, 执行以下指令开启及重新启动 Apache:

/linux/a2ensite-a2dissite

  • # a2ensite opencli.com
    # systemctl restart httpd

要关闭则使用以下指令:

/linux/a2ensite-a2dissite

  • # a2dissite opencli.com
    # systemctl restart httpd

要建立其他 vhosts, 只要按上面 opencli.con.conf 的内容作为范本, 建立其他 vhosts 档案即可。

Exit mobile version