Linux配置码云钩子

GIT / 586人浏览 / 0人评论

这几天配置码云钩子遇到了一点问题

 

我先是在服务器创建了一个 pull.php文件(该PHP 里面 就写了一个  echo 123;)。

 

然后去码云上面填写了 http://xxxxx.xxxxx.com/public/pull.php地址 码云钩子里面点击测试 可以成功返回123.说明我的地址也OK 么有问题

 

但是我把pull.php 里面 内容改成 echo   shell_exec("cd /www/wwwroot/www;  git pull 2<&1");(shell_exec()是执行 shell脚本函数)。确没有任何返回 也没有 把我的代码从 码云上面PULL下来

 

我好奇是不是我的 php脚本写的有问题 ?于是我登陆我的服务器   然后 用root账号 手动执行 php pull.php

 

居然成功了  把码云上面的代码成功的下载到我的服务器上了,这就说明我的脚本写的也没有问题

 

后来在网上找了一些资料 基本可以锁定 是用户的原因  我的环境是 apache 于是我就查询了我的apache账户  ps -elf|grep -E httpd   查到我的 apache账户 名字就叫 apache 

 

我想看一下 到底是不是 账户没有权限  我就切换到了 apache账号 (su apache)  切换之后 执行pull.php 确实权限不够 其实此时 你可以给apache账户设置 权限就好了 

 

但是我操作是 重新创建了一个 账户pull  并且给予 相关的权限  然后 更改 apache 的账户为  pull

 

我的操作是   

 

 

首先用adduser命令添加一个普通用户,命令如下:


#adduser pull  //添加一个名为pull的用户


#passwd pull   //修改密码


Changing password for user pull.


New UNIX password:     //在这里输入新密码


Retype new UNIX password:  //再次输入新密码


passwd: all authentication tokens updated successfully.


赋予root权限
方法一:修改 /etc/sudoers 文件,找到下面一行,把前面的注释(#)去掉


## Allows people in group wheel to run all commands


%wheel    ALL=(ALL)    ALL


然后修改用户,使其属于root组(wheel),命令如下:


#usermod -g root pull


修改完毕,现在可以用pull帐号登录,然后用命令 su - ,即可获得root权限进行操作。


方法二:修改 /etc/sudoers 文件,找到下面一行,在root下面添加一行,如下所示:


## Allow root to run any commands anywhere


root    ALL=(ALL)     ALL


pull   ALL=(ALL)     ALL


修改完毕,现在可以用pull帐号登录,然后用命令 su - ,即可获得root权限进行操作。

 

 

此时已经创建一个账户并且这个账号拥有 root 一般的权限     接着我需要把 apache 的账号修改成 pull  然后重启apache就可以了

 

首先要找到apache的配置文件 linux的配置文件一般都在 etc 下面   然后 apache 在linux 里面  叫  httpd 所以很好找

 

9900.png

 

打开配置文件  vim httpd.conf 找到下面这个位置  

 

apache.png

 

把原有的注释掉 改成你新创建的 用户名  跟组 就可以了 。最后保存 并且 重启 apache            service restart

 

OK !!!  回到码云 测试 完成

 

从此以后 不管是在家里  还是 公司  还是哪里   只要我写完代码   git push   码云就自动把代码 同步到 我的服务器上面了

 

 

其实原理很简单  码云 存储我的 代码      此时 服务器 编写 代码 想做个备份   就把代码  push到码云上面了       我下班回家 想接着把工作完成      那就把家里的 代码跟 白天在公司 工作的代码同步一下把  于是在家里 就 git pull 一下

 

这个时候我的代码  还有 码云 上面 存储的代码   加上 服务器的代码 我们是一致的    所以我可以 继续工作了   当我 完成工作的时候   我得让服务器 跟我同步 才行    于是我就把代码  push  到我的码云上面 

 

就在我 git push  的同事    码云 给我的服务器 发送了一个 post  请求    服务器的地址 就是我之前 填下在码云的http://xxxxx.xxxxx.com/public/pull.php   请求这个文件 然后这个文件  执行了一个 shell 脚本     脚本的操作 就是 把码云的代码 更新下来   git pull 

 

现在 即使是 服务器炸了 我代码  在码云有备份    码云炸了   家里 也有   家里  电脑坏了  公司 还有!!!

感谢博主,喝杯咖啡!~

0 条评论

还没有人发表评论

发表评论 取消回复

记住我的信息,方便下次评论
有人回复时邮件通知我