CentOS添加虚拟主机详细步骤
在CentOS操作系统上配置虚拟主机,可以通过基于IP、基于IP+端口以及基于域名的三种方式来实现,以下是详细的步骤和注意事项:
一、系统环境准备
1、查看系统版本:
cat /etc/redhat-release
2、查看网络接口信息:
ip ad
二、安装Apache
1、通过YUM安装Apache:
yum install -y httpd
2、启动并设置Apache服务开机自启:
systemctl start httpd systemctl enable httpd
3、关闭防火墙并禁用SELinux(如果需要):
systemctl stop firewalld systemctl disable firewalld setenforce 0 vim /etc/selinux/config # 修改SELINUX=disabled
三、配置虚拟主机
1. 基于IP的虚拟主机配置
1、创建配置文件:
cd /etc/httpd/conf.d/ vim virtual.conf
2、添加以下内容到virtual.conf文件:
<VirtualHost 192.168.253.128:80> ServerName a.com DocumentRoot "/www/a.com" ErrorLog logs/a.com-error_log CustomLog logs/a.com-access_log common </VirtualHost> <VirtualHost 192.168.253.129:80> ServerName b.com DocumentRoot "/www/b.com" ErrorLog logs/b.com-error_log CustomLog logs/b.com-access_log common </VirtualHost>
3、为每个虚拟主机创建网页根目录:
mkdir -p /www/a.com /www/b.com echo "<h1>Welcome to a.com</h1>" > /www/a.com/index.html echo "<h1>Welcome to b.com</h1>" > /www/b.com/index.html
4、重启Apache服务:
systemctl restart httpd
2. 基于IP+端口的虚拟主机配置
1、创建配置文件:
cd /etc/httpd/conf.d/ vim virtual_port.conf
2、添加以下内容到virtual_port.conf文件:
Listen 8080 <VirtualHost *:80> ServerName a.com DocumentRoot "/www/a.com" ErrorLog logs/a.com-error_log CustomLog logs/a.com-access_log common </VirtualHost> <VirtualHost *:8080> ServerName b.com DocumentRoot "/www/b.com" ErrorLog logs/b.com-error_log CustomLog logs/b.com-access_log common </VirtualHost>
3、为每个虚拟主机创建网页根目录(同上)。
4、重启Apache服务:
systemctl restart httpd
3. 基于域名的虚拟主机配置
1、创建配置文件:
cd /etc/httpd/conf.d/ vim virtual_domain.conf
2、添加以下内容到virtual_domain.conf文件:
<VirtualHost *:80> ServerName a.com DocumentRoot "/www/a.com" ErrorLog logs/a.com-error_log CustomLog logs/a.com-access_log common </VirtualHost> <VirtualHost *:80> ServerName b.com DocumentRoot "/www/b.com" ErrorLog logs/b.com-error_log CustomLog logs/b.com-access_log common </VirtualHost>
3、修改物理机的hosts文件(假设物理机访问Apache服务器):
sudo vim /etc/hosts # 添加以下行 192.168.253.128 a.com 192.168.253.129 b.com
4、为每个虚拟主机创建网页根目录(同上)。
5、重启Apache服务:
systemctl restart httpd
四、检查配置与测试访问
1、检查配置文件是否正确:
apachectl configtest
2、重启Apache服务:
systemctl restart httpd
3、在浏览器中测试访问:
通过IP地址访问:http://192.168.253.128 和 http://192.168.253.129
通过端口访问:http://your_server_ip:8080(假设你的服务器IP是192.168.253.128)
通过域名访问:http://a.com 和 http://b.com(需要在本地hosts文件中添加对应的IP映射)
五、常见问题解答(FAQs)
Q1: 如何更改虚拟主机的根目录权限?
A1: 你可以使用chmod
命令来更改目录权限,给予所有用户读取权限:chmod 755 /www/a.com
,对于更复杂的权限设置,可以参考Linux权限管理文档。
Q2: 如果虚拟主机无法访问,可能是什么原因?
A2: 可能的原因有:配置文件错误、防火墙未关闭、SELinux未禁用、DNS解析问题等,建议逐一排查这些方面,确保配置文件正确无误,并且网络设置允许外部访问。