phpenv本身不支持泛域名解析,仅能通过hosts手动映射子域、apache/nginx配置serveralias或server_name通配符、php应用层解析http_host四层协同实现伪泛解析。

phpEnv 本身不提供泛域名解析功能,所谓“多域名泛解析”实际是 DNS、Web 服务器、本地 hosts 和 PHP 应用四层协同的结果。它不支持自动识别 *.test 这类通配符域名,也不能一键生成证书。真正可行的方案,是分清各层职责,手动补全缺失环节。
本地开发:用 hosts + Apache/Nginx 手动模拟泛解析
Windows 下无法靠 hosts 实现真正的通配,但可批量映射常用子域:
- 编辑 C:\Windows\System32\drivers\etc\hosts,追加多行(每行一个):
127.0.0.1 dev.test
127.0.0.1 api.test
127.0.0.1 user.test - Apache 方案:打开 phpEnv\Apache\conf\extra\httpd-vhosts.conf,添加完整虚拟主机块,含 ServerName test.com 和 ServerAlias *.test.com(注意星号前不能缺点)
- Nginx 方案:改 phpEnv\Nginx\conf\nginx.conf,server_name 写成 .test.com(开头带点),不是 *.test.com
- 改完必须点击 phpEnv 界面的「重启 Apache」或「重启 Nginx」,否则配置不生效
Web 服务器层:泛域名匹配的关键限制
Apache 的 ServerAlias *.test.com 只匹配一级子域(如 a.test.com),不匹配 a.b.test.com;Nginx 的 .test.com 同理。它们都不动态切换 root 目录——所有请求都落到同一 DocumentRoot 或 root 路径下。
phpEnv(Mac)并非指原Windows版phpEnv的直接移植,而是指官网推出的跨平台产品 EServer。它是一款专为Mac端设计的专业PHP集成环境,告别繁琐的编译配置。该软件集成了 Nginx、PHP(支持多版本共存与切换)及 MySQL,并提供图形化操作界面与软件商店。它让Mac开发者能像在Windows下一样,通过简单的点击即可一键创建并管理运行环境,极大提升了本地开发与测试效率。
- 这意味着:你不能靠 Web 服务器把 admin.test.com 自动指向 /www/admin/,而需在 PHP 中读取 $_SERVER['HTTP_HOST'] 后自行路由
- Apache 若报 403 错误,大概率是
权限没放开,需确认 AllowOverride All 和 Require all granted 已设置 - Nginx 若报 502,检查 fastcgi_pass 地址是否与 php-fpm 监听端口一致(通常是 127.0.0.1:9000)
HTTPS 与通配符证书:本地环境绕不开的一步
浏览器拒绝访问 http://admin.test 时,常因未启用 HTTPS;而自签通配符证书需额外工具链:
- 推荐用 mkcert 工具生成本地可信证书:
运行mkcert -install安装根证书,再执行mkcert "*.test"生成 wildcard.pem 和 wildcard-key.pem - Apache 配置中加入:
SSLEngine on
SSLCertificateFile "D:/phpEnv/certs/wildcard.pem"
SSLCertificateKeyFile "D:/phpEnv/certs/wildcard-key.pem" - Nginx 则在 server 块里加:
ssl_certificate D:/phpEnv/certs/wildcard.pem;
ssl_certificate_key D:/phpEnv/certs/wildcard-key.pem;
应用层:PHP 必须自己处理子域逻辑
Web 服务器只负责把请求转给 PHP,不区分 admin.test 还是 api.test。最终路由由代码决定:
- 不要用
explode('.', $_SERVER['HTTP_HOST'])简单切分——遇到 co.uk、org.cn 等多级后缀会出错 - 建议用 parse_url() + str_replace() 提取主域,或引入成熟库如 PHP Domain Parser
- ThinkPHP、Laravel、PHPCMS 等框架大多内置多应用或多站点模式,启用后只需配置对应子域映射规则即可
- 若用原生 PHP,可在入口 index.php 中根据子域加载不同配置或跳转不同模块
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










