백엔드 개발 PHP 문제 PHP 스크립트의 Git 자동 배포를 구현하는 방법

PHP 스크립트의 Git 자동 배포를 구현하는 방법

Jan 11, 2022 am 09:40 AM
git php

PHP 스크립트의 git 자동 배포를 구현하는 방법: 1. 웨어하우스 코드를 복제합니다. 3. Linux 권한을 변경하고 구성을 수정합니다. 4. sudoers에 www 사용자를 추가합니다. .웹훅 도메인 이름을 입력하고 PHP 스크립트를 업로드합니다.

PHP 스크립트의 Git 자동 배포를 구현하는 방법

이 문서의 운영 환경: Linux5.9.8 시스템, Git 버전 2.30.0, DELL G3 컴퓨터

PHP 스크립트의 git 자동 배포를 구현하는 방법은 무엇입니까?

git+php 자동 webhook 배포 코드 동기화를 달성하는 스크립트

이 기사에서는 코드 동기화를 달성하기 위해 웹훅 자동화 스크립트를 배포하는 git+php를 소개합니다
웹훅 자동화 배포를 사용하는 Git은 정교한 기술은 아니지만 많은 우회를 했습니다. 첫 번째 배포에서는 주로 Linux 초보자로 간주됩니다. 이 문서에서는 오류가 발생하기 쉬운 문제와 함정을 기록합니다.
준비
접근 가능한 웹 도메인 이름, 서버 측 PHP 스크립트 및 웨어하우스 코드 클라우드 gitee

자동 프로세스 배포 lnmp 환경에서는 로컬 push->gitee Warehouse webhook->linux server php script pull
먼저 gitee 코드 클라우드에 웨어하우스를 만듭니다
SSH 프로토콜을 사용하여 로컬에서 웨어하우스와 통신합니다. SSH 공개 주소를 생성하는 방법은 아래에 소개합니다. Linux에서 소개될 키

1. git

yum install git
로그인 후 복사

를 설치합니다. 2. 웨어하우스 코드를 복제합니다. "Ssh 프로토콜을 사용해야 하며 나머지는 SSH 기반입니다. "

git initgit clone git@gitee.com:zhuyanbin/HiAdmin.git
로그인 후 복사

3. Linux 권한 변경 및 구성 수정
웹훅이 서버에 외부 접속임을 알리기 때문에 여기서 관리자 사용자는 기본적으로 www 사용자이므로 www에 충분한 권한을 부여해야 합니다

vim /etc/passwd
添加下面的一行
www:x:1001:1001::/home/www:/bin/bash
로그인 후 복사

1001은 사용자 그룹의 ID입니다. 다음 명령을 사용하여 사용자의 ID를 확인하세요 www

cat /etc/group
로그인 후 복사

www 사용자를 sudoers에 추가하고 비밀번호 없이 쉘을 실행하세요

#(1) sudoers를 쓸 수 있는 권한을 추가하세요 현재 사용자

chmod u+w /etc/sudoers
로그인 후 복사

#(2) Edit sudoers

vim /etc/sudoers
로그인 후 복사

#(3) Allow root to run any Command Anywhere를 검색하고 루트 사용자의 해당 줄 아래에 다음 내용을 작성합니다.

www     ALL=(ALL)       NOPASSWD:/usr/bin/git
로그인 후 복사

#(4) 다시 가져오기 sudoers

chmod u-w /etc/sudoers
로그인 후 복사

PHP 스크립트의 Git 자동 배포를 구현하는 방법
에 대한 쓰기 권한 방문자를 설정하려면 php-fpm.conf 구성을 수정하세요. 여기도 www입니다. 이는 php

PHP 스크립트의 Git 자동 배포를 구현하는 방법
의 기본 구성입니다. 4. 마지막으로 키를 생성합니다(이 단계에서는 반드시 키를 생성하려면 www 사용자가 되십시오. ps: 저는 이틀 동안 이 곳에 갇혀 있었고 루트 관리자 계정을 사용하여 키를 생성했습니다. Baidu는 며칠 동안 다양한 방법을 시도한 다음 www로 전환했습니다. 사용자가 키를 생성했고 모든 것이 정상이었습니다)

공개 키 생성

mkdir -p /home/www/.ssh
로그인 후 복사
chown -R www.www /home/www/.ssh
로그인 후 복사
ssh-keygen -t rsa
로그인 후 복사

