kavo

在生产服务器 Git clone 一个 Laravel 私有仓库

本教程以 aaPanel 为例,请根据 laravel 版本安装好对应 php nginx mysql redis 等 web 环境所需

然后安装好 php 所需扩展,比如

fileinfo redis 等

 将 php 的禁用函数开启

putenv()
proc_open()
proc_get_status()

 记得重启 php

然后应用安装 PM2 Manager ,也就是安装 nodejs

将 gitlab 的通信私钥 id_rsa 上传到生产环境服务器下的 root 目录下的 .ssh 目录下

然后到 www/wwwroot 执行

git clone 项目地址

 Git 拉取下来的用户组一般为 root ,需要更改为 www 或者自己对应的 web 环境用户组

chgrp -R laravel *

检查 compose 版本,如果较低,请更新 composer 否则 执行 install 会报错

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 的密钥

cp .env.example .env

php artisan key:generate

 配置 env 中的数据库信息,并执行 migrate 生成数据表

php artisan migrate

 对需要权限的目录进行分配权限

chmod -R 775 storage bootstrap/cache

 

 如果后台使用了 filament 来构建,然后前端有使用 php artisan make:livewire-table 来构建了页面,这时样式可能会错位不完整,需要

php artisan filament:assets

确保了 Filament 所需的所有静态资源都被正确复制到你的项目中

安装前端组件,并编译前端文件

npm install

npm run build

 Laravel 的 Livewire 是一个很好的包组件,但是通常 clone 到生产环境会失效,包括 alpinejs ,所以在生产环境,也是更好的为了提高性能,请执行

php artisan livewire:publish --assets

 

这时网站应该已经可以正常访问了

 

保持在本地开发更新代码,然后再线上来执行 pull 同步

将线上 rclone 后的代码更改用户组,执行 git 会出错,这是因为以 root 用户身份操作非 root 用户创建的 Git 仓库。

git config --global --add safe.directory /www/wwwroot/你的目录

 执行更新

git pull origin main

 使用宝塔等网站面板,在添加域名时,可能会在网站目录生成一些其他文件,这时执行 git pull 会产生问题,因为本地文件产生变化,这时可以以下操作

git reset --hard
git reset --hard HEAD


#在执行 Pull

git pull origin main

 

posted on 2024-05-28 17:59  下雨天唱情歌  阅读(14)  评论(0编辑  收藏  举报

导航