温馨提示×

centos apache2如何设虚拟主机

小樊
39
2026-09-24 06:02:14
栏目: 云计算

在 CentOS 上,Apache 通常叫 httpd(不是 apache2,apache2 是 Debian/Ubuntu 的叫法)。下面以 CentOS 7/8 + Apache(httpd) 为例,讲如何配置虚拟主机(Virtual Host)。


一、确认 Apache 已安装并运行

# 安装
sudo yum install httpd -y

# 启动并设置开机自启
sudo systemctl start httpd
sudo systemctl enable httpd

# 查看状态
sudo systemctl status httpd

二、创建网站目录

假设我们有两个站点:

  • example1.com → /var/www/example1
  • example2.com → /var/www/example2
sudo mkdir -p /var/www/example1/public_html
sudo mkdir -p /var/www/example2/public_html

echo "example1" | sudo tee /var/www/example1/public_html/index.html
echo "example2" | sudo tee /var/www/example2/public_html/index.html

sudo chown -R apache:apache /var/www
sudo chmod -R 755 /var/www

三、创建虚拟主机配置文件

CentOS 推荐把虚拟主机放在:

/etc/httpd/conf.d/

1️⃣ example1.com.conf

sudo vi /etc/httpd/conf.d/example1.com.conf

内容:

<VirtualHost *:80>
    ServerName example1.com
    ServerAlias www.example1.com
    DocumentRoot /var/www/example1/public_html

    <Directory /var/www/example1/public_html>
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog /var/log/httpd/example1_error.log
    CustomLog /var/log/httpd/example1_access.log combined
</VirtualHost>

2️⃣ example2.com.conf

sudo vi /etc/httpd/conf.d/example2.com.conf

内容同上,改路径和域名即可。


四、检查并重启 Apache

# 语法检查
sudo httpd -t

# 重启
sudo systemctl restart httpd

五、本地测试(无域名时)

如果还没解析域名,可以改本地 hosts:

# Linux / macOS
sudo vi /etc/hosts

# Windows
C:\Windows\System32\drivers\etc\hosts

添加:

127.0.0.1 example1.com
127.0.0.1 example2.com

浏览器访问:

http://example1.com
http://example2.com

六、防火墙(重要)

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload

七、HTTPS(可选)

推荐用 Let’s Encrypt:

sudo yum install certbot python3-certbot-apache -y
sudo certbot --apache

八、常见误区

❌ Ubuntu 的 apache2 ≠ CentOS 的 httpd
❌ 虚拟主机不要写进 httpd.conf,用 conf.d/*.conf
❌ SELinux 可能导致 403(可临时测试 setenforce 0)


如果你告诉我:

  • CentOS 版本(7 / 8 / Stream)
  • 是否用 域名 / IP / 端口
  • 是否要 HTTPS / 反向代理

我可以给你更精确的配置。

0 踩