我們有一個VPS上的linode和代碼託管在gitHub上。當我們推送到gitHub時,我們如何設置,它也會自動推送到我們的linode服務器。我們在linode服務器上使用PHP。自動從GitHub部署到服務器上推
謝謝。
我們有一個VPS上的linode和代碼託管在gitHub上。當我們推送到gitHub時,我們如何設置,它也會自動推送到我們的linode服務器。我們在linode服務器上使用PHP。自動從GitHub部署到服務器上推
謝謝。
您可能要使用GitHub's post-receive hooks。
總之,當有人推銷回購協議時,GitHub將張貼到提供的URL。只需編寫一段簡短的PHP腳本即可在您的linode VPS上運行,並在收到所述POST時從GitHub中啓動。
這聽起來不錯,但你如何從PHP「從github」拉? –
我假設有一些圖書館存在,但在最壞的情況下,更多地使用'exec'而不是理想 –
感謝您的額外洞察克里斯蒂安! –
我在python中編寫了一個小型的Github-Auto-Deploy服務器,它完全符合你的要求。
你的lib激勵我開始實施我自己的。 https://github.com/danneu/captain-githook。好東西,夥計。 – danneu
我最終創建了我自己的基本部署工具(很像Karl,但在PHP中) d自動從回購下拉新更新 - https://github.com/jesalg/SlimJim - 基本上它會偵聽github post-receive-hook並使用代理來觸發更新腳本。
也許我是斷章取義的,但我更喜歡手動選擇從哪裏我的命令行如推:git push linode
要做到這一點,我在我的Linode服務器上創建一個存儲庫容器,並創建了一個後收到鉤該檢出我的文件夾,最後推提交
在/var/repo/hooks/
touch post-receive nano post-receive chmod +x post-receive
mkdir /var/repo && cd /var/repo git --bare init
創建後收到鉤
後接收內容 #!/bin/sh git --work-tree=/var/www/ --git-dir=/var/repo checkout -f
在你的本地庫 git remote add linode [email protected]<linode ip|domain>:/var/repo git push linode
代碼現在部署
有趣。謝謝你。我會按照Linode的建議不要使用@root用戶。這需要在git repo目錄和/ var/www上放寬權限。我在這裏找到了如何做到這一點的相關信息:http://stackoverflow.com/a/6448326/2112538 –
你可以參考這個教程:
Automatically Updating Your Website Using GitHub's Service Hooks:
總之它解釋以下步驟:
創建一個php文件在.git
文件夾在您的服務器與以下內容。
<?php `git pull`;?>
設置您對於S SH鍵服務器存在。例如:
key. cat ~/.ssh/id_rsa.pub
在GitHub上設置服務鉤子。輸入網絡掛接網址:
http://your.domain.com/path/to/yourfile.php
當所有設置。每次推送到GitHub時,該文件都將在您的服務器上部署所有工作。
可能獲得更多幫助發佈此http://serverfault.com/ – sashang