当前位置:   article > 正文

利用webhook 实现自动化部署 【PHP版本】

webhook your local changes to the following files would be overwritten by me

1、先git clone 代码

2、配置nginx,域名绑定到代码目录

3、在代码目录创建 webhook.php (随意命名)

  1. <?php
  2. $pwd = getcwd();
  3. $command = 'cd ' . $pwd . ' && git pull 2>&1'; // 2>&1 是输出错误,有利于调试
  4. $output = shell_exec($command);
  5. file_put_contents('./webhook.log', $output);// 输出内容保存到日志,需要注意日志文件要有足够的权限
  6. print $output;
  7. ?>

4、配置码云webhook,url为 http://yourdomain/webhook.php

5、碰到问题了:git pull 需要输入账号密码

解决办法:

  1. 执行git config --global credential.helper store命令
  2. 然后git push origin your-branch       // your-branch就是分支的名字
  3. //会让你输入用户名和密码,就会保存起来,下次就不需要了

6、创建密钥

$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
Enter a file in which to save the key (/c/Users/you/.ssh/id_rsa):[Press enter] // 这里填写 /home/www/.ssh/id_rsa,因为nginx用户组是www,之后一路回车
$ eval $(ssh-agent -s)
$ ssh-add /home/www/.ssh/id_rsa

之后就复制 /home/www/.ssh/id_rsa_pub里面的内容,添加到码云->设置->SSH公钥里面

注意:/home/www/.ssh 目录用户组:用户需要设置为, chown -R www:www /home/www/.ssh

Git 常见问题解决

Your local changes to the following files would be overwritten by merge: index1.html Please, commit your changes or stash them before you can merge

在服务器上可以直接执行退回上一个版本,再拉取代码(因为没人会在服务器开发,代码都在码云,不担心没了)

  1. git reset --hard
  2. git pull origin your-branch

 

转载于:https://my.oschina.net/sskill/blog/2980280

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/488141
推荐阅读
相关标签
  

闽ICP备14008679号