Vue项目部署到phpEnv需先执行npm run build生成dist静态文件,再将dist内所有内容复制到phpEnv的www根目录下对应子文件夹,配置Apache或Nginx的fallback规则(如Nginx用try_files $uri $uri/ /index.html),并确保无.php文件干扰,才能正确运行。

phpEnv 本身不直接“运行” Vue 打包后的静态文件,它只是提供 Apache/Nginx + PHP 环境;真正服务 Vue dist 文件的是其内置的 Web 服务器(Apache 或 Nginx)。部署关键在于:把打包产物放对位置、确保路由能 fallback 到 index.html、避开 PHP 路由干扰。
Vue 项目必须先执行 npm run build
这是不可跳过的前置步骤。vue-cli 或 Vite 项目默认输出到 dist 目录,里面包含 index.html 和带哈希名的 js/css 文件。不要直接扔源码目录进去,phpEnv 不会解析 .vue 或启动开发服务器。
- 检查
dist下是否有index.html—— 没有就说明打包失败或路径错了 - 如果用 Vite,确认
vite.config.js中base配置合理(如部署在子路径/admin/,需设为base: '/admin/') - 打包后别急着复制整个
dist文件夹,只复制其**内部所有文件和子目录**(即把dist/*粘贴进网站根目录),否则会多出一层dist/路径
把文件放到 phpEnv 的正确 Web 根目录
phpEnv 默认网站根目录是 www(位于 phpEnv 安装路径下),不是 www\default 或其他嵌套路径。常见错误是误粘贴到 www\phpinfo 或 www\test 这类已有示例目录里。
- 推荐做法:在
www下新建一个干净文件夹,比如www\my-vue-app - 把
dist内所有内容(index.html、assets/、js/等)直接复制进去 - 访问
http://localhost/my-vue-app/—— 注意末尾斜杠,漏掉可能触发 403 或重定向异常 - 如果 phpEnv 启用了 Apache,确保它已启动;若用 Nginx,要确认你切换并启用了 Nginx 服务(phpEnv 控制面板可选)
解决刷新页面 404:必须配置 URL fallback
Vue Router 的 history 模式依赖服务端将所有非静态资源请求兜底到 index.html。phpEnv 自带的 Apache 或 Nginx 默认不做这事,所以访问 /user/123 会直接 404。
使用 `@ainative/vue-sdk` 为 Vue 3 应用添加 AI 聊天功能。适用于以下场景:(1) 安装 `@ainative/vue-sdk`,(2) 在 Vue 组件中使用 `useChat` 组合式函数,(3) 提供……
立即学习“PHP免费学习笔记(深入)”;
- Apache 用户:在
www\my-vue-app\.htaccess中写入标准重写规则(需开启mod_rewrite,phpEnv 默认已开) - Nginx 用户:不能改全局
nginx.conf,得进 phpEnv 面板 → “网站” → 找到你的站点 → “设置” → “伪静态”,粘贴:location / { try_files $uri $uri/ /index.html; } - 别信“只要放对位置就能跑通”的说法 —— history 模式下,没 fallback 就必然 404,无论文件多完整
避免 PHP 脚本干扰静态资源
phpEnv 的 Apache/Nginx 默认会对 .php 后缀走 PHP 解析器。但 Vue 打包后也可能生成含 .php 字样的文件名(比如某些 CDN 注入或误配置),或者你手抖把 PHP 文件混进 dist,会导致 500 错误或意外执行。
- 打开
www\my-vue-app,确认里面**没有**任何.php文件(除了你故意留的接口代理脚本) - 如果必须共存 PHP 接口(如
/api/login.php),建议把接口放在单独子目录(如www\my-vue-app\api\),并在 Nginx/Apache 配置中排除该路径的 fallback 规则 - 浏览器开发者工具 Network 面板里看请求状态:所有 JS/CSS/HTML 应返回 200;若某个
.js返回 500,大概率是服务器把它当 PHP 执行了
最常被忽略的一点:phpEnv 启动的是 Apache 还是 Nginx,决定了你该改哪套配置、在哪加伪静态。很多人卡在“明明写了 .htaccess 却没用”,其实是因为 phpEnv 当前启用的是 Nginx 模式——两套服务完全独立,配置不互通。


















