이 기사에서는 PHP 프로젝트 버전 관리 및 릴리스 프로세스에 대해 공유할 것입니다. 필요한 친구는 이를 살펴볼 수 있습니다. =>GIT 웨어하우스==>테스트 서버] GIT 웨어하우스에 제출이 완료되면 GIT는 테스트 서버 후크 스크립트를 트리거하여 업데이트 코드를 자동으로 PULL합니다.
테스트 서버
실행 원칙
www.xxx.com.php, 참고: 비활성화_기능의 시스템은 php.ini에서 삭제되어야 합니다(즉, 스크립트 실행 권한 활성화)
http://XXX.XXX.COM/hook/www.xxx.com.php
Ssh 프로토콜 및 주소로 수정: git 원격 set-url 원본 git@git.oschina.net:echobar/test.git
git pullwww 사용자를 위한 홈 디렉토리(공개 키)를 생성합니다. 모든 GIT 소유자는 www로 설정됩니다. 그렇지 않으면 권한이 부족하여 SHELL 스크립트를 자동으로 실행할 수 없습니다.)
공개 키 보기: cat ~/.ssh/id_rsa.pub
if (isset($params['HTTP_USER_AGENT']) && $params['HTTP_USER_AGENT'] == 'git-oschina-hook'){
$cmd = "/home/git/hook/www.xxx.com.sh";
}
SHELL 스크립트:/home/git/hook/ www.xxx.com.sh
, 참고: chmod a+x 권한을 실행하는 것을 잊지 마세요 * .sh#logecho "`날짜 +%Y%m%d_%H%M%S `,풀 코드 성공[마스터]" >> "/home/git/hook/log/pull_www.xxx.com_ `date +%Y%m`.log" GIT 웨어하우스 호스팅 코드:
https ://git.oschina.net
웹훅 설정 주소는 위 테스트 서버의 PHP 스크립트 URL입니다:http://XXX. XXX.COM/hook/www.xxx.com.php
프로젝트 또는 개인 사용자 설정에 공개 키 추가(개인 사용자 설정 권장) 여기에서는 모든 프로젝트가 전 세계적으로 동일한 공개 키를 사용할 수 있습니다.
local
git 클론 https://git.oschina.net/echobar/www.xxx.com.git
.gitignore에 주의하세요. 동기화할 필요가 없는 파일과 디렉터리를 제외하도록 설정하세요.
파일 추가/수정
git add .
git commit - m test
git pull
git rebase master
git push
sudo -Hu www git config --global user.name "echobar"
sudo -Hu www git config --global user .email "15516026@qq.com" # oschina
gitconfiguration
git 창고에 로컬 코드를 제출하세요
oschina에서 확인하세요. 프로젝트 파일이 성공적으로 업데이트 되었는지
Check 테스트 서버 코드가 업데이트 되었는지 확인하세요. 업데이트가 되었다면 구성이 성공했다는 뜻입니다. 가끔 성공하고 가끔 실패한다면, 지연 문제일 수 있습니다. 후크 호출을 가져오려면 PHP 스크립트 지연 시간을 수정하거나 다음 코드를 수동으로 실행해야 합니다. http: //xxx.xxx.com/hook/www.xxx.com.php?HTTP_USER_AGENT=git-oschina-hook
2. [테스트 서버 ==> 공식 서버] 원격 동기화 스크립트 작성, 게시 시 수동 실행, 동기화 방법: RSYNC+SSH
ssh
yum -y install ssh
테스트 서버에서 공개 키 생성: ssh-keygen
테스트 서버 공개 키 복사 공식 서비스로 이동: ssh-copy-id -i ~/.ssh/id_rsa.pub 대상 서버 IP (원격 서버 비밀번호 필요)
rsync
yum -y install rsync
동기화 스크립트 만들기: 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
테스트 서버에서 공식 서버로 동기화 실행(rsync+ssh)
/home/rsync_www.xxx.com_from_test_to_prod.sh
참고: 위 노란색 부분은 로컬에서 테스트 서버로 퍼블리싱할 때, 테스트 서버에서 공식 서버로 퍼블리싱할 때 조작해야 하는 코드입니다 .
위 내용은 PHP 프로젝트 버전 제어 및 릴리스 프로세스의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!