发布日期:2025-01-23 来源: 阅读量()
本文将介绍如何在CentOS 7上配置Apache HTTP服务器,以便为不同的域名或子域名提供内容。通过使用虚拟主机(Virtual Hosts),我们可以轻松地在同一台服务器上托管多个独立的网站。 首先需要确保您的系统已经安装了最新版本的Apache Web Server。如果尚未安装,则可以通过yum命令行工具来安装它: 安装完成后启动httpd服务并设置开机自启: 为每个要托管的站点创建一个单独的文档根目录。例如,如果您打算托管两个站点example1.com和example2.com,那么可以这样做: 接下来,在每个公共HTML文件夹内添加一个简单的index.html文件作为测试页面: 由于SELinux默认情况下会阻止Apache访问非标准位置的文件,因此您需要更改这些新创建的目录的安全上下文,以便让Web服务器能够读取它们: 还需要修改目录的所有权,使apache用户成为所有者: 为了让外部网络能够访问我们的网站,必须打开必要的端口。对于HTTP流量,默认情况下只需要允许80端口即可: 现在我们已经有了所有的预备工作,接下来就是编辑主配置文件以包含新的虚拟主机定义。通常情况下,这个文件位于/etc/httpd/conf/httpd.conf中。但是为了保持整洁,建议将每个站点的具体配置放在单独的配置文件里,然后通过Include指令引入它们。 创建一个新的配置文件用于第一个示例站点: 在这个文件里面输入如下内容: 重复上述步骤为第二个站点创建相应的配置文件。 最后一步是重启Apache服务,使所有更改生效: 当有人尝试通过浏览器访问example1.com或者example2.com时,他们应该会看到各自对应的欢迎页面。 以上就是在CentOS 7中配置Apache虚拟主机以支持多站点的基本方法。实际生产环境中可能还会涉及到更多高级功能如SSL证书配置、重定向规则等,但掌握了基础之后再去学习那些也不迟。
安装Apache Web Server
yum install httpd
systemctl start httpd
systemctl enable httpd
创建文档根目录和测试页面
mkdir -p /var/www/html/example1.com/public_html
mkdir -p /var/www/html/example2.com/public_html
echo “<html><head><title>Example Site 1</title></head><body><h1>Welcome to Example Site 1!</h1></body></html>" > /var/www/html/example1.com/public_html/index.html
echo “<html><head><title>Example Site 2</title></head><body><h1>Welcome to Example Site 2!</h1></body></html>" > /var/www/html/example2.com/public_html/index.html
配置SELinux权限
chcon -R -t httpd_sys_content_t /var/www/html/example1.com/public_html
chcon -R -t httpd_sys_content_t /var/www/html/example2.com/public_html
chown -R apache:apache /var/www/html/example1.com/public_html
chown -R apache:apache /var/www/html/example2.com/public_html
配置防火墙规则
firewall-cmd --permanent --add-service=http
firewall-cmd --reload
编辑Apache配置文件
nano /etc/httpd/conf.d/example1.conf
<VirtualHost :80>
ServerAdmin webmaster@example1.com
DocumentRoot "/var/www/html/example1.com/public_html"
ServerName example1.com
ServerAlias www.example1.com
ErrorLog "/var/log/httpd/example1-error_log"
CustomLog "/var/log/httpd/example1-access_log" combined
</VirtualHost>重启Apache服务
systemctl restart httpd
# 虚拟主机
# 配置文件
# 情况下
# 重启
# 创建一个
# 您的
# 如果您
# 多个
# 涉及到
# 再去
# 建站
# 只需要
# 还需要
# 这样做
# 第二个
# 我们可以
# 还会
# 第一个
# 在这个
# 放在