>  기사  >  PHP 프레임워크  >  웹 후크 서버가 자동으로 코드를 가져오는 정보 PHP thinkphp6

웹 후크 서버가 자동으로 코드를 가져오는 정보 PHP thinkphp6

藏色散人
藏色散人앞으로
2021-06-24 15:18:572174검색

Github 준비

1.웨어하우스 설정에서 웹후크 추가

개인 창고를 예로 들어보세요:
웹 후크 서버가 자동으로 코드를 가져오는 정보 PHP thinkphp6

1.웨어하우스를 생성한 후 설정을 클릭하세요.

웹훅 액세스 경로 설정:
웹 후크 서버가 자동으로 코드를 가져오는 정보 PHP thinkphp6

내 프로젝트를 예로 들면 프레임워크는 tp6을 사용합니다. public/ 아래에 basic.php라는 파일을 만듭니다. 이 파일은 코드가 서버에 푸시될 때 GitHub가 액세스하고 실행할 수 있는 파일입니다.
이 파일은 링크가 트리거되면 파일의 명령이 자동으로 실행되어 자동 git pull을 구현하는 데 사용됩니다.

2. 링크가 유효한지, 파일에 접근했는지 테스트

웹 후크 서버가 자동으로 코드를 가져오는 정보 PHP thinkphp6

위 그림과 같이 녹색 ✅이 나타나면 링크에 접근했다는 뜻이고, 빨간색 ⚠️ 표시가 나타나면 메시지가 나타나면 해당 파일에 액세스하지 않았음을 의미합니다. 링크에 문제가 있는지, 코드에 문제가 있는지 확인할 때 사용합니다.
  • [x] Github이 완성되었습니다.

    PHP 코드 배포

    1. 후크 파일 추가 및 쉘 명령 실행

    일부는 아래와 같습니다 内联代码片.

<?php     //git webhook 自动部署脚本
    $requestBody = file_get_contents("php://input");    //接收数据
    if (empty($requestBody)) {              //判断数据是不是空
        die(&#39;send fail&#39;);
    }
    $content = json_decode($requestBody, true);     //数据转换
    //若是主分支且提交数大于0
    if ($content[&#39;ref&#39;]==&#39;refs/heads/main&#39;) {
     //或将命令加入 shell里,看个人需求 git reset --hard origin/master && git clean -f
        $res = shell_exec(&#39;cd /www/wwwroot/xxxx/ && echo `sudo git pull` >> b.log');//PHP函数执行git命令
        $res_log = '-------------------------'.PHP_EOL;
        $res_log .= ' 在' . date('Y-m-d H:i:s') . '向' . $content['repository']['name'] . '项目的' . $content['ref'] . '分支push'.$res;
        file_put_contents("git-webhook.txt", $res_log, FILE_APPEND);//将每次拉取信息追加写入到日志里
    }
?>
  • [x] 이제 명령의 PHP 셸 부분이 완료되었으며 다양한 프로젝트 요구에 따라 디버깅할 수 있습니다.

    일반적인 오류 처리

    1. .php.ini 파일에서는 셸이 비활성화되지 않습니다. 이 오류는 비교적 일반적이며 디버깅 중에 쉽게 찾을 수 있으므로 자세히 설명하지 않겠습니다.

    방법: php.ini에서 shell_exec를 삭제하고 서비스를 다시 시작하세요.

    2..git 권한 문제, .git/ 디렉터리의 파일 권한 그룹을 www

    로 변경하세요. 일반적으로 권한 오류가 발생하면 해당 파일 디렉터리가 권한 그룹인지 먼저 확인하는 것이 좋습니다. 그렇지 않은 경우 다음 명령을 사용하여 파일 권한 그룹을 수정할 수 있습니다
    //以www用户组为例
    chown -R www:www file/

    3. 권한 그룹 문제

    이전 프로세스에 문제가 없고 코드에 문제가 없다고 판단되면 단계별로 문제를 해결하세요. 여전히 자동으로 풀링되지 않습니다. 위의 셸을 수동으로 실행하면 코드가 성공적으로 풀려날 수 있습니다. 로그 기록을 켜십시오. 로그 기록의 내용이 비어 있으면 이전 버전을 새 버전으로 교체해 보십시오. 4. 호스트 키 확인에 실패했습니다.^M 치명적: 원격 담당자에서 읽을 수 없습니다. ...

    www 권한 그룹에서 github에 연결하기 위한 공개키가 생성되지 않았기 때문입니다

    여기 작성자는 다른 해결 방법이 있으면 이 방법을 사용합니다. , 비공개 메시지나 댓글 영역 메시지를 보내 주시기 바랍니다.

    vim /etc/sudoers를 열고 비밀번호 없이 sudo 권한을 실행하려면 루트 아래에 www 줄을 추가하세요.

    웹 후크 서버가 자동으로 코드를 가져오는 정보 PHP thinkphp6
    5 이제 웹후크가 작동하고 파일을 수정하여 제출하고 로그를 쿼리할 수 있습니다.

    웹 후크 서버가 자동으로 코드를 가져오는 정보 PHP thinkphp6
    로컬 환경 centos + php7.3 + nginx

위 내용은 웹 후크 서버가 자동으로 코드를 가져오는 정보 PHP thinkphp6의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 segmentfault.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제