공개 키 보기

cat /home/www/.ssh/id_rsa.pub
로그인 후 복사

생성된 공개 키를 gitee 코드 클라우드 웨어하우스 공개 키에 복사하세요. 자리를 채워주세요
https://gitee. com/profile/sshkeys
PHP 스크립트의 Git 자동 배포를 구현하는 방법
보충: gitee가 공개 키를 입력하는 곳은 두 군데가 있는데, 하나는 웨어하우스의 공개 키를 입력하면 서버측 git 권한이 됩니다. 풀 권한만 있고 다른 하나는 계정의 공개 키입니다. 개인 계정의 공개 키를 입력하면 여기에서 개인 계정 공개 키를 직접 사용합니다. .마지막으로 웹훅 도메인 이름을 입력하고 PHP 스크립트를 업로드합니다
웹훅 알림 주소 도메인 이름을 입력합니다(비밀번호 설정이 비어 있으며 나중에 PHP에서 비밀번호 확인이 없으므로 보안을 고려하면 나중에 비밀번호를 설정하세요)

PHP 스크립트의 Git 자동 배포를 구현하는 방법 PHP 스크립트 핸들러 Hook.php(리눅스 명령 실행)를 올려주세요

    chdir("/home/wwwroot/default/HiAdmin");
    exec("git pull origin master 2>&1", $out);
    foreach($out as $v)
    {
        echo iconv( 'GB2312','UTF-8', $v)."<br>";
    }
로그인 후 복사
이렇습니다. 위의 서버 코드를 구성한 후 자동으로 동기화하여 자동 배포를 완료할 수 있습니다

문제가 발생했습니다

1. php 스크립트가 실행되지 않습니다

그 이유는 Linux 스크립트 함수 exec() 실행을 포함하여 php.ini의 많은 PHP 함수가 기본적으로 열리지 않기 때문입니다.
php.ini를 찾고, 비활성화_함수를 찾으세요. 2. git pull 명령을 실행할 수 없습니다

문제 1PHP 스크립트의 Git 자동 배포를 구현하는 방법
호스트 키 확인에 실패했습니다.

fatal : 원격 저장소에서 읽을 수 없습니다.

꼭 확인해주세요 올바른 액세스 권한이 있고

저장소가 존재합니다.

归根结底还是因为linux权限的问题,我遇到的是出现一下问题
PHP 스크립트의 Git 자동 배포를 구현하는 방법
到这里的原因是因为root生成git公钥密钥,而切换到www后生成公钥密钥后就成功了(上述第四小步生成公钥,一定使用www生成公钥密钥)

问题二

error: insufficient permission for adding an object to repository database .git/objects
fatal: failed to write object
fatal: unpack-objects failed

这个还是没有权限执行git命令,只需要执行以下

第一步:cd .git/objects  定位到git下的objects文件下
第二步: ls -al 查看git库的所有者(git用户 git组)
第三步: chown -R yourname:yourgrounp * 或者sudo chmod 777 -R .git/objects 提交
로그인 후 복사

最后解决完以上问题,大功告成,上一张成功的截图
PHP 스크립트의 Git 자동 배포를 구현하는 방법
自己的后端语言是php,这里可以用多种方式去实现执行linux脚本,nodejs,python等等

推荐学习:《PHP视频教程

위 내용은 PHP 스크립트의 Git 자동 배포를 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. 크로스 플레이가 있습니까?
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

git로 저장소를 삭제하는 방법 git로 저장소를 삭제하는 방법 Apr 17, 2025 pm 04:03 PM

git 저장소를 삭제하려면 다음 단계를 따르십시오. 삭제하려는 저장소를 확인하십시오. 로컬 리포지토리 삭제 : rm -rf 명령을 사용하여 폴더를 삭제하십시오. 원격으로 창고 삭제 : 창고 설정으로 이동하고 "창고 삭제"옵션을 찾은 후 작동을 확인하십시오.

GIT 서버의 공개 네트워크에 연결하는 방법 GIT 서버의 공개 네트워크에 연결하는 방법 Apr 17, 2025 pm 02:27 PM

