PHP實作git部署的方法教學詳解
雖然一直用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
網站所屬者設定為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
<?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實作的二分查找演算法實例分析講解##### ##########PHP實作的折半查找演算法範例講解################PHP實作的字串比對演算法範例######### ############
以上是PHP實作git部署的方法教學詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

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

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

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

熱門話題

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

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

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

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

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

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

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

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