<?php
 
//本地路径
$local = '/data/wwwroot/test';
//仓库地址
$remote = 'https://gitee.com/ligan0404/test.git';
 
//密码
$password = '123456';
 
//获取请求参数
$request = file_get_contents('php://input');
if (empty($request)) {
    die('request is empty');
}
 
//验证密码是否正确
$data = json_decode($request, true);
if ($data['password'] != $password) {
    die('password is error');
}
 
echo shell_exec("cd {$local} && git pull {$remote} 2>&1");
die('done ' . date('Y-m-d H:i:s', time()));
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

EasySwoole restart平滑升级脚步 restart.sh ,案例测试 http://integral.zjwoo.com

#!/bin/bash
# name:restart.sh
# author:gan
# version:1.0.0
# time:2021-09-03 10:12
export LANG=C.UTF-8

sysLog="/var/log/test_log.log"
newPath="/www/wwwroot/Integral.zjwoo.com/integral-mall-api-new"
newPathName="integral-mall-api-new"
oldPath="/www/wwwroot/Integral.zjwoo.com/integral-mall-api"
oldPathName="integral-mall-api"
gitPath="git@gitee.com:ligan0404/integral-mall-api.git"
nginxPath="/www/server/panel/vhost/nginx/integral.zjwoo.com.conf"
oldPort=9588
newPort=9589

echo "----------开始----------" >> $sysLog

echo "开始拉取git代码:`date "+%Y-%m-%d %H:%M:%S"`" >> $sysLog
git clone $gitPath $newPath
echo "结束拉取git代码:`date "+%Y-%m-%d %H:%M:%S"`" >> $sysLog

cd $newPath

echo "开始安装包:`date "+%Y-%m-%d %H:%M:%S"`" >> $sysLog
echo yes | composer install
echo "结束安装包:`date "+%Y-%m-%d %H:%M:%S"`" >> $sysLog


echo "开始修改配置和启动服务:`date "+%Y-%m-%d %H:%M:%S"`" >> $sysLog
cd $newPath
cp Data/dev.php dev.php
sed -i "s/$oldPort/$newPort/g" dev.php
php easyswoole start daemonize
echo "结束修改配置和启动服务:`date "+%Y-%m-%d %H:%M:%S"`" >> $sysLog


echo "开始修改nginx配置和重载服务:`date "+%Y-%m-%d %H:%M:%S"`" >> $sysLog
sed -i "s/$oldPort/$newPort/g" $nginxPath
sed -i "s/$oldPathName/$newPathName/g" $nginxPath
nginx -s reload
echo "结束修改nginx配置和重载服务:`date "+%Y-%m-%d %H:%M:%S"`" >> $sysLog


echo "开始停止旧服务:`date "+%Y-%m-%d %H:%M:%S"`" >> $sysLog
cd $oldPath
php easyswoole stop
echo "结束停止旧服务:`date "+%Y-%m-%d %H:%M:%S"`" >> $sysLog
echo "----------结束----------" >> $sysLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50