GIT 서버를 공개 네트워크에 연결하려면 5 가지 단계가 포함됩니다. 1. 공개 IP 주소 설정. 2. 방화벽 포트를 엽니 다 (22, 9418, 80/443); 3. SSH 액세스 구성 (키 쌍 생성, 사용자 생성); 4. HTTP/HTTPS 액세스 구성 (설치 서버, 권한 구성); 5. 연결을 테스트합니다 (SSH 클라이언트 또는 GIT 명령 사용).

git 코드 충돌을 다루는 방법 git 코드 충돌을 다루는 방법 Apr 17, 2025 pm 02:51 PM

코드 충돌은 여러 개발자가 동일한 코드를 수정하고 변경 사항을 자동으로 선택하지 않고 합병 할 때 발생하는 충돌을 말합니다. 해상도 단계에는 다음이 포함됩니다. 충돌하는 파일을 열고 충돌하는 코드를 찾으십시오. 코드를 수동으로 병합하고 보관하려는 변경 사항을 충돌 마커에 복사하십시오. 충돌 마크를 삭제하십시오. 변경 사항을 저장하고 제출하십시오.

git에서 빈 폴더를 제출하는 방법 git에서 빈 폴더를 제출하는 방법 Apr 17, 2025 pm 04:09 PM

git에 빈 폴더를 제출하려면 다음 단계를 따르십시오. 1. 빈 폴더를 만듭니다. 2. 스테이징 영역에 폴더를 추가하십시오. 3. 변경 사항을 제출하고 커밋 메시지를 입력하십시오. 4. (선택 사항) 변경 사항을 원격 저장소로 밀어 넣습니다. 참고 : 빈 폴더의 이름은 시작할 수 없습니다. 폴더가 이미 존재하는 경우 git add -force를 사용하여 추가해야합니다.

git에서 ssh 키를 생성하는 방법 git에서 ssh 키를 생성하는 방법 Apr 17, 2025 pm 01:36 PM

원격 GIT 서버에 안전하게 연결하려면 공개 및 개인 키를 포함하는 SSH 키를 생성해야합니다. SSH 키를 생성하는 단계는 다음과 같습니다. 터미널을 열고 명령을 엽니 다. 개인 키를 보호하려면 비밀번호 문구를 입력하십시오. 공개 키를 원격 서버에 복사하십시오. 개인 키를 계정에 액세스하기위한 자격 증명이므로 개인 키를 올바르게 저장하십시오.

GIT 계정에 공개 키를 추가하는 방법 GIT 계정에 공개 키를 추가하는 방법 Apr 17, 2025 pm 02:42 PM

GIT 계정에 공개 키를 추가하는 방법은 무엇입니까? 단계 : SSH 키 쌍을 생성합니다. 공개 키를 복사하십시오. Gitlab 또는 Github에 공개 키를 추가하십시오. SSH 연결을 테스트하십시오.

git rebase를 사용하는 방법 git rebase를 사용하는 방법 Apr 17, 2025 pm 04:00 PM

Git Rebase는 기록을 정리하거나 가지를 재배치하기 위해 새로운 기준선에 커밋하는 데 사용됩니다. 사용 방법 : 대상 분기 생성 커밋을 선택하고 GIT Rebase 명령을 실행하고 실행하고, 대상 지점을 지정하고, 충돌을 해결하고, 나머지 커밋 확인 변경을 계속 다시 적용 할 수 있습니다.

git 저장소 사용 방법 git 저장소 사용 방법 Apr 17, 2025 pm 04:06 PM

GIT 저장소는 변경 사항을 추적, 협업 및 프로젝트 버전을 관리하는 데 사용되는 코드 및 파일 버전 기록의 저장 위치입니다. git 저장소를 사용하려면 다음 단계를 수행하십시오. 저장소 작성 : git init를 실행하십시오. 파일 추가 : git을 사용하여 파일을 준비 영역에 추가하십시오. 커밋 변경 : GIT 커밋을 사용하여 저장소에 스테이징 변경을 저장하십시오. 푸시 변경 : GIT 푸시를 사용하여 원격 저장소로 변경 사항을 푸시하십시오. 풀 변경 : Git Pull을 사용하여 원격 저장소에서 변경 사항을 얻으십시오. 분기 : git 브랜치를 사용하여 지점을 만듭니다. 병합 : GIT 병합을 사용하여 다른 지점의 변경 사항을 병합하십시오. 태그 : git 태그를 사용하십시오

See all articles