Git을 사용하여 Laravel 프로젝트의 자동 배포 구현

藏色散人
풀어 주다: 2019-09-19 10:13:04
앞으로
4216명이 탐색했습니다.

Git을 사용하여 Laravel 프로젝트의 자동 배포 구현

소개

저희 개발 과정에서는 필연적으로 버전 관리를 사용하게 됩니다. 물론 이는 Git과 SVN에 대한 이해도 제공합니다. 둘 다 훌륭한 버전 관리 도구입니다. 물론 저는 개인적으로 Git을 사용하는 데 더 익숙합니다. 애초에 개발에 어떻게 git을 사용하셨는지는 모르겠지만, 아무튼 제가 직접 github 저장소에 코드를 제출한 뒤 SSH를 이용해 서버에 로그인한 뒤 버전을 clone하거나 업데이트했습니다. 매우 번거롭게 들리는데, 물론 실제로도 매우 번거롭습니다. 그렇다면 "완전히 해결"할 수 있는 방법은 없을까요? 아래를 읽어주세요!

사용하기 쉬움

Git Hook

Git Hook이란 무엇인가요? 공식적인 설명은 좀 길어요. 쉽게 말하면 특정 환경에서 실행되는 스크립트입니다. 이 설명은 정확하지 않을 수도 있지만 이해하기 더 쉽다고 생각합니다. 자세한 내용을 알고 싶다면 Git 공식 웹사이트에 가서 확인해 보세요. 아래에서는 Hooks를 사용하여 자동 배포를 구현해 보겠습니다.

1단계: git 사용자 만들기

기본적으로 git이 이미 설치되어 있는 서버에 로그인하세요. git 사용자 생성:

# 创建一个名叫jouzeyu的用户
adduser jouzeyu
로그인 후 복사

2단계: git 사용자에게 권한 추가

#在根目录下的 home 文件夹下创建一个git文件夹
mkdir /home/git 
#切换到创建好的git文件夹
cd /home/git
#创建 .ssh文件夹,里面主要用来放公钥
mkdir .ssh
#切换到.ssh文件夹并创建authorized_keys文件
cd .ssh
touch authorized_keys
로그인 후 복사

3단계: git 구성 및 공개 키 가져오기

#在本地配置用户名和邮箱,我的用户名默认为jouzeyu
git config --global user.name "jouzeyu"
git config --global user.email "your email"
로그인 후 복사

참고: --global 옵션을 사용하는 경우 모든 프로젝트는 여기에 구성된 사용자 정보를 사용합니다. 특정 프로젝트에서 다른 이름이나 이메일을 사용하려면 해당 프로젝트에서 다음을 실행하세요.

git config user.name "xxx"
git config user.email "xxx"
로그인 후 복사

좋아요, 다음으로 공개 키를 얻습니다. 먼저 공개 키가 사용자 아래의 .ssh 폴더에 있는지 확인하세요. 개인 키를 사용하려면 id_dsa 또는 id_rsa라는 이름의 파일 쌍을 찾아야 하며 그 중 하나는 .pub 확장자를 가지고 있습니다. .pub 파일은 공개 키이고 다른 파일은 개인 키입니다. 그렇지 않은 경우 ssh-keygen을 실행하십시오.

cat ~/.ssh/id_rsa.pub 명령을 사용하여 공개 키를 가져와서 복사하고, vi 또는 vim 명령을 사용하여 이전에 만든authorized_keys 파일에 붙여넣고 wq를 사용하여 저장합니다.

4단계: 저장소 초기화

git 저장소를 저장할 폴더 만들기:

mkdir /www/wwwroot/git
cd /www/wwwroot/git
로그인 후 복사

저장소 초기화:

#初始化一个裸仓库(强烈建议)
git init --bare website.git
#配置仓库的权限,让我们之前创建好的git用户jouzeyu能读写
chown -R git:git website.git
로그인 후 복사

권한이 부여되지 않으면 후속 git pull에서 오류가 보고된다는 점에 유의해야 합니다. 글쓰기 권한이 없기 때문입니다. 베어 웨어하우스와 일반 웨어하우스의 차이점은 단순히 베어 웨어하우스가 프로젝트 파일을 볼 수 없다는 것입니다. 일반 웨어하우스는 추가 .git 폴더를 제외하고 프로젝트 디렉터리와 동일합니다.

5단계: 프로젝트 웨어하우스 생성

이 작업은 서버에서도 수행되며 /www/wwwroot/가 내 환경의 루트 디렉터리라는 점에 유의하세요.

#创建我服务器上的项目目录test
mkdir /www/wwwroot/test
#克隆仓库
git clone /www/wwwroot/git/website.git
#设置权限
chown -R git website
로그인 후 복사

참고: 내 경로에 주의하세요. git 저장소는 /www/wwwroot/git이고 프로젝트 저장소는 /www/wwwroot/test입니다.

6단계: 로컬로 복제

# 通过ip地址从配置好的线上仓库拉取下来
git clone git@47.97.121.XXX:/www/wwwroot/git/website.git
# 如果有配置域名的话也可以通过域名拉取
git clone git@www.XXX.XXX:/www/wwwroot/git/website.git
로그인 후 복사

공개 키 때문에 여기에는 비밀번호가 필요하지 않습니다. 성공하면 컴퓨터에 웹사이트 폴더가 표시됩니다. 오류가 보고되면 다음을 진행하기 전에 확인하세요. 단계를 수행합니다.

7단계: 테스트 업로드(git pull)

# 打开刚才克隆下来的本地仓库
cd website
# 创建README.md文件
touch README.md
git add .
git commit -m"创建README.md文件"
git push
로그인 후 복사

예상대로 정상적으로 업로드되었습니다. 오류가 보고되면 위에서 언급한 대로 여전히 작동하지 않는 경우 권한을 확인하시기 바랍니다. 아래 댓글.

8단계: 후크 추가

드디어 메인 이벤트 시간입니다. 글이 비교적 자세해서 조금 더 귀찮습니다. 온라인 서버로 돌아가서 다음 작업이 온라인으로 수행됩니다.

#切换到这个目录
cd /www/wwwroot/git/website.git/hooks
# 生成post-receive文件
touch post-receive
# 使用vim编辑
vim post-receive
로그인 후 복사

수신 후 파일에 붙여넣기:

#!/bin/sh
# 打印输出
echo '======上传代码到服务器======'
# 打开线上项目文件夹
cd /www/wwwroot/test/website
# 这个很重要,如果不取消的话将不能在cd的路径上进行git操作
unset GIT_DIR
git pull origin master
# 自动编译vue项目,如有需要请去掉前面的#号
# npm run build
# 自动更新composer(我暂时没试过)
# composer update
echo $(date) >> hook.log
echo '======代码更新完成======'
로그인 후 복사

저장 후 수신 후 파일에 실행 권한을 추가합니다.

chmod +x post-receive
로그인 후 복사

마지막 단계

일부 콘텐츠를 로컬에서 수정한 후 git pull을 제출하고 푸시하면 자동 배포가 구현된 것을 확인할 수 있습니다.

Git을 사용하여 Laravel 프로젝트의 자동 배포 실현

Git을 사용하여 Laravel 프로젝트의 자동 배포 구현

Laravel 관련 기술 기사를 더 보려면 Laravel Framework Getting Started Tutorial 칼럼을 방문하여 알아보세요!

위 내용은 Git을 사용하여 Laravel 프로젝트의 자동 배포 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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