必须修改hosts文件并配置web服务器虚拟主机才能用域名访问yii2项目:windows需以管理员身份编辑c:\windows\system32\drivers\etc\hosts,macos/linux用sudo nano /etc/hosts,添加127.0.0.1 yii2.test等映射;再在phpstudy或apache中将documentroot指向frontend/web目录,重启服务后访问http://yii2.test验证。

要在本地快速验证Yii2项目是否正常运行,必须让浏览器能用域名(比如 yii2.test)访问到你的项目,而不是靠 localhost 加端口这种不稳定的访问方式。真实域名买不起、备案来不及、DNS解析又太慢,这时候就得靠修改系统 hosts 文件来伪造一个本地可用的域名,整个过程不需要联网、不依赖外部服务,改完立刻生效。
找到并以管理员权限打开hosts文件
Windows 用户必须用管理员身份运行文本编辑器,否则保存时会提示“拒绝访问”。直接右键记事本 → “以管理员身份运行”,然后点击“文件”→“打开”,路径栏粘贴:C:\Windows\System32\drivers\etc\hosts,在文件类型下拉菜单中选“所有文件”,才能看到并打开这个没有扩展名的系统文件。
macOS 或 Linux 用户打开终端,执行:sudo nano /etc/hosts,输入密码后即可编辑。
在hosts末尾添加域名映射规则
在打开的 hosts 文件最底部另起一行,严格按“IP地址 + 空格 + 域名”格式写入:
127.0.0.1 yii2.test
127.0.0.1 admin.yii2.test
127.0.0.1 api.yii2.test
注意:每行只能有一个域名,多个域名需分行写;域名前后不能有空格或中文标点;IP 地址必须是 127.0.0.1(不是 localhost,也不是 127.0.1.1),否则 Apache/Nginx 无法正确路由。
配置Web服务器虚拟主机
这一步决定浏览器输入 yii2.test 时,到底加载哪个文件夹里的代码。不同环境操作路径不同:
方法一:phpStudy 用户
打开 phpStudy 控制面板 → 左侧“其他选项” → “站点域名管理” → 点击“添加站点” → 域名填 yii2.test,根目录选中你 Yii2 项目的 frontend/web 文件夹(不是项目根目录!)→ 保存后重启 Apache。
方法二:XAMPP 或手动 Apache 用户
编辑 Apache/conf/extra/httpd-vhosts.conf 文件,在末尾添加:
ServerName yii2.test
DocumentRoot "D:/xampp/htdocs/yii2-basic/frontend/web"
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
把路径中的 D:/xampp/htdocs/yii2-basic 替换成你实际的项目路径,DocumentRoot 必须指向 web 子目录,否则 runtime/config 等敏感文件可能被直接下载泄露。
验证伪域名是否生效
第一步:关闭所有浏览器窗口,重新打开 Chrome 或 Edge,访问 http://yii2.test。
第二步:如果看到 Yii2 的欢迎页(绿色对勾+“Congratulations!”),说明 hosts + 虚拟主机全部成功。
第三步:如果显示 404 或直接下载 index.php 文件,立刻检查:Apache 是否已重启、DocumentRoot 是否误设为项目根目录而非 web 目录、.htaccess 是否存在于 web 目录下且内容正确。
第四步:在命令行执行 ping yii2.test,若返回 127.0.0.1,证明 hosts 解析已生效;若返回超时或错误 IP,说明 hosts 编辑未保存或格式有误。











