> 백엔드 개발 > PHP 문제 > PHP에서 git 배포를 구현하는 방법

PHP에서 git 배포를 구현하는 방법

coldplay.xixi
풀어 주다: 2023-03-06 09:06:01
원래의
2104명이 탐색했습니다.

PHP에서 git 배포를 구현하는 방법: 먼저 git을 구성하고 sudo 비밀번호를 설정하지 않은 다음 후크를 설정하세요. 코드는 [touch post-receive]입니다. 마지막으로 후크 실행 권한을 추가하세요. 코드는 [chmod a+x]입니다. .git/hooks /post-receive].

PHP에서 git 배포를 구현하는 방법

PHP에서 git 배포 구현 방법:

계정 관련

1

2

3

4

5

6

useradd -m git //新增git账号

ssh-keygen //密钥生成,如果已经有了可略过

su git //切换至git账号

cd ~ //切换到git账号根目录

mkdir .ssh //创建.ssh目录

cat /密钥存放目录/xxx.pub >> ~/.ssh/authorized_keys //设置公钥

로그인 후 복사

여기서 권한 문제에 주의하세요. 그렇지 않으면 키 로그인이 적용되지 않습니다. 각 폴더에 해당하는 권한은 다음과 같습니다.

1

2

3

4

.ssh文件夹权限 700

id_rsa 600

id_rsa.pub 644

authorized_keys 600

로그인 후 복사

파일 권한 설정

git과 nginx 또는 apache를 실행하는 사용자를 동일한 사용자 그룹의 사이트에 넣습니다. 예: www

vim /etc/passwd git 계정과 www 계정을 찾아 그룹 ID를 변경합니다. git 계정은 www 그룹 ID와 일치해야 합니다

사이트는 다음에 속합니다. 사용자는 git으로 설정되고 사용자 그룹은 www로 설정됩니다. //nginx와 git 모두 www 사용자 그룹에 속한다고 가정합니다

디렉터리 권한은 다음과 같습니다. 775로 설정하고 파일 권한은 664로 설정

웨어하우스 코드

서버측

1

2

cd 站点目录

git init //初始化目录

로그인 후 복사

git 구성

1

git config receive.denyCurrentBranch ignore //设置仓库接受代码提交

로그인 후 복사

sudo 비밀번호 프리 설정

1

2

3

4

5

6

7

vim /etc/sudoers

# Defaults secure_path 中若没有你要的命令,要注意添加

# php的命令默认需要在 secure_path最后面添加 :/usr/local/php/bin"

在 root ALL=(ALL) ALL 下面一行添加

git ALL=(ALL) NOPASSWD:ALL

# 保存退出 ,这样针对laravel 要重启队列命令就可以使用了.

# sudo php artisan queue:restart

로그인 후 복사

후크 설정

1

2

3

4

5

6

7

8

9

10

11

12

13

14

cd .git/hooks //切换至站点钩子目录

touch post-receive //创建接收提交时钩子

// 钩子文件内容如下:

#!/bin/sh

# 设置账号创建文件的默认权限

umask 002

unset GIT_DIR

cd ..

git checkout -f

# 执行PHP钩子逻辑

/usr/bin/curl http(s)://域名/钩子文字位置/hook.php

# 如果有使用laravel队列则需要重启队列进程,让新代码生效

# sudo php artisan queue:restart

exit 0

로그인 후 복사

hook.php 콘텐츠

1

2

3

4

5

6

7

8

9

10

<?php

/**

 * git上传执行钩子

 */

//TODO 安全限制

//TODO 其他钩子行为

// 清除opcache

if (version_compare(PHP_VERSION, &#39;5.5.0&#39;, &#39;>=&#39;)) {

 opcache_reset();

}

로그인 후 복사

훅 증가 실행 권한

1

chmod a+x .git/hooks/post-receive

로그인 후 복사

로컬 코드

1

2

git remote add 远程仓库名称 ssh://git@IP地址:/站点目录 //添加远程仓库

git push 远程仓库名称 master

로그인 후 복사

특별한 주의

사용자가 업로드한 이미지 디렉터리는 파일 무시 작업을 수행해야 합니다. 그렇지 않으면 추적되지 않은 파일을 삭제할 때 파일의 이 부분을 삭제하여 치명적인 결과를 초래할 수 있습니다

프로그래밍에 대해 더 자세히 알고 싶다면 php training 칼럼을 주목해주세요!

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

관련 라벨:
php
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