温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

apache如何设置虚拟主机

发布时间:2026-10-01 09:58:10 来源:亿速云 阅读:96 作者:小樊 栏目:系统运维

在 Apache 中设置虚拟主机(Virtual Host),通常用于在一台服务器上托管多个网站。下面以 Linux(如 Ubuntu / CentOS) 为例,说明常见做法。


一、基本概念

虚拟主机有两种常见方式:

  1. 基于域名(Name-based) ✅ 最常用
  2. 基于 IP(IP-based)

二、基于域名的虚拟主机配置(推荐)

1️⃣ 启用虚拟主机模块(一般默认已启用)

sudo a2enmod vhost_alias   # Ubuntu/Debian

2️⃣ 创建网站目录

sudo mkdir -p /var/www/example.com/public_html
sudo mkdir -p /var/www/test.com/public_html

设置权限:

sudo chown -R $USER:$USER /var/www/example.com
sudo chown -R $USER:$USER /var/www/test.com

3️⃣ 创建虚拟主机配置文件

Ubuntu / Debian

sudo nano /etc/apache2/sites-available/example.com.conf

内容示例:

<VirtualHost *:80>
    ServerAdmin admin@example.com
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example.com/public_html

    <Directory /var/www/example.com/public_html>
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/example.com_error.log
    CustomLog ${APACHE_LOG_DIR}/example.com_access.log combined
</VirtualHost>

4️⃣ 启用站点

sudo a2ensite example.com.conf
sudo a2dissite 000-default.conf   # 禁用默认站点(可选)

5️⃣ 检查配置并重启 Apache

sudo apache2ctl configtest
sudo systemctl restart apache2

三、本地测试(无真实域名时)

修改本地 hosts 文件:

Linux / macOS

sudo nano /etc/hosts

添加:

127.0.0.1 example.com
127.0.0.1 test.com

浏览器访问:

http://example.com

四、基于端口的虚拟主机(补充)

<VirtualHost *:8080>
    DocumentRoot /var/www/port8080
</VirtualHost>

并确保:

Listen 8080

五、常见错误排查

  • ❌ AH00558: 主机名未设置 → 配置 ServerName
  • ❌ 403 Forbidden → 目录权限或 Require all granted
  • ❌ 网站不生效 → 忘记 a2ensite 或重启 Apache

如果你告诉我:

  • 使用的系统(Ubuntu / CentOS / Windows)
  • Apache 版本
  • 是否使用 HTTPS

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

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手