CentOS 虚拟主机配置详解
在 CentOS 操作系统上配置虚拟主机是实现多站点管理的一种有效方法,通过配置虚拟主机,您可以在同一台服务器上托管多个网站,每个网站都可以拥有独立的域名、目录和配置文件,本文将详细介绍如何在 CentOS 系统上配置基于 IP、IP+端口以及域名的虚拟主机。
一、准备工作
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、关闭防火墙:
为了简化操作,可以暂时关闭防火墙:
sudo systemctl stop firewalld sudo systemctl disable firewalld
5、启动并启用 Apache 服务:
sudo systemctl start httpd sudo systemctl enable httpd
二、配置虚拟主机
1、基于 IP 的虚拟主机:
假设服务器有两个 IP 地址,分别为192.168.1.100
和192.168.1.101
。
编辑主配置文件:
打开 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.100
、http://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
文件。