在生产服务器 Git clone 一个 Laravel 私有仓库
本教程以 aaPanel 为例,请根据 laravel 版本安装好对应 php nginx mysql redis 等 web 环境所需
然后安装好 php 所需扩展,比如
1 | fileinfo redis 等 |
将 php 的禁用函数开启
1 2 3 | putenv() proc_open() proc_get_status() |
记得重启 php
然后应用安装 PM2 Manager ,也就是安装 nodejs
将 gitlab 的通信私钥 id_rsa 上传到生产环境服务器下的 root 目录下的 .ssh 目录下
然后到 www/wwwroot 执行
1 | git clone 项目地址 |
Git 拉取下来的用户组一般为 root ,需要更改为 www 或者自己对应的 web 环境用户组
1 | chgrp -R laravel * |
检查 compose 版本,如果较低,请更新 composer 否则 执行 install 会报错
1 | composer self-update |
继续执行
# 1. 安装依赖,不包含开发包
composer install --no-dev --optimize-autoloader
composer install --no-dev --optimize-autoloader --no-interaction --prefer-dist
# 2. 优化配置加载
php artisan config:cache
# 3. 优化路由加载
php artisan route:cache
# 4. 优化视图加载
php artisan view:cache
# 5. 如果使用了事件监听器
php artisan event:cache
配置环境文件并执行更新 laravel 的密钥
1 2 3 | cp . env .example . env php artisan key:generate |
配置 env 中的数据库信息,并执行 migrate 生成数据表
1 | php artisan migrate |
对需要权限的目录进行分配权限
1 | chmod -R 775 storage bootstrap /cache |
如果后台使用了 filament 来构建,然后前端有使用 php artisan make:livewire-table 来构建了页面,这时样式可能会错位不完整,需要
php artisan filament:assets
确保了 Filament 所需的所有静态资源都被正确复制到你的项目中
安装前端组件,并编译前端文件
1 2 3 | npm install npm run build |
Laravel 的 Livewire 是一个很好的包组件,但是通常 clone 到生产环境会失效,包括 alpinejs ,所以在生产环境,也是更好的为了提高性能,请执行
1 | php artisan livewire:publish --assets |
这时网站应该已经可以正常访问了
保持在本地开发更新代码,然后再线上来执行 pull 同步
将线上 rclone 后的代码更改用户组,执行 git 会出错,这是因为以 root 用户身份操作非 root 用户创建的 Git 仓库。
1 | git config --global --add safe.directory /www/wwwroot/ 你的目录 |
执行更新
1 | git pull origin main |
使用宝塔等网站面板,在添加域名时,可能会在网站目录生成一些其他文件,这时执行 git pull 会产生问题,因为本地文件产生变化,这时可以以下操作
git reset --hard git reset --hard HEAD #在执行 Pull git pull origin main
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix