分類:
1臺擁有ssh許可權的伺服器 (lnmp,git,ssh安裝配置)一台裝有git客戶端的pc (本文實際在windows下的msysgit操作)
windows下安裝msysgit# 安裝lnmp
# 安裝git ssh
$ sudo apt
-get
install git git
-core ssh
在伺服器上建立乙個使用者,這裡命名為git,修改git的密碼,並禁用shell登入
這樣,git使用者可以正常通過ssh使用git,但無法登入shell,因為我們為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倉庫,建立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檔案裡,一行乙個。
客戶端使用者證書生成請參考下文。
生成公鑰,匯入伺服器
clone coding add commit push$ ssh
-keygen
-t rsa -c
一路回車或者設定密碼
windows
下回提示在**生成了金鑰
windows8
下提示在c:
\users\username\.ssh
下,linux
的話會在~/.
ssh下
進入目錄,開啟
id_rsa
.pub
,複製裡面的
key,新增到上文提到的
web伺服器的/
home
/git
/.ssh
/authorized_keys
裡。
這裡使用公鑰來做許可權驗證,執行git裡的hook的指令碼許可權為git使用者的許可權,當然你也可以使用自己在server上的使用者來進行git操作,前面對於git使用者的操作和客戶端公鑰的生成則可以省略,在git上指令碼的執行許可權則是你登入使用者的許可權,相應的origin的設定應該為:$ 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 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伺服器和幾十台工作站組成,這個內部網的...