首頁 後端開發 php教程 PHP實作git部署的方法教學詳解

PHP實作git部署的方法教學詳解

Jul 05, 2018 pm 05:52 PM
git php 自動化部署 部署

雖然一直用git做版本管理,以前也用過git專案的部署,但都沒有堅持這個習慣,最近決定再學習下,下面這篇文章主要給大家介紹了關於PHP實現git部署的方法教程,文中透過範例程式碼介紹的非常詳細,需要的朋友可以參考下。

背景

在小型網站上,直接用git來部署php程式碼相當方便,你的遠端網站以及本機版本庫都有一個版本控制,追蹤問題或回滾是很輕鬆的事情。

因為在小公司上班,原先的系統還在使用傳統的ftp上傳部署,部署太麻煩,也不好管線上的程式碼。在網路上找了下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帳號,將git帳號的群組識別變更為與www群組識別一致

網站所屬者設定為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, &#39;5.5.0&#39;, &#39;>=&#39;)) {
 opcache_reset();
}
登入後複製

增加鉤子可執行權限

chmod a+x .git/hooks/post-receive
登入後複製

本機程式碼


git remote add 远程仓库名称 ssh://git@IP地址:/站点目录 //添加远程仓库
git push 远程仓库名称 master
登入後複製


特別注意

使用者上傳的圖片目錄一定要做好檔案忽略動作,否則有可能在清除未追蹤檔案時將此部分檔案刪除,造成災難性結果############總結################PHP實作的二分查找演算法實例分析講解##### ##########PHP實作的折半查找演算法範例講解################PHP實作的字串比對演算法範例######### ############

以上是PHP實作git部署的方法教學詳解的詳細內容。更多資訊請關注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 尊渡假赌尊渡假赌尊渡假赌
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服務器怎麼連接公網 git服務器怎麼連接公網 Apr 17, 2025 pm 02:27 PM

將 Git 服務器連接到公網包括五個步驟:1. 設置公共 IP 地址;2. 打開防火牆端口(22、9418、80/443);3. 配置 SSH 訪問(生成密鑰對、創建用戶);4. 配置 HTTP/HTTPS 訪問(安裝服務端、配置權限);5. 測試連接(使用 SSH 客戶端或 Git 命令)。

git賬戶怎麼添加公鑰 git賬戶怎麼添加公鑰 Apr 17, 2025 pm 02:42 PM

如何將公鑰添加到 Git 賬戶?步驟:生成 SSH 密鑰對。複製公鑰。在 GitLab 或 GitHub 中添加公鑰。測試 SSH 連接。

git代碼衝突怎麼處理 git代碼衝突怎麼處理 Apr 17, 2025 pm 02:51 PM

代碼衝突是指當多個開發者修改同一段代碼導致 Git 合併時無法自動選擇更改而出現的衝突。解決步驟包括:打開有衝突的文件,找出衝突代碼。手動合併代碼,將要保留的更改複製到衝突標記內。刪除衝突標記。保存並提交更改。

git怎么生成ssh密鑰 git怎么生成ssh密鑰 Apr 17, 2025 pm 01:36 PM

為了安全連接遠程 Git 服務器,需要生成包含公鑰和私鑰的 SSH 密鑰。生成 SSH 密鑰的步驟如下:打開終端,輸入命令 ssh-keygen -t rsa -b 4096。選擇密鑰保存位置。輸入密碼短語以保護私鑰。將公鑰複製到遠程服務器上。將私鑰妥善保存,因為它是訪問帳戶的憑據。

git怎麼檢測ssh git怎麼檢測ssh Apr 17, 2025 pm 02:33 PM

要通過 Git 檢測 SSH,需要執行以下步驟:生成 SSH 密鑰對。將公鑰添加到 Git 服務器。配置 Git 使用 SSH。測試 SSH 連接。根據實際情況解決可能遇到的問題。

git怎麼分開commit git怎麼分開commit Apr 17, 2025 pm 02:36 PM

使用 git 可以分開提交代碼,提供精細的變更追踪和獨立的工作能力。步驟如下: 1. 添加已更改的文件; 2. 提交特定更改; 3. 重複上述步驟; 4. 推送提交到遠程倉庫。

git服務器怎麼搭建 git服務器怎麼搭建 Apr 17, 2025 pm 12:57 PM

搭建 Git 服務器包括:在服務器上安裝 Git。創建運行服務器的用戶和組。創建 Git 存儲庫目錄。初始化裸存儲庫。配置訪問控制設置。啟動 SSH 服務。為用戶授予訪問權限。測試連接。

See all articles