如何将集成vuejs的Laravel项目部署到共享主机
已上传主机的Laravel+Vue项目简便部署方案
基础目录与权限校准
- 找到Laravel项目的
storage、bootstrap/cache两个目录,设置为Web服务账号可读写的权限(常规设为775即可,不建议直接开777留安全隐患) - 将主机的站点根路径直接指向Laravel的
public目录,不要靠URL重写规则把外部请求跳转到项目根目录下的public文件夹,避免Vue打包后的静态资源路径解析错位 - 确认Vue生产构建的文件(打包生成的JS、CSS静态资源、入口HTML)已经放到
public目录对应位置,Laravel的路由兜底规则要能把非接口类的请求正确导向前端入口
无SSH权限场景的轻量化操作(虚拟主机通用)
大部分虚拟主机没有开放SSH终端权限,完全不需要硬上复杂的CI/CD流程,按下面的步骤操作最快:
- 所有需要编译的环节全部在本地完成:先在本地项目根目录执行
composer install --no-dev --optimize-autoloader生成生产环境的依赖映射,再进入前端目录执行npm run build生成生产包,不要在主机上跑构建命令——虚拟主机的算力大概率会因为内存不足、超时导致构建失败 - 把本地生成的全量构建文件上传到主机对应目录后,通过主机自带的Web文件管理器,打开项目根目录下的
routes/web.php,临时插入几行命令一次性跑完Laravel的核心缓存优化:临时插入的代码示例,跑完立刻删除
Artisan::call('config:cache'); Artisan::call('route:cache'); Artisan::call('view:cache'); Artisan::call('migrate --force'); - 删除临时插入的代码后,访问域名验证接口连通性、前端页面渲染是否正常即可完成部署
有SSH权限场景的极简流程
如果主机开放了SSH连接,整个部署流程可以压缩到几条命令搞定:
- 拉取最新的线上目标分支代码
- 依次执行以下命令:
composer install --no-dev --optimize-autoloader npm run build php artisan migrate --force php artisan config:cache && php artisan route:cache - 刷新Web服务缓存即可完成部署,不需要逐文件手动调整
高频踩坑提醒
- 不要把
.env配置文件、前端源码目录、未编译的依赖包放到public可访问目录下,避免被恶意爬取 - 线上环境必须将
.env中的APP_DEBUG设置为false,避免报错堆栈、数据库结构等敏感信息直接暴露给访客 - Vue打包前要核对配置文件里的静态资源基础路径参数,确保和站点的实际访问路径匹配,不然会出现页面能打开但所有CSS、JS资源全部404的问题
- 跑完临时缓存命令后一定要删掉临时插入的执行代码,留着会存在被恶意触发命令执行的安全风险
内容的提问来源于stack exchange,提问作者liaqat ali
相关产品推荐
相关产品推荐

