加油
努力

如何在宝塔面板中为不同子域名绑定多个网站?

在宝塔面板中为不同子域名绑定多个网站,核心思路是:每个子域名对应一个独立的网站站点,并通过 Nginx/Apache 配置实现多站点共存。以下是具体操作步骤(以 Nginx 为例):


✅ 前提条件

  1. 已安装宝塔面板并登录;
  2. 已配置好 DNS 解析(如 a.example.comb.example.com 均指向服务器 IP);
  3. 服务器防火墙/安全组已放行 80/443 端口;
  4. (可选)已申请 SSL 证书(可后续为各站点单独添加)。

🔧 操作步骤

步骤 1:创建第一个网站(主站或任意子域)

  1. 进入宝塔面板 → 网站添加站点
  2. 填写:
    • 域名:example.com(或你希望的主域名)
    • 根目录:/www/wwwroot/example.com
    • PHP 版本:按需选择(如 PHP 7.4 / 8.1)
    • 数据库:可选创建 MySQL 库(也可后期添加)
  3. 点击【提交】→ 等待创建完成。

💡 此时该站点默认通过 example.com 访问。


步骤 2:为同一服务器添加第二个子域名站点(网站点)

⚠️ 注意:不要直接修改第一个站点的“附加域名”(那只是虚拟主机别名),而是新建一个完整站点,确保代码隔离、PHP 环境独立(如需)。

  1. 再次点击 网站添加站点
  2. 填写:
    • 域名:sub1.example.com
    • 根目录:/www/wwwroot/sub1.example.com(建议新建独立目录)
    • PHP 版本:可与主站相同或不同(宝塔支持多 PHP 版本并存)
    • 数据库:按需创建新库
  3. 点击【提交】。

✅ 重复此步骤添加更多子域名站点(如 sub2.example.comblog.example.com 等)。


步骤 3:验证与测试

  • 在本地 hosts 文件临时映射(或等待 DNS 生效):
    你的服务器IP    sub1.example.com
    你的服务器IP    sub2.example.com
  • 浏览器访问 http://sub1.example.comhttp://sub2.example.com,确认各自显示对应站点的首页;
  • 检查宝塔「网站」列表中是否出现两个网站点条目。

🌐 高级场景处理

需求 解决方案
同一套代码,不同子域访问 使用「附加域名」功能:
进入某站点设置 → 附加域名 → 添加 sub1.example.com
⚠️ 但所有子域共享同一根目录、PHP 配置、数据库
需要不同 PHP 版本 必须为每个子域名创建网站点(推荐做法)
SSL 证书批量部署 可在「SSL」页面为每个站点单独申请 Let’s Encrypt 证书,或上传自定义证书
反向X_X到本地服务 创建站点时选择「反向X_X」类型,目标填 http://localhost:8080

⚙️ 手动验证 Nginx 配置(可选)

进入 网站 → 找到对应站点 → 配置文件,查看生成的 server 块:

server {
    listen 80;
    server_name sub1.example.com;
    root /www/wwwroot/sub1.example.com;
    index index.php index.html;
    # ... 其他配置
}

确保每个子域名有独立的 server_nameroot


❗ 常见问题

  • DNS 未生效? → 检查域名服务商后台是否添加 A 记录;可用 ping sub1.example.com 验证;
  • 404 Not Found? → 检查根目录是否存在、权限是否为 www:www
  • PHP 报错? → 确认站点绑定的 PHP 版本是否正确,且代码兼容;
  • 缓存问题? → 清除浏览器缓存 + 宝塔「伪静态」刷新 + 重启 Nginx。

需要我为你生成一个自动化脚本(如用 bt-cli 批量创建站点),或提供 Apache 版操作指南吗?

云服务器