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

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으로 문의하세요.
산과 기본 데이터베이스 : 차이 및 각각을 사용 해야하는시기.산과 기본 데이터베이스 : 차이 및 각각을 사용 해야하는시기.Mar 26, 2025 pm 04:19 PM

이 기사는 산 및 기본 데이터베이스 모델을 비교하여 특성과 적절한 사용 사례를 자세히 설명합니다. 산은 금융 및 전자 상거래 애플리케이션에 적합한 데이터 무결성 및 일관성을 우선시하는 반면 Base는 가용성 및

PHP 보안 파일 업로드 : 파일 관련 취약점 방지.PHP 보안 파일 업로드 : 파일 관련 취약점 방지.Mar 26, 2025 pm 04:18 PM

이 기사는 코드 주입과 같은 취약점을 방지하기 위해 PHP 파일 업로드 보안에 대해 설명합니다. 파일 유형 유효성 검증, 보안 저장 및 오류 처리에 중점을 두어 응용 프로그램 보안을 향상시킵니다.

PHP 입력 유효성 검증 : 모범 사례.PHP 입력 유효성 검증 : 모범 사례.Mar 26, 2025 pm 04:17 PM

기사는 내장 함수 사용, 화이트리스트 접근 방식 및 서버 측 유효성 검사와 같은 기술에 중점을 둔 보안을 향상시키기 위해 PHP 입력 유효성 검증에 대한 모범 사례를 논의합니다.

PHP API 요율 제한 : 구현 전략.PHP API 요율 제한 : 구현 전략.Mar 26, 2025 pm 04:16 PM

이 기사는 토큰 버킷 및 누출 된 버킷과 같은 알고리즘을 포함하여 PHP에서 API 요율 제한을 구현하고 Symfony/Rate-Limiter와 같은 라이브러리 사용 전략에 대해 설명합니다. 또한 모니터링, 동적 조정 요율 제한 및 손도 다룹니다.

PHP 비밀번호 해싱 : password_hash 및 password_verify.PHP 비밀번호 해싱 : password_hash 및 password_verify.Mar 26, 2025 pm 04:15 PM

이 기사에서는 PHP에서 암호를 보호하기 위해 PHP에서 Password_hash 및 Password_Verify 사용의 이점에 대해 설명합니다. 주요 주장은 이러한 기능이 자동 소금 생성, 강한 해싱 알고리즘 및 Secur를 통해 암호 보호를 향상 시킨다는 것입니다.

OWASP Top 10 PHP : 일반적인 취약점을 설명하고 완화하십시오.OWASP Top 10 PHP : 일반적인 취약점을 설명하고 완화하십시오.Mar 26, 2025 pm 04:13 PM

이 기사는 PHP 및 완화 전략의 OWASP Top 10 취약점에 대해 설명합니다. 주요 문제에는 PHP 응용 프로그램을 모니터링하고 보호하기위한 권장 도구가 포함 된 주입, 인증 파손 및 XSS가 포함됩니다.

PHP XSS 예방 : XSS로부터 보호하는 방법.PHP XSS 예방 : XSS로부터 보호하는 방법.Mar 26, 2025 pm 04:12 PM

이 기사는 PHP의 XSS 공격을 방지하기위한 전략, 입력 소독, 출력 인코딩 및 보안 향상 라이브러리 및 프레임 워크 사용에 중점을 둔 전략에 대해 설명합니다.

PHP 인터페이스 대 추상 클래스 : 각각을 사용할 때.PHP 인터페이스 대 추상 클래스 : 각각을 사용할 때.Mar 26, 2025 pm 04:11 PM

이 기사는 각각의 사용시기에 중점을 둔 PHP의 인터페이스 및 추상 클래스 사용에 대해 설명합니다. 인터페이스는 관련없는 클래스 및 다중 상속에 적합한 구현없이 계약을 정의합니다. 초록 클래스는 일반적인 기능을 제공합니다

See all articles

핫 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 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.