簡介
在我們的開發過程中,我們不可避免的會用到版本控制。當然,這也致使你對 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專案的自動化部署
#更多Laravel相關技術文章,請造訪Laravel框架入門教學專欄進行學習!
以上是使用 Git 實現 Laravel 專案的自動化部署的詳細內容。更多資訊請關注PHP中文網其他相關文章!

選擇Laravel開發項目是因為其靈活性和強大功能適應不同規模和復雜度的需求。 Laravel提供路由系統、EloquentORM、Artisan命令行等功能,支持從簡單博客到復雜企業級系統的開發。

Laravel和Python在開發環境和生態系統上的對比如下:1.Laravel的開發環境簡單,僅需PHP和Composer,提供了豐富的擴展包如LaravelForge,但擴展包維護可能不及時。 2.Python的開發環境也簡單,僅需Python和pip,生態系統龐大,涵蓋多個領域,但版本和依賴管理可能複雜。

Laravel是如何在後端邏輯中發揮作用的?它通過路由系統、EloquentORM、認證與授權、事件與監聽器以及性能優化來簡化和增強後端開發。 1.路由系統允許定義URL結構和請求處理邏輯。 2.EloquentORM簡化數據庫交互。 3.認證與授權系統便於用戶管理。 4.事件與監聽器實現松耦合代碼結構。 5.性能優化通過緩存和隊列提高應用效率。

Laravel受歡迎的原因包括其簡化開發過程、提供愉快的開發環境和豐富的功能。 1)它吸收了RubyonRails的設計理念,結合PHP的靈活性。 2)提供瞭如EloquentORM、Blade模板引擎等工具,提高開發效率。 3)其MVC架構和依賴注入機制使代碼更加模塊化和可測試。 4)提供了強大的調試工具和性能優化方法,如緩存系統和最佳實踐。

Django和Laravel都是全棧框架,Django適合Python開發者和復雜業務邏輯,Laravel適合PHP開發者和優雅語法。 1.Django基於Python,遵循“電池齊全”哲學,適合快速開發和高並發。 2.Laravel基於PHP,強調開發者體驗,適合小型到中型項目。

PHP和Laravel不是直接可比的,因為Laravel是基於PHP的框架。 1.PHP適合小型項目或快速原型開發,因其簡單直接。 2.Laravel適合大型項目或高效開發,因其提供豐富功能和工具,但學習曲線較陡,性能可能不如純PHP。

laravelisabackendframeworkbuiltonphp,設計ForweBapplicationDevelopment.itfocusessonserver-sideLogic,databasemagemention和Applicationstructure和CanBeintegratedWithFrontendTechnologiesLikeLikeVue.jsorreActeReacterVue.jsorreActforforfull-stackDevefloct。

本文討論了Laravel中的創建和使用自定義刀片指令以增強模板。它涵蓋了定義指令,在模板中使用它們,並在大型項目中管理它們,強調了改進的代碼可重複性和R等好處


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Atom編輯器mac版下載
最受歡迎的的開源編輯器

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

SublimeText3漢化版
中文版,非常好用

WebStorm Mac版
好用的JavaScript開發工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器