1. 程式人生 > >git碼雲配置web hook鉤子實現自動部署,git許可權等問題,LAMP

git碼雲配置web hook鉤子實現自動部署,git許可權等問題,LAMP

由於部落格搬家,我的部落格將在: 懶惰的夜貓子  上釋出

點選下方連結即檢視:

__________________________________________________________________

這幾天用git的時候就看到git有一個非常方便的功能可以實現自動部署到伺服器。然後我就看啊看啊看,搜啊搜啊搜,知道了這玩意兒叫hook指令碼,當我們在本機push到git平臺時,git平臺監聽到了push命令,去觸發伺服器上的hook指令碼,實現伺服器程式碼更新,不用每次在上伺服器拉一下程式碼。

我在弄這個的時候遇到了很多問題,然而網上一搜,TMD就那幾篇文章轉過去轉過來,根本不能解決我的問題!現在我就慢慢講給大家。

基本是這個意思吧,說不出專業的詞彙,哈哈哈。

我們還是來講一講真正的實現流程吧。

1.把你的專案放到git平臺。這個不需要教了吧?需要教就自己去百度,哈哈。畢竟我這篇文章是教你弄web hook。

2.在伺服器檢視apache2(我用的apache服務)執行使用者,執行程式碼:ps -ef | grep apache2   #我的服務名是apache2,這裡根據自己真實的寫,比如有的是httpd。

如上圖,我apache的執行使用者是www-data。

所以當你使用php(我用的PHP,靈活理解)執行shell指令碼的時候會使用www-data使用者去執行shell。我遇到的問題就在這裡,出現了許可權不正確。所以我們必須統一這個使用者去執行所有的操作。

在伺服器也要用這個使用者配置好git公鑰,如:

sudo -u www-data ssh-keygen -t rsa -C "[email protected]"

配置好公鑰後,你的git才擁有在這個使用者下執行pull 的許可權。

3.使用apache執行使用者克隆git平臺上的程式碼,如:sudo -u www-data git clone [email protected]  

當然可能會出現許可權問題,說www-data使用者 沒有讀寫許可權,你就需要把目錄讀寫許可權給www-data使用者,這裡也就不做講解了。

當克隆完成後我們開始第四步:

4.建立一個介面,地址什麼的自己配置就好,介面寫一段兒執行shell的程式碼

我這裡是:

<pre name="code" class="html"><?php 
	shell_exec("cd /your/git/dir ; sudo -u www-data git pull 2<&1");

就這麼簡單一句,我們在上git平臺上配置好這個介面,我們就可以使用hook了。

當你在本地push的時候,伺服器就會呼叫這個介面執行sudo -u www-data git pull 實現自動部署。

在平臺可以設定個密碼,password欄位,他是一個json 當你介面實際使用的時候需要經過判斷是不是你的git平臺在呼叫你的介面,如果不是你可遮蔽掉。

我的講解就到這裡了。

不信你試試?

我是因為這個許可權問題搞了很久,如果還有問題我就沒辦法了,你就谷歌百度研究吧。

哈哈,順便弄好了發一篇部落格給我們看看,以免下次遇到問題有TMD是那幾篇!!!

好了,就到這裡吧。

謝謝大家來看!

相關推薦

git配置web hook鉤子實現自動部署,git許可權問題,LAMP

由於部落格搬家,我的部落格將在: 懶惰的夜貓子  上釋出 點選下方連結即檢視: __________________________________________________________________ 這幾天用git的時候就看到git有一個非

CentOS+Git+WEB自動同步部署方案

環境:centos7 Git安裝 yum install -y git git --version #版本 rpm -qal |grep git #路徑/usr/bin/git 生成公鑰 生成公鑰的目的,是為了更安全更方便的SSH拉取方式,同

git 遠端庫 多人協作方式過程 pull request

總結一句:其實只要頭腦裡面有工作區(電腦的工作目錄)、版本庫(工作目錄裡面的.git資料夾)、遠端庫的概念就很容易理清中間的一些pull、push等操作的用法。 文章轉載自:http://blog.csdn.net/u013776188/article/details/60

轉載:Gitlab+Jenkins用鉤子實現自動部署

    系統環境: Gitlab主機 IP:192.168.1.2     用ssh金鑰連通兩臺主機ip1.2和ip1.3。 Jenkins主機 IP:192.168.1.3  

CentOS7——gitlab本地git倉庫搭建 以及web hook配置

ron pda tran 訪問 visit epo 目前 down style 整個搭建用的都是各種默認設置,所以沒有用到高深的的東西,比較簡單,比較傻瓜式,這篇也僅僅是一個入門。 另外本文具有時效性,瀏覽本文請註意發表時間,為防止過時產生誤導,本文盡量把 “如何得知應該這

