在 CentOS 上,Apache 的服务名通常是 httpd(不是 apache2,apache2 是 Debian/Ubuntu 的叫法)。下面以 CentOS 7/8 为例说明如何配置 Apache 虚拟主机(Virtual Host)。
# 安装(如果还没装)
sudo yum install httpd -y # CentOS 7
# 或
sudo dnf install httpd -y # CentOS 8
# 启动并设置开机自启
sudo systemctl start httpd
sudo systemctl enable httpd
# 查看状态
sudo systemctl status httpd
假设你要建两个站点:
site1.example.com → /var/www/site1site2.example.com → /var/www/site2sudo mkdir -p /var/www/site1/public_html
sudo mkdir -p /var/www/site2/public_html
sudo chown -R apache:apache /var/www
sudo chmod -R 755 /var/www
写个测试页面:
echo "site1" | sudo tee /var/www/site1/public_html/index.html
echo "site2" | sudo tee /var/www/site2/public_html/index.html
CentOS 推荐放在:
/etc/httpd/conf.d/
sudo vi /etc/httpd/conf.d/site1.conf
内容:
<VirtualHost *:80>
ServerName site1.example.com
DocumentRoot /var/www/site1/public_html
ErrorLog /var/log/httpd/site1-error.log
CustomLog /var/log/httpd/site1-access.log combined
</VirtualHost>
sudo vi /etc/httpd/conf.d/site2.conf
内容:
<VirtualHost *:80>
ServerName site2.example.com
DocumentRoot /var/www/site2/public_html
ErrorLog /var/log/httpd/site2-error.log
CustomLog /var/log/httpd/site2-access.log combined
</VirtualHost>
# 检查语法
sudo httpd -t
# 重启
sudo systemctl restart httpd
修改本地 hosts 文件(Windows / macOS / Linux 客户端):
服务器IP site1.example.com
服务器IP site2.example.com
浏览器访问:
http://site1.example.com
http://site2.example.com
DocumentRoot 权限sudo setsebool -P httpd_read_user_content 1
# 或临时关闭测试
sudo setenforce 0
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload
如果你用的是 CentOS + HTTPS(SSL) 或 多端口虚拟主机,我也可以继续帮你写配置。