这里也是自动部署一种方式,不用代码写完再去ftp上传,本地push到git服务期的时候 gitlab 会访问你设置的webhookurl url里面拉取你所做的修改
webhook里面代码
/** *
*
* YQ-2022/3/4 13:42
*/
//仅测试未做安全验证
$dir = '/www/wwwroot/';
chdir($dir);
$str = shell_exec("git pull");
file_put_contents($dir.'log/log.txt',var_export($str,true));
git pull 无法执行
1 看下php 是否禁用shell_exec 函数
2 看看php执行用户 php-fpm.conf 配置里面的用户 一般为www
3 给www 用户赋予执行git 命令权限 修改/etc/sudoers 找到下面位置
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
www ALL=NOPASSWD:/usr/bin/git
4 linux 切换至 www 创建.ssh 秘钥 并添加到gitlab
5 克隆项目到文件夹
注意 最好在克隆项目直接 用www 用户操作 用其他账户必须保证项目文件夹对www用户(php执行用户)用读写权限 包括.git 文件 不然操作不会成功的
后面本地推送项目会自动同步到线上服务器