git的一次配置全記錄

首先這個碼雲,顧名思義,程式碼在雲端,可以說git是一個程式設計師的標配工具,具體有啥用先看教程吧 首先我們先安裝git,這裡我用centos7做一個演示,第一步安裝git yum install -y git 第二步去碼雲註冊一個賬號,然後新建一個專案,專案命名隨意 然後返回

git 上建立專案 並clone倉庫到本地 git配置過程記錄

1.配置客戶端名稱和郵箱    建議所有命令為手打。要不可能會出錯 git config --global user.name "自己的名字" git config --global user.email  "自己的郵箱" 2.生成郵箱賬戶的公鑰(註冊的郵箱號) ss

Git 操作

tails www bec In detail zha 第一次 bubuko 項目 https://www.cnblogs.com/lanxiang/p/7487971.html 將項目提交到碼雲 在碼雲創建項目 然後在項目目錄下: 打開後輸入: git init

win10下烏龜git安裝和使用。 Git使我們經常使用的工具。

安裝和使用 ext nbsp 選擇 註冊 log 將他 article 網站 win10下烏龜git安裝和使用 2016年04月08日 17:55:02 一葉飄舟 閱讀數:40327更多 個人分類: 工作點滴 一、安裝git for

Git/上多人協作,建立分支,上傳修改

1.為專案建立分支 可直接在網頁上進行管理操作 2.克隆一個專案 git clone https://gitee.com/xxxxx/xxx.git 3.建立本地分支 cd 進入目錄資料夾 git checkout -b branch-name origin/branc

git()使用步驟詳細

首先下載安裝Git終端外掛,官網地址:https://git-scm.com/ 安裝步驟是傻瓜式的,就不詳細說明了,一直下一步到底也OK。 1.安裝好之後可在桌面右鍵點選git bash圖示進入命令列終端 2.在碼雲的官網註冊帳號並登入,進入個人中心的設定介面,點選SSH公鑰->新

配置webhooks自動觸發拉取程式碼

webhooks的使用 碼雲和github的鉤子叫webhooks 每次您 push 程式碼後,都會給遠端 HTTP URL 傳送一個 POST 請求 碼雲專案管理頁面的webhooks設定: http://UserID:[email protected]_url/job/project_name/

配置公匙的問題--以及使用ssh地址克隆才能不需要手動輸入密碼

ssh-keygen -t rsa -C "[email protected]"     命令之後一路回車,最底下有公匙存放的位置 #可以生成時指定金鑰檔名如:gitee_user #顯示金鑰 cat gitee_user.pub 到位置下輸入命令: ssh

使用git從本地上傳至git遠端倉庫

 git  config --global user.name "使用者名稱"  (這裡的使用者名稱是你要設定的git的全域性姓名或暱稱) git  config --global user.email "郵箱地址" (設定的全域性郵箱地址)     3. 建立本地倉庫(這

使用過程中由於 SSH 出現的 git pull, git clone 失敗系列問題

由於我自己也不是怎麼就恢復好的,所以我的方法和經驗只供參考第一種錯誤 ssh: connect to host gitee.com port 22: Connection timed out第二種錯誤 The authenticity of host 'gitee.com (

git + 使用詳解(入門)

一直想使用git來託管程式碼 以為對命令列不在行,怎麼也沒整好,網上看了很多教程也毫無頭緒,後面在同事的幫助下完成了配置,希望分享出來對大家有幫助。、 準備工作: 1.去官網下載git,下載過後安裝一直下一步到安裝完成為止即可。 初始化: 1.準備一個資料夾(也可

idea 專案提交到 git過程記錄

1.首先安裝gitee外掛 1.1file-setting-plugins   搜尋 gitee 1.2gite外掛下載會 報超時的問題,下載不下來 解決方式:file-setting-Appearance&Behavior-System Settings-

git 的命令

Git基本常用命令如下:檢視當前git使用者名稱: git config  user.name檢視當前git郵箱: git config user.email切換git使用者名稱: git config --global  user.name "YOURUSERNAME"切換

Java Web中簡單實現自動登陸功能。

Java 對自動登陸功能的簡單實現,僅用到了servlet和一個filter。第一次寫博文,如有不足的地方,敬請指正,謝謝。 登陸介面 <%@ page language="java" import="java.util.*" pageEncoding="UTF

Jenkins+maven+git 實現自動構建、許可權管理、靜態程式碼檢測、遠端部署、傳送郵件功能

Jenkins配置 1. 使用者許可權設定 配置->Configure Global Security (注:想讓匿名使用者可以瀏覽jenkins網站 需勾選Overall 中的read 和 Job