首頁 php框架 Laravel 使用 Git 實現 Laravel 專案的自動化部署

使用 Git 實現 Laravel 專案的自動化部署

Sep 19, 2019 am 10:13 AM
git laravel

使用 Git 實現 Laravel 專案的自動化部署

簡介

在我們的開發過程中,我們不可避免的會用到版本控制。當然,這也致使你對 Git 和 SVN 有所了解。兩者都是優秀的版本控制工具,我個人比較習慣用 Git,當然這可能和個人習慣有關。我不知道大家一開始是怎麼使用 git 來開發的,反正我個人是先將程式碼提交到 github 倉庫,然後用 SSH 登入伺服器,然後進行複製或版本更新。聽起來就很麻煩,當然實際操作中也很麻煩,那麼有什麼可以 “一勞永逸 “ 的辦法呢?請往下看!

簡單使用

Git 鉤子

什麼是 git 鉤子呢?官方解釋有些長,簡單來說就是在特定環境下觸發的腳本。這個解釋可能不太準確,但是我認為這樣比較容易理解一些,想了解更多的,可以去 Git 官網查看,下面我們就用鉤子實現自動化部署。

第一步:建立 git 使用者

登入我們的伺服器,這裡預設你已經安裝好了 git。建立一個git 使用者:

# 创建一个名叫jouzeyu的用户
adduser jouzeyu
登入後複製

第二步:給git 使用者新增權限

#在根目录下的 home 文件夹下创建一个git文件夹
mkdir /home/git 
#切换到创建好的git文件夹
cd /home/git
#创建 .ssh文件夹,里面主要用来放公钥
mkdir .ssh
#切换到.ssh文件夹并创建authorized_keys文件
cd .ssh
touch authorized_keys
登入後複製

第三步:設定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"
登入後複製

#OK,接下來我們獲取公鑰,請先查看你的用戶下的.ssh 文件夾中是否之前就含有公鑰和私鑰,我們需要尋找一對以id_dsa 或id_rsa 命名的文件,其中一個帶有.pub 副檔名。 .pub 檔案是你的公鑰,另一個則是私鑰。如果沒有請執行 ssh-keygen。

使用 cat ~/.ssh/id_rsa.pub 指令可以取得公鑰,複製它,使用 vi 或 vim 指令把它貼到我們之前建立的 authorized_keys 檔案中,使用:wq 儲存。

第四步:初始化倉庫

建立一個存放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 資料夾。

第五步:產生專案倉庫

這個也是在伺服器上進行的,同時說明一下 /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。

第六步:複製到本地

# 通过ip地址从配置好的线上仓库拉取下来
git clone git@47.97.121.XXX:/www/wwwroot/git/website.git
# 如果有配置域名的话也可以通过域名拉取
git clone git@www.XXX.XXX:/www/wwwroot/git/website.git
登入後複製

因為公鑰的原因,這裡是不需要密碼的,如果成功你的電腦上會出現一個website 的資料夾,如果報錯請檢查後再進行下面的操作。

第七步:測試上傳(git pull)

# 打开刚才克隆下来的本地仓库
cd website
# 创建README.md文件
touch README.md
git add .
git commit -m"创建README.md文件"
git push
登入後複製

不出意外已經正常上傳了,如果報錯請檢查權限,上文提到過,如果還不行可以在下方留言。

第八步:加上鉤子

終於到重頭戲了,寫的比較細,所以比較麻煩一些。回到我們線上的伺服器,下面的是在線上操作的:

#切换到这个目录
cd /www/wwwroot/git/website.git/hooks
# 生成post-receive文件
touch post-receive
# 使用vim编辑
vim post-receive
登入後複製

在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 '======代码更新完成======'
登入後複製

儲存後給post-receive 檔案加上執行權限:

chmod +x post-receive
登入後複製

最後一步

在本地修改部分內容,然後提交推送git pull,可以看到我們已經實現了自動化部署。

使用Git實現Laravel專案的自動化部署

使用 Git 實現 Laravel 專案的自動化部署

#更多Laravel相關技術文章,請造訪Laravel框架入門教學專欄進行學習!

以上是使用 Git 實現 Laravel 專案的自動化部署的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
威爾R.E.P.O.有交叉遊戲嗎?
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

git怎麼刪除倉庫 git怎麼刪除倉庫 Apr 17, 2025 pm 04:03 PM

要刪除 Git 倉庫,請執行以下步驟:確認要刪除的倉庫。本地刪除倉庫:使用 rm -rf 命令刪除其文件夾。遠程刪除倉庫:導航到倉庫設置,找到“刪除倉庫”選項,確認操作。

git commit怎麼用 git commit怎麼用 Apr 17, 2025 pm 03:57 PM

Git Commit 是一種命令,將文件變更記錄到 Git 存儲庫中,以保存項目當前狀態的快照。使用方法如下:添加變更到暫存區域編寫簡潔且信息豐富的提交消息保存並退出提交消息以完成提交可選:為提交添加簽名使用 git log 查看提交內容

git下載不動怎麼辦 git下載不動怎麼辦 Apr 17, 2025 pm 04:54 PM

解決 Git 下載速度慢時可採取以下步驟:檢查網絡連接,嘗試切換連接方式。優化 Git 配置:增加 POST 緩衝區大小(git config --global http.postBuffer 524288000)、降低低速限制(git config --global http.lowSpeedLimit 1000)。使用 Git 代理(如 git-proxy 或 git-lfs-proxy)。嘗試使用不同的 Git 客戶端(如 Sourcetree 或 Github Desktop)。檢查防火

如何解決PHP項目中的高效搜索問題? Typesense助你實現! 如何解決PHP項目中的高效搜索問題? Typesense助你實現! Apr 17, 2025 pm 08:15 PM

在開發一個電商網站時,我遇到了一個棘手的問題:如何在大量商品數據中實現高效的搜索功能?傳統的數據庫搜索效率低下,用戶體驗不佳。經過一番研究,我發現了Typesense這個搜索引擎,並通過其官方PHP客戶端typesense/typesense-php解決了這個問題,大大提升了搜索性能。

git rebase怎麼用 git rebase怎麼用 Apr 17, 2025 pm 04:00 PM

git rebase 用於重新應用提交到新基準,以清理歷史或重新定位分支。使用方法:創建目標分支選擇要重新應用的提交執行 git rebase 命令,指定目標分支和提交範圍解決衝突繼續重新應用剩餘的提交驗證更改

git怎麼下載項目到本地 git怎麼下載項目到本地 Apr 17, 2025 pm 04:36 PM

要通過 Git 下載項目到本地,請按以下步驟操作:安裝 Git。導航到項目目錄。使用以下命令克隆遠程存儲庫:git clone https://github.com/username/repository-name.git

git怎麼提交空文件夾 git怎麼提交空文件夾 Apr 17, 2025 pm 04:09 PM

在 Git 中提交空文件夾,只需遵循以下步驟:1. 創建空文件夾;2. 將文件夾添加到暫存區;3. 提交更改,並輸入提交消息;4. (可選)將更改推送到遠程存儲庫。注意:空文件夾的名稱不能以 . 開頭,如果文件夾已存在,需要使用 git add --force 添加。

git怎麼更新代碼 git怎麼更新代碼 Apr 17, 2025 pm 04:45 PM

更新 git 代碼的步驟:檢出代碼:git clone https://github.com/username/repo.git獲取最新更改:git fetch合併更改:git merge origin/master推送更改(可選):git push origin master

See all articles