使用Git來部署乙個Web站點筆記

2021-06-27 15:31:20 字數 4416 閱讀 2367

分類:

1臺擁有ssh許可權的伺服器 (lnmp,git,ssh安裝配置

一台裝有git客戶端的pc (本文實際在windows下的msysgit操作)

# 安裝lnmp

# 安裝git ssh

$ sudo apt

-get

install git git

-core ssh

windows下安裝msysgit

在伺服器上建立乙個使用者,這裡命名為git,修改git的密碼,並禁用shell登入

$ sudo useradd  git

# 修改git的密碼

$ passwd git

# 禁用shell登入

$ sudo vi

/etc

/passwd

修改

git:x

:1001

:1001

:,,,:

/home/

git:

/bin/

bash

git:x

:1001

:1001

:,,,:

/home/

git:

/usr/

bin/

git-

shell

這樣,git使用者可以正常通過ssh使用git,但無法登入shell,因為我們為git使用者指定的git-shell每次一登入就自動退出。

初始化git倉庫,建立git 裸倉庫,設定hook指令碼(web目錄需要git使用者有許可權,否則git的hook指令碼將沒有辦法執行操作)

$ cd 

/opt

$ mkdir git

$ cd git

$ sudo git init

--bare demosite

.git

# 資料夾許可權

$ sudo chown

-r git

:git demosite

.git

$ cd

/demosite

.git

/hooks

$ sudo vi post

-receive

寫入以下內容

#!/bin/sh

git_work_tree

=/home/

wwwroot

/www

.demosite

.com git checkout

-f

# 寫入許可權

$ chmod

+x post

-receive

# 建立web目錄,如果目錄不存在,git不會建立目錄的

$ mkdir

/home

/wwwroot

/www

.demosite

.com

-p

# web目錄的資料夾許可權

$ sudo chown

-r git

:git

/home

/wwwroot

/www

.demosite

.com

建立證書登入

收集所有需要登入的使用者的公鑰,就是他們自己的id_rsa.pub檔案,把所有公鑰匯入到/home/git/.ssh/authorized_keys檔案裡,一行乙個。

客戶端使用者證書生成請參考下文。

生成公鑰,匯入伺服器

$ ssh

-keygen

-t rsa -c

"[email protected]"

一路回車或者設定密碼

windows

下回提示在**生成了金鑰

windows8

下提示在c:

\users\username\.ssh

下,linux

的話會在~/.

ssh下

進入目錄,開啟

id_rsa

.pub

,複製裡面的

key,新增到上文提到的

web伺服器的/

home

/git

/.ssh

/authorized_keys

裡。

clone coding add commit push

$ git clone git@serverip

:/opt/

git/

demosite

.git

cloning

into

'demosite'

...

warning

:you

.

$ cat

'hello world!'

>

index

.html

$ git add index

.html

$ git commit -m

'first commit'

$ git remote add origin ssh

://git@serverip:/opt/git/demosite.git

$ git push origin master

這裡使用公鑰來做許可權驗證,執行git裡的hook的指令碼許可權為git使用者的許可權,當然你也可以使用自己在server上的使用者來進行git操作,前面對於git使用者的操作和客戶端公鑰的生成則可以省略,在git上指令碼的執行許可權則是你登入使用者的許可權,相應的origin的設定應該為:

$ git remote add origin ssh

://yourusername@serverip:/opt/git/demosite.git

這時候每次push將需要輸入密碼驗證。

忽略某些檔案

你可以在你的頂層工作目錄中新增乙個叫".gitignore"的檔案,來告訴git系統要忽略 掉哪些檔案,下面是檔案內容的示例:

使"git add ." 和"git commit -a" 變得實際可用。

# 以'#' 開始的行,被視為注釋.

# 忽略掉所有檔名是 foo.txt 的檔案.

foo

.txt

# 忽略所有生成的 html 檔案,

*.

html

# foo.html是手工維護的,所以例外.

!

foo.

html

# 忽略所有.o 和 .a檔案.

*.[

oa]

#eclipse

.

settings

/*

.buildpath

.project

實戰 部署乙個Web站點(適合新手)

root web01 conf diff nginx.conf nginx.conf.default 用diff比對發現conf下的所有檔案都已經備份 root web01 conf egrep v nginx.conf.default nginx.conf 去除配置檔案裡面的 和 注釋資訊 roo...

如何使用Python來打造乙個Web服務

你知道網際網路是乙個非常高效的工具嗎?你想知道如何使用python編寫乙個web服務,並在一天之內把它接入網際網路嗎?你想知道如何通過網際網路來放大這個web服務的效能,並服務成千上百萬的網際網路公民嗎?如果你已經學習了python基礎篇,並且想知道如何解決前面提到的問題,從而進一步玩轉python...

乙個IP位址上建立多個web站點

乙個ip位址上建立多個web站點,在iis5中,我們可能通過簡單的設定達到這個目標.在iis中,每個 web 站點都具有唯一的 由三個部分組成的標識,用來接收和響應請求 1 ip位址 2 埠號 3 主機頭名。環境 假設滄海公司 呵呵.的內部網由一台win2000伺服器和幾十台工作站組成,這個內部網的...