在本地使用phpEnv进行多项目开发时,通过自定义虚拟域名访问项目可以避免端口冲突,也能更贴近线上环境的访问逻辑,而实现这一功能的核心步骤就是修改系统Hosts文件并配合phpEnv配置虚拟主机。

Hosts文件的作用与定位
Hosts文件是系统自带的域名解析配置文件,作用是将自定义的域名映射到指定的IP地址,优先级高于公共DNS服务器。不同系统下的Hosts文件路径如下:
- Windows系统:
C:WindowsSystem32driversetchosts - macOS/Linux系统:
/etc/hosts
修改Hosts文件添加域名映射
修改Hosts文件需要管理员权限,否则无法保存修改内容,以下是具体操作步骤:
Windows系统操作步骤
首先右键点击记事本,选择以管理员身份运行,然后在记事本中点击文件-打开,导航到C:WindowsSystem32driversetc目录,将文件类型选为所有文件,就能看到hosts文件,打开后在文件末尾添加如下内容:
# 本地虚拟域名映射 127.0.0.1 test.local 127.0.0.1 demo.local
添加完成后按Ctrl+S保存即可,注意#是注释符号,后面的内容不会被系统解析。
macOS/Linux系统操作步骤
打开终端,输入如下命令获取管理员权限后编辑hosts文件:
sudo vim /etc/hosts
输入密码后按i进入编辑模式,在文件末尾添加和Windows系统相同的域名映射内容,按Esc后输入:wq保存退出即可。
phpEnv中配置虚拟主机
Hosts文件修改完成后,还需要在phpEnv中配置对应的虚拟主机,才能让域名正确指向项目目录,操作步骤如下:
- 打开phpEnv面板,点击左侧菜单的网站选项
- 点击右上角的创建网站按钮
- 在弹出的配置窗口中,域名栏填写刚才在Hosts文件中添加的域名,比如test.local
- 根目录选择对应的项目文件夹路径
- 端口保持默认的80即可,如果需要使用其他端口可以自行修改
- PHP版本选择项目对应的版本,其他配置保持默认,点击确定保存
如果需要配置多个虚拟域名,重复上述步骤创建多个网站即可。
配置验证与常见问题排查
配置完成后,打开浏览器访问刚才设置的域名,比如test.local,如果能正常打开项目页面,说明配置成功。如果访问失败,可以按照以下思路排查:
- 检查Hosts文件是否保存成功,是否添加了管理员权限
- 检查phpEnv中的虚拟主机域名是否和Hosts文件中的一致,有没有拼写错误
- 检查phpEnv的Apache或者Nginx服务是否正常运行,尝试重启服务后再访问
- 清除浏览器缓存后再尝试访问,避免缓存导致访问异常
如果还是无法访问,可以打开命令行输入ping test.local,查看返回的IP是否是127.0.0.1,如果ping不通说明Hosts文件配置有问题,如果ping通但无法访问说明phpEnv的虚拟主机配置有问题。