菜鸟科技网

phpstudy搭建二级域名

使用PHPStudy搭建二级域名详解

前提条件准备

项目 要求 说明
软件版本 PHPStudy最新版(推荐v8.1+) 确保支持Nginx/Apache多站点配置
主机环境 Windows系统 本文以Windows为例,Linux用户需调整路径权限
域名解析 主域名已备案且完成A记录指向服务器IP example.com解析到你的公网IP
本地测试 可暂时修改Hosts文件跳过DNS注册商设置(仅用于调试) C:\Windows\System32\drivers\etc\hosts中添加 二级域名 IP

配置步骤分解

1️⃣ 创建站点根目录结构
D:\phpstudy_pro\Wwwroot/          # 默认Web根目录
├── maindomain.com                # 主站内容
└── sub.example.com              # 新建二级域名对应文件夹

⚠️ 注意:子目录名称必须与你要绑定的二级域名完全一致(区分大小写)

phpstudy搭建二级域名-图1
(图片来源网络,侵删)
2️⃣ 配置虚拟主机规则

进入PHPStudy控制面板 → 点击左侧菜单栏的【站点管理】→选择【新增站点】: | 参数项 | 设置示例 | 作用说明 | |----------------------|------------------------------|----------------------------------------| | 域名 | sub.example.com | 填写完整的二级域名 | | 网站目录 | D:\phpstudy_pro\Wwwroot\sub.example.com | 对应上述创建的物理路径 | | 运行方式 | Nginx或Apache(根据需求选择) | 推荐Nginx性能更优 | | PHP版本 | 74及以上版本 | 兼容最新框架特性 | | 是否启用SSL | 勾选并配置证书路径 | 强制HTTPS访问(可选但建议开启) |

3️⃣ 修改配置文件高级设置(关键!)

对于Nginx用户:编辑conf/vhost/sub.example.com.conf文件,添加以下核心片段:

server {
    listen 80;
    server_name sub.example.com; # 必须与域名完全匹配
    root D:/phpstudy_pro/Wwwroot/sub.example.com;
    index index.php index.html;
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
    # PHP解析配置
    location ~ \.php$ {
        fastcgi_pass unix:/tmp/php-cgi.sock; # Windows改为TCP端口如127.0.0.1:9000
        include fastcgi_params;
    }
}

📌 Windows特殊处理:若使用TCP连接PHP-FPM,将fastcgi_pass改为0.0.1:9000

4️⃣ 重启服务使配置生效

✅ 操作路径:PHPStudy主界面右上角 → 【重启Nginx】或【重启Apache】 ✅ 验证命令:在终端执行 curl -I http://sub.example.com 查看响应头是否包含正确Server信息

phpstudy搭建二级域名-图2
(图片来源网络,侵删)

常见问题排查手册

现象 可能原因 解决方案
浏览器报“无法访问此网站” 防火墙拦截端口 检查安全组策略,开放80/443端口
出现默认404页面 文档根目录设置错误 确认root指令路径与实际文件夹一致
PHP文件被下载而非执行 FastCGI未正确加载 检查location ~ \.php$段落配置
HTTPS证书警告 SSL链不完整 确保中间证书也已导入

进阶优化建议

  • 🔧 伪静态规则:在子站点目录下创建.htaccess(Apache)或nginx.conf实现URL重写
  • 🚀 缓存加速:启用OpCache组件提升PHP执行效率
  • 🛡️ 安全防护:通过fail2ban模块限制暴力破解尝试次数

相关问题与解答

Q1:为什么配置后仍然跳转到主站?
👉 解答:这是由于Nginx优先匹配第一个符合条件的server块导致的,解决方法有两种:①调整虚拟主机配置文件的顺序,将二级域名放在前面;②在主站配置中添加精确匹配的if ($host != 'sub.example.com') { return 404; }判断语句。

Q2:如何实现多个二级域名共享同一套代码?
👉 解答:可以通过$_SERVER['HTTP_HOST']变量动态识别当前访问的域名,例如在入口文件中添加逻辑:

switch($_SERVER['HTTP_HOST']) {
    case 'shop.example.com': define('APPLICATION_MODE', 'shopping'); break;
    case 'blog.example.com': define('APPLICATION_MODE', 'blogging'); break;
    default: die("Invalid domain
phpstudy搭建二级域名-图3
(图片来源网络,侵删)
分享:
扫描分享到社交APP
上一篇
下一篇