>  기사  >  백엔드 개발  >  PHP 프로젝트 버전 제어 및 릴리스 프로세스

PHP 프로젝트 버전 제어 및 릴리스 프로세스

不言
不言원래의
2018-04-26 14:39:074720검색

이 기사에서는 PHP 프로젝트 버전 관리 및 릴리스 프로세스에 대해 공유할 것입니다. 필요한 친구는 이를 살펴볼 수 있습니다. =>GIT 웨어하우스==>테스트 서버] GIT 웨어하우스에 제출이 완료되면 GIT는 테스트 서버 후크 스크립트를 트리거하여 업데이트 코드를 자동으로 PULL합니다.



테스트 서버

실행 원칙

PHP 스크립트:/home/git/hook/

www.xxx.com.php, 참고: 비활성화_기능의 시스템은 php.ini에서 삭제되어야 합니다(즉, 스크립트 실행 권한 활성화)

  1. git push 웨어하우스 POST가 트리거되면 PHP 스크립트의 URL은

    http://XXX.XXX.COM/hook/www.xxx.com.php

    1. 입니다. 그런 다음 PHP 스크립트는 SHELL 스크립트의 실행을 지연시킵니다. SHELL 스크립트는 웨어하우스에서 코드 가져오기를 구현합니다. oschina: git@git.oschina.net:echobar/test.git
    2. Ssh 프로토콜 및 주소로 수정: git 원격 set-url 원본 git@git.oschina.net:echobar/test.git

      git pull
    3. www 사용자를 위한 홈 디렉토리(공개 키)를 생성합니다. 모든 GIT 소유자는 www로 설정됩니다. 그렇지 않으면 권한이 부족하여 SHELL 스크립트를 자동으로 실행할 수 없습니다.)

    4. 공개 키 생성

      공개 키 보기: cat ~/.ssh/id_rsa.pub
    5. git.oschina.net
    6. mkdir /home/www && chown -R www:www /의 공개 키 설정에 복사하세요. home/www
    7. sudo -u www ssh-keygen -t rsa -C " 15516026@qq.com"
    8. yum -y insall git
    9. cd /home
    10. sudo -u www git clone git@git.oschina.net:echobar/test.git
    11. git 설치, www 사용자를 사용하여 프로젝트 복제
    12. 공개 키 구성
    13. 수동으로 코드 가져오기 테스트
    14. GIT 코드를 가져오는 후크 스크립트 작성

    15. $params = $_GET + $_POST + $_SERVER;
    16. if (isset($params['HTTP_USER_AGENT']) && $params['HTTP_USER_AGENT'] == 'git-oschina-hook'){

    17. sleep(10);
    18. $cmd = "/home/git/hook/www.xxx.com.sh";

    19. system ($cmd, $rs);
    20. }

    21. SHELL 스크립트:/home/git/hook/ www.xxx.com.sh

      , 참고: chmod a+x 권한을 실행하는 것을 잊지 마세요 * .sh
    22. #!/bin/bash
cd /home/www.xxx.com && git pull

#log

echo "`날짜 +%Y%m%d_%H%M%S `,풀 코드 성공[마스터]" >> "/home/git/hook/log/pull_www.xxx.com_ `date +%Y%m`.log"

GIT 웨어하우스 호스팅 코드:

https ://git.oschina.net

    개인 프로젝트 만들기 www.xxx.com
  1. 웹훅 설정 주소는 위 테스트 서버의 PHP 스크립트 URL입니다:http://XXX. XXX.COM/hook/www.xxx.com.php

프로젝트 또는 개인 사용자 설정에 공개 키 추가(개인 사용자 설정 권장) 여기에서는 모든 프로젝트가 전 세계적으로 동일한 공개 키를 사용할 수 있습니다.

local

  1. git 클론 https://git.oschina.net/echobar/www.xxx.com.git

  2. .gitignore에 주의하세요. 동기화할 필요가 없는 파일과 디렉터리를 제외하도록 설정하세요.

  3. 파일 추가/수정

  4. git add .

  5. git commit - m test

  6. git pull

  7. git rebase master

  8. git push

  9. sudo -Hu www git config --global user.name "echobar"

  10. sudo -Hu www git config --global user .email "15516026@qq.com" # oschina

  11. gitconfiguration

  12. git 창고에 로컬 코드를 제출하세요

  13. oschina에서 확인하세요. 프로젝트 파일이 성공적으로 업데이트 되었는지

  14. Check 테스트 서버 코드가 업데이트 되었는지 확인하세요. 업데이트가 되었다면 구성이 성공했다는 뜻입니다. 가끔 성공하고 가끔 실패한다면, 지연 문제일 수 있습니다. 후크 호출을 가져오려면 PHP 스크립트 지연 시간을 수정하거나 다음 코드를 수동으로 실행해야 합니다. http: //xxx.xxx.com/hook/www.xxx.com.php?HTTP_USER_AGENT=git-oschina-hook

2. [테스트 서버 ==> 공식 서버] 원격 동기화 스크립트 작성, 게시 시 수동 실행, 동기화 방법: RSYNC+SSH

  1. ssh

    1. yum -y install ssh

    2. 테스트 서버에서 공개 키 생성: ssh-keygen

    3. 테스트 서버 공개 키 복사 공식 서비스로 이동: ssh-copy-id -i ~/.ssh/id_rsa.pub 대상 서버 IP (원격 서버 비밀번호 필요)

  2. rsync

    1. yum -y install rsync

  3. 동기화 스크립트 만들기: touch /home/rsync_www.xxx.com_from_test_to_prod.sh, 참고: --exclude-제외 파일 목록에서, 동기화할 필요가 없는 파일 제외에 주의하세요

#!/bin/sh

# backup

ssh root@10.10.10.10 "/bin/sh / root/scripts/backup_html.sh"

# rsync

rsync -rlptDvz --exclude-from=exclude_www.xxx.com -e ssh / home/www.xxx.com/ root@10.10.10.10:/home /wwwdata/www.xxx.com

  1. 테스트 서버에서 공식 서버로 동기화 실행(rsync+ssh)

  1. /home/rsync_www.xxx.com_from_test_to_prod.sh


참고: 위 노란색 부분은 로컬에서 테스트 서버로 퍼블리싱할 때, 테스트 서버에서 공식 서버로 퍼블리싱할 때 조작해야 하는 코드입니다 .


위 내용은 PHP 프로젝트 버전 제어 및 릴리스 프로세스의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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