HCRM博客

如何在 CentOS 上配置虚拟主机?

CentOS 虚拟主机配置详解

在 CentOS 操作系统上配置虚拟主机是实现多站点管理的一种有效方法,通过配置虚拟主机,您可以在同一台服务器上托管多个网站,每个网站都可以拥有独立的域名、目录和配置文件,本文将详细介绍如何在 CentOS 系统上配置基于 IP、IP+端口以及域名的虚拟主机。

一、准备工作

如何在 CentOS 上配置虚拟主机?-图1
(图片来源网络,侵权删除)

1、系统环境:确保您已经安装了 CentOS 操作系统,并且具备 root 权限或具有 sudo 权限的用户帐户。

2、安装 Apache

确保您的系统上安装了 Apache,如果尚未安装,可以使用以下命令进行安装:

   sudo yum y install httpd

3、配置 SELinux

编辑 SELinux 配置文件,将SELINUX 设置为disabled

   sudo vim /etc/selinux/config
   # 修改为
   SELINUX=disabled

4、关闭防火墙

如何在 CentOS 上配置虚拟主机?-图2
(图片来源网络,侵权删除)

为了简化操作,可以暂时关闭防火墙:

   sudo systemctl stop firewalld
   sudo systemctl disable firewalld

5、启动并启用 Apache 服务

   sudo systemctl start httpd
   sudo systemctl enable httpd

二、配置虚拟主机

1、基于 IP 的虚拟主机

假设服务器有两个 IP 地址,分别为192.168.1.100192.168.1.101

编辑主配置文件

如何在 CentOS 上配置虚拟主机?-图3
(图片来源网络,侵权删除)

打开 Apache 的主配置文件/etc/httpd/conf/httpd.conf,添加以下内容:

     <VirtualHost 192.168.1.100:80>
         DocumentRoot "/var/www/html/site1"
         ServerName site1.com
         ErrorLog logs/site1error_log
         CustomLog logs/site1access_log common
     </VirtualHost>
     <VirtualHost 192.168.1.101:80>
         DocumentRoot "/var/www/html/site2"
         ServerName site2.com
         ErrorLog logs/site2error_log
         CustomLog logs/site2access_log common
     </VirtualHost>

创建站点目录

     sudo mkdir p /var/www/html/site1 /var/www/html/site2

设置目录权限

     sudo chown R $USER:$USER /var/www/html/site1 /var/www/html/site2
     sudo chmod R 755 /var/www/html/site1 /var/www/html/site2

重启 Apache 服务

     sudo systemctl restart httpd

2、基于 IP+端口 的虚拟主机

假设服务器有一个 IP 地址192.168.1.100,我们将配置两个不同的端口(80 和 8080)。

编辑主配置文件

     Listen 80
     Listen 8080
     <VirtualHost *:80>
         DocumentRoot "/var/www/html/site1"
         ServerName site1.com
         ErrorLog logs/site1error_log
         CustomLog logs/site1access_log common
     </VirtualHost>
     <VirtualHost *:8080>
         DocumentRoot "/var/www/html/site2"
         ServerName site2.com
         ErrorLog logs/site2error_log
         CustomLog logs/site2access_log common
     </VirtualHost>

创建站点目录并设置权限(同上)。

重启 Apache 服务(同上)。

3、基于域名的虚拟主机

假设服务器有一个 IP 地址192.168.1.100,我们将使用不同的域名来区分站点。

编辑主配置文件

     <VirtualHost *:80>
         DocumentRoot "/var/www/html/site1"
         ServerName site1.com
         ErrorLog logs/site1error_log
         CustomLog logs/site1access_log common
     </VirtualHost>
     <VirtualHost *:80>
         DocumentRoot "/var/www/html/site2"
         ServerName site2.com
         ErrorLog logs/site2error_log
         CustomLog logs/site2access_log common
     </VirtualHost>

修改/etc/hosts 文件(仅适用于本地测试):

     192.168.1.100 site1.com site2.com

创建站点目录并设置权限(同上)。

重启 Apache 服务(同上)。

三、验证配置

无论采用哪种方式配置虚拟主机,都可以通过浏览器访问相应的 IP 地址或域名来验证配置是否成功,访问http://192.168.1.100http://site1.com 等,查看是否正确显示对应的网站内容。

四、常见问题与解决方案

问:如何更改默认文档根目录?

答:在 Apache 的配置文件中,找到<Directory "/var/www/html"> 这一行,修改其中的路径即可,将其改为<Directory "/usr/local/apache2/htdocs">,确保新目录具有适当的权限,以便 Apache 可以读取其中的文件。

问:如何更改默认文档类型?

答:在 Apache 的配置文件中,找到DirectoryIndex 指令,并将其值设置为所需的默认文档类型,如果您希望默认文档为index.php,则可以将该指令设置为DirectoryIndex index.php,这样,当请求的目录中不存在index.html 时,Apache 将自动查找并显示index.php 文件。

分享:
扫描分享到社交APP
上一篇
下一篇