公开库
第一步,在码云建立公开库。不做介绍。为什么使用码云,是在国内码云比github速度要快很多。
第二步,在服务器新建站点。不做介绍。
计划任务的方式
在计划任务里添加以下脚本
#!/bin/bash
echo ""
#输出当前时间
date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"
echo "Start"
#git项目路径(把下面引号内的路径,更改为你站点根目录的地址)
gitPath="/www/wwwroot/www.xxx.com"
#git 网址 (替换成你的git地址,可选择https方式或者ssh方式)
gitHttp="https://gitee.com/nxtt/nxcrm.git"
echo "Web站点路径:$gitPath"
#判断项目路径是否存在
if [ -d "$gitPath" ];
then
cd $gitPath
#判断是否存在git目录
if [ ! -d ".git" ];
then
echo "在该目录下克隆 git"
sudo git clone $gitHttp gittemp
sudo rm -rf .git
sudo mv gittemp/.git .
sudo rm -rf gittemp
fi
#拉取最新的项目文件
sudo git reset --hard origin/master
sudo git pull
#设置目录权限
sudo chown -R www:www $gitPath
chmod -R 755 $gitPath
chmod -R 777 $gitPath/bootstrap/cache
chmod -R 777 $gitPath/storage
php artisan migrate
echo "拉取最新文件完成"
php artisan migrate
echo "数据库升级完成"
composer dump
echo "End"
exit
else
echo "该项目路径不存在"
echo "End"
exit
fi
webhook的方式
以宝塔为例
在宝塔添加宝塔webhook
插件。然后在插件内添加规则
标题任意,脚本内容填写以下脚本
#!/bin/bash
echo ""
#输出当前时间
date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"
echo "Start"
#判断宝塔WebHook参数是否存在
if [ ! -n "$1" ];
then
echo "param参数错误"
echo "End"
exit
fi
#git项目路径($1是param后面的参数,指向你的服务器的目录)
gitPath="/www/wwwroot/$1"
#git 网址 (替换成你的git地址,可选择https方式或者ssh方式)
gitHttp="xxxxxxxxxxxxxxxxxx.git"
echo "Web站点路径:$gitPath"
#判断项目路径是否存在
if [ -d "$gitPath" ];
then
cd $gitPath
#判断是否存在git目录
if [ ! -d ".git" ];
then
echo "在该目录下克隆 git"
sudo git clone $gitHttp gittemp
sudo rm -rf .git
sudo mv gittemp/.git .
sudo rm -rf gittemp
fi
#备份排除文件
sudo mkdir temp/
sudo mv config/admin.php temp
sudo mv app/Admin/Controllers/HomeController.php temp
sudo mv app/Http/Kernel.php temp
sudo mv resources/views/admin/login/login.blade.php temp
#拉取最新的项目文件
sudo git reset --hard origin/master
sudo git pull
#恢复备份文件
sudo mv temp/admin.php config
sudo mv temp/HomeController.php app/Admin/Controllers
sudo mv temp/Kernel.php app/Http
sudo mv temp/login.blade.php resources/views/admin/login
sudo rm -rf temp
#设置目录权限
sudo chown -R www:www $gitPath
chmod -R 755 $gitPath
chmod -R 777 $gitPath/bootstrap/cache
chmod -R 777 $gitPath/storage
echo "拉取最新文件完成"
php artisan migrate
echo "数据库升级完成"
php artisan view:clear
echo "更新缓存完成"
echo "End"
exit
else
echo "该项目路径不存在"
echo "End"
exit
fi
提交后,点查看密钥
,复制一下红框内链接
找到码云的项目库。点击管理。找到左侧的webhook,点击添加。
在URL
内添加在宝塔密钥内复制的网址。将网址后面的
param=aaa
改为你的laravel项目地址比如
param=crm.demo.nx.tt
按照上图选中其他选项。提交即可。这时候,你只要往这个项目库提交更新,你线上的网站也会自动更新。