PHP에서 git 배포를 구현하는 방법: 먼저 git을 구성하고 sudo 비밀번호를 설정하지 않은 다음 후크를 설정하세요. 코드는 [touch post-receive]입니다. 마지막으로 후크 실행 권한을 추가하세요. 코드는 [chmod a+x]입니다. .git/hooks /post-receive].
PHP에서 git 배포 구현 방법:
계정 관련
useradd -m git //新增git账号 ssh-keygen //密钥生成,如果已经有了可略过 su git //切换至git账号 cd ~ //切换到git账号根目录 mkdir .ssh //创建.ssh目录 cat /密钥存放目录/xxx.pub >> ~/.ssh/authorized_keys //设置公钥
여기서 권한 문제에 주의하세요. 그렇지 않으면 키 로그인이 적용되지 않습니다. 각 폴더에 해당하는 권한은 다음과 같습니다.
.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로 설정
웨어하우스 코드
서버측
cd 站点目录 git init //初始化目录
git 구성
git config receive.denyCurrentBranch ignore //设置仓库接受代码提交
sudo 비밀번호 프리 설정
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
후크 설정
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 콘텐츠
<?php /** * git上传执行钩子 */ //TODO 安全限制 //TODO 其他钩子行为 // 清除opcache if (version_compare(PHP_VERSION, '5.5.0', '>=')) { opcache_reset(); }
훅 증가 실행 권한
chmod a+x .git/hooks/post-receive
로컬 코드
git remote add 远程仓库名称 ssh://git@IP地址:/站点目录 //添加远程仓库 git push 远程仓库名称 master
특별한 주의
사용자가 업로드한 이미지 디렉터리는 파일 무시 작업을 수행해야 합니다. 그렇지 않으면 추적되지 않은 파일을 삭제할 때 파일의 이 부분을 삭제하여 치명적인 결과를 초래할 수 있습니다
프로그래밍에 대해 더 자세히 알고 싶다면 php training 칼럼을 주목해주세요!
위 내용은 PHP에서 git 배포를 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!