phpEnv配置多域名指向同一根目录 phpEnv别名域名
PhpStorm 是 JetBrains 推出的专业 PHP 集成开发环境,可在 Mac 上完成代码编写、智能检查、重构、调试、测试和数据库管理。它支持主流 PHP 框架、Composer、Git、Docker 与远程解释器。
通过修改phpEnv内置Nginx的server_name字段,以空格分隔添加多个域名,并同步编辑系统hosts文件添加对应映射,可以使得多个域名指向同一根目录。之后请执行nginx-t检查语法,然后再重载Nginx配置,并请注意刷新DNS缓存,即可实现多域名解析。
坦白说,phpEnv 本身并不直接处理多域名绑定这件事。想让多个域名指向同一个根目录,本质上靠的是两样东西的配合:phpEnv 内置的 Nginx 配置,加上系统的 hosts 文件。别名域名并不是 phpEnv 给你开了个什么开关,说白了,就是在 Nginx 的 server_name 指令里多写几个域名而已。
phpEnv 的 Nginx 配置文件在哪、怎么改
phpEnv 默认把站点配置扔在 /phpenv/vhost/ 目录下,每个站点对应一个 .conf 文件(比如 default.conf 或者你自定义的站点名.conf)。它不像宝塔那样给你一个“别名”的图形入口,所有域名都得手动塞进 server_name 那一行。
- 找到站点对应的
.conf文件(比如default.conf),用管理员权限打开它 - 找到类似
server_name localhost;这一行 - 改成用空格分隔的多个域名,像这样:
server_name local.test www.local.test api.local.test; - 注意,域名之间用空格隔开就行,千万别加逗号,也别换行,更不能带
http://或者端口号 - 改完之后,务必在终端里跑一遍
nginx -t检查语法,没问题再执行nginx -s reload让配置生效 - 要是改完了,新域名访问还是 404,十有八九是
nginx -s reload没执行,或者系统 hosts 文件里没加上对应的映射
hosts 文件必须同步加,而且格式要严丝合缝
phpEnv 可不会自动帮你写 hosts 文件。这一步要是漏了,浏览器根本没法把你的请求发到本地的 Nginx。Windows 系统的 hosts 文件在 C:\Windows\System32\drivers\etc\hosts,macOS 或 Linux 则在 /etc/hosts。
- 每一行只写一个映射,比如
127.0.0.1 local.test,前后不要有多余的空格或 tab 键 - 千万别以为写了
www.local.test,local.test就自动生效了——这两个是独立的域名,需要分别添加 - 加完保存后,在终端里运行
ping local.test,确认返回的地址是127.0.0.1。否则,Nginx 根本收不到这个 Host 头 - Windows 用户改完 hosts 后,建议顺手跑一下
ipconfig /flushdns刷新 DNS 缓存;macOS 用户则执行sudo dscacheutil -flushcache
为什么加了 server_name 还是跳默认站或 404
遇到这种情况,通常不是 phpEnv 的锅,而是 Nginx 的匹配逻辑被绕过了。Nginx 会按 server 块的顺序来匹配,第一个 server_name 匹配上的才会生效。
- 检查一下有没有其他
server块(比如default.conf)监听了*:80端口,并且它的server_name是空的或者设为_。这种配置会像一个兜底网,捕获所有未匹配的域名 - 确认你的目标
.conf文件确实被主nginx.conf里的include指令加载了,路径别写错了 - 如果你用了 HTTPS,
server_name必须同时出现在http和https两个server块里。否则,HTTP 域名能通,HTTPS 域名就会 404 - 还有一点要注意,phpEnv 默认可能开启了“防跨站”机制。如果根目录下有
.user.ini文件或者启用了open_basedir,新增域名访问时,PHP 可能会因为路径限制报错。这可不是 Nginx 层面的 404,而是 PHP 层面的问题了
想让不同域名显示不同页面,但共用同一套代码
这时候,光靠 Nginx 配置就不够了,需要在 PHP 的入口层做判断。比如,可以在 index.php 的开头加上这样一段逻辑:
if ($_SERVER['HTTP_HOST'] === 'api.local.test') {
require __DIR__ . '/api/index.php';
exit;
}
if ($_SERVER['HTTP_HOST'] === 'admin.local.test') {
require __DIR__ . '/admin/index.php';
exit;
}
- 这种方案的优点是,用户地址栏里始终显示的是自己输入的域名,不会跳转
- 需要注意的是,
$_SERVER['HTTP_HOST']这个值客户端是可以伪造的。在生产环境中,最好配合一个白名单来做校验,安全第一 - 如果你用的是 Lara vel 这类框架,更推荐在路由层或者中间件里做域名分流,而不是在入口文件里硬编码
require - 千万别想着用
header("Location: ...")跳转来模拟——那样会暴露真实路径,对 SEO 也不友好
最后想叮嘹一句,其实最容易被忽略的就是配置重载这件事。很多人卡在“明明写了域名却打不开”这一步,其实只是忘了敲 nginx -s reload,或者忘了在 hosts 文件里做映射。这两步,少一个都不行。
WPS Office是一款面向macOS用户的综合办公套件,将文字处理、电子表格、演示文稿、PDF工具、模板与云协作整合在同一应用中。它兼容常见Microsoft Office格式,支持Intel及Apple芯片Mac,基础功能可免费使用,
Shapr3D是一款面向工业设计、机械工程、建筑概念和三维打印工作流的CAD软件。Mac版采用Parasolid建模内核,支持草图约束、实体建模、工程图、可视化渲染及常见CAD格式交换,并可通过账户在多台设备之间同步项目。
REAPER是Cockos开发的数字音频工作站,提供多轨音频与MIDI录制、剪辑、处理、混音和母带制作工具。Mac版兼容Intel与Apple芯片,支持AU、VST、VST3、CLAP等插件格式,并提供高度可定制的工作流程。
Adobe Photoshop 是面向摄影师、设计师和内容创作者的专业图像处理工具,可在 Windows 上完成照片修饰、选区抠图、图层合成、文字排版、绘画及生成式编辑。软件采用订阅授权,由 Creative Cloud 管理安装、更新与许
Adobe InDesign 是面向印刷与数字出版的专业页面排版工具,可制作书籍、杂志、宣传册、海报、交互式 PDF 和电子书。它提供精细的文字样式、多页面管理、印前检查及多格式输出能力,并能与 Photoshop、Illustrator
Adobe Illustrator 是用于绘制矢量图形、插画、图标、徽标和版式的专业设计工具。它以路径和锚点为核心,作品放大后仍能保持清晰,并提供画板、文字、渐变、图像描摹及精确变换等功能,适合品牌视觉、印刷物料、数字界面和商业插画创作。













