CentOS Apache 虚拟主机配置
一、前言
在 CentOS 上配置 Apache 虚拟主机是实现多站点管理的关键步骤,本文将详细介绍基于端口、基于域名和基于 IP 的三种虚拟主机配置方式,并提供相关配置步骤和注意事项。
二、安装 Apache
确保你的系统中已安装 Apache,如果没有安装,可以使用以下命令进行安装:
yum install -y httpd
安装完成后,启动并设置 Apache 服务开机自启:
systemctl start httpd systemctl enable httpd
三、创建虚拟主机根目录
创建虚拟主机的根目录,用于存放网站文件:
mkdir /var/wwwroot mkdir /var/wwwroot/site1 mkdir /var/wwwroot/site2 echo -e "site1" > /var/wwwroot/site1/index.html echo -e "site2" > /var/wwwroot/site2/index.html
四、配置防火墙
关闭 CentOS 的防火墙:
setenforce 0 systemctl stop firewalld systemctl disable firewalld
五、配置基于端口的虚拟主机
1、编辑 Apache 配置文件:
vim /etc/httpd/conf.d/vhost.conf
2、添加以下内容:
Listen 8081 <VirtualHost *:8081> DocumentRoot "/var/wwwroot/site1" ErrorLog "logs/site1.error.log" CustomLog "logs/site1.access.log" common <Directory "/var/wwwroot/site1"> Options Indexes FollowSymLinks MultiViews AllowOverride None Require all granted </Directory> </VirtualHost> Listen 8082 <VirtualHost *:8082> DocumentRoot "/var/wwwroot/site2" ErrorLog "logs/site2.error.log" CustomLog "logs/site2.access.log" common <Directory "/var/wwwroot/site2"> Options Indexes FollowSymLinks MultiViews AllowOverride None Require all granted </Directory> </VirtualHost>
3、启动 Apache 服务:
systemctl restart httpd
4、访问站点:
http://服务器IP:8081
http://服务器IP:8082
六、配置基于域名的虚拟主机
1、编辑 Apache 配置文件:
vim /etc/httpd/conf.d/vhost.conf
2、修改为以下内容:
<VirtualHost *:80> DocumentRoot "/var/wwwroot/site1" ServerName site1.test.com ErrorLog "logs/site1.error.log" CustomLog "logs/site1.access.log" common <Directory "/var/wwwroot/site1"> Options Indexes FollowSymLinks MultiViews AllowOverride None Require all granted </Directory> </VirtualHost> <VirtualHost *:80> DocumentRoot "/var/wwwroot/site2" ServerName site2.test.com ErrorLog "logs/site2.error.log" CustomLog "logs/site2.access.log" common <Directory "/var/wwwroot/site2"> Options Indexes FollowSymLinks MultiViews AllowOverride None Require all granted </Directory> </VirtualHost>
3、重启 Apache 服务:
systemctl restart httpd
4、修改本地 hosts 文件:
编辑C:\Windows\System32\drivers\etc\hosts
,添加以下内容:
192.168.204.135 site1.test.com 192.168.204.135 site2.test.com
5、访问站点:
http://site1.test.com
http://site2.test.com
七、配置基于 IP 的虚拟主机
1、增加 IP 地址:
ifconfig ens33:1 192.168.204.135 ifconfig ens33:2 192.168.204.136
2、重新编辑 Apache 配置文件:
vim /etc/httpd/conf.d/vhost.conf
3、修改配置文件为以下内容:
<VirtualHost 192.168.204.135:80> DocumentRoot "/var/wwwroot/site1" ErrorLog "logs/site1.error.log" CustomLog "logs/site1.access.log" common </VirtualHost> <VirtualHost 192.168.204.136:80> DocumentRoot "/var/wwwroot/site2" ErrorLog "logs/site2.error.log" CustomLog "logs/site2.access.log" common </VirtualHost>
4、重启 Apache 服务:
systemctl restart httpd
5、访问站点:
http://192.168.204.135
http://192.168.204.136
八、常见问题及解答 (FAQs)
Q1: 如何更改虚拟主机的根目录权限?
A1: 你可以使用以下命令更改根目录及其子目录的权限:
chown -R apache:apache /var/wwwroot/your_site_directory chmod -R 755 /var/wwwroot/your_site_directory
确保 Apache 用户对目录具有读写权限。
Q2: 如何测试虚拟主机配置是否正确?
A2: 使用以下命令测试配置文件语法是否正确:
apachectl configtest
如果输出结果显示Syntax OK
,则表示配置正确无误,之后可以重启 Apache 服务以应用新的配置。
九、小编有话说
通过以上步骤,你可以在 CentOS 上成功配置基于端口、域名或 IP 的 Apache 虚拟主机,这不仅可以提高服务器的资源利用率,还能方便地管理和扩展多个站点,希望这篇详细的教程对你有所帮助,如果你有任何问题或建议,请随时联系我们!