前提

PHP (打开shell_exec禁用函数)

Git

Linux

实现

切换用户

在linux上执行命令切换到www用户

1
sudo su -s /bin/bash www

克隆代码

以这种方式克隆代码

1
git clone https://username:password@github.com/sheaxiang/shea.git

相当于在克隆代码的路径上增加username:password@, 其中username, password是你的账号密码

增加hook

在项目路径中增加gitpull.php, 文件名称可根据自己实际情况更改

1
2
3
<?php

echo shell_exec("git pull 2>&1");

注意:这里我只写了简单的实现,在生产项目中千万别这么写,会容易受到攻击, 优化方案可以是 增加访问路径难度, 验证密码,密码正确才执行命令

说明

当第一次部署好之后,我们下次项目需要拉取代码时,就可以直接访问gitpull.php文件