PHP 스크립트의 Git 자동 배포를 구현하는 방법
PHP 스크립트의 git 자동 배포를 구현하는 방법: 1. 웨어하우스 코드를 복제합니다. 3. Linux 권한을 변경하고 구성을 수정합니다. 4. sudoers에 www 사용자를 추가합니다. .웹훅 도메인 이름을 입력하고 PHP 스크립트를 업로드합니다.
이 문서의 운영 환경: 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-fpm.conf 구성을 수정하세요. 여기도 www입니다. 이는 php
의 기본 구성입니다. 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
보충: gitee가 공개 키를 입력하는 곳은 두 군데가 있는데, 하나는 웨어하우스의 공개 키를 입력하면 서버측 git 권한이 됩니다. 풀 권한만 있고 다른 하나는 계정의 공개 키입니다. 개인 계정의 공개 키를 입력하면 여기에서 개인 계정 공개 키를 직접 사용합니다. .마지막으로 웹훅 도메인 이름을 입력하고 PHP 스크립트를 업로드합니다
웹훅 알림 주소 도메인 이름을 입력합니다(비밀번호 설정이 비어 있으며 나중에 PHP에서 비밀번호 확인이 없으므로 보안을 고려하면 나중에 비밀번호를 설정하세요)
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 명령을 실행할 수 없습니다
문제 1
호스트 키 확인에 실패했습니다.
꼭 확인해주세요 올바른 액세스 권한이 있고
저장소가 존재합니다.归根结底还是因为linux权限的问题,我遇到的是出现一下问题
到这里的原因是因为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,这里可以用多种方式去实现执行linux脚本,nodejs,python等等
推荐学习:《PHP视频教程》
위 내용은 PHP 스크립트의 Git 자동 배포를 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

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

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

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

뜨거운 주제











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

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

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

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

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

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

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

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