Ubuntu下搭建gitosis

1拣挪、安裝openssh

sudo apt-get install openssh-server openssh-client

2碉熄、創(chuàng)建個人公鑰和私鑰(在默認用戶的主目錄路徑下侨赡,運行一下命令)

ssh -keygen -t rsa

默認生成2048位,如果需要提高安全級別努潘,也可以通過下面的命令創(chuàng)建公鑰和私鑰

ssh -keygen -t rsa -b 4096

默認情況下,公鑰和私鑰會保存在~/,ssh目錄下锋边,如下所示:

id_rsa ? ? ?id_rsa.pub ?known_hosts

3、安裝git服務器

sudo apt-get install git-core

4编曼、配置git服務器

4.1創(chuàng)建git服務器管理用戶()

? ? sudo useradd -m git

? ? sudo passwd ?git

4.2豆巨、創(chuàng)建git倉庫存儲目錄

? ? sudo mkdir ?/home/git/repositories

4.3、設置git倉庫權限

? ? sudo chown git:git ?/home/git/repositories

? ? sudo chmod 755 ?/home/git/repositories

4.5掐场、初始化全局設置

? ? ?git ?config ?--global user.name "myname"

? ? ?git ?config ?-global ?user.email ? "myname@163.com"

5往扔、安裝python的setup ?tool

sudo apt-get install python-setuptools

6贩猎、獲取并安裝gitosis

cd ?/tmp

git ?clone ?https://github.com/res0nat0r/gitosis.git

cd ?gitosis?

sudo python setup.py install

7、配置gitosi

cp ~/.ssh/id_rsa.pub /tmp

sudo -H -u git gitosis-init < /tmp/id_rsa.pub

sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update

8萍膛、管理gitosis配置

cd ~

git clone git@hostname:用戶名/gitosis-admin.git

cd gitosis-admin/

各個用戶按照前面提到的辦法生成各自的ssh公鑰文件后吭服,服務器管理員把所有人的 ssh公鑰文件都拿來,拷貝到keydir目錄下蝗罗。

修改gitosis.conf文件艇棕,如下所示:

[gitosis]

[group gitosis-admin] ? ??writable = gitosis-admin ? ??members = a@server1

[group developers] ? ??writable = helloworld ? ?members = a@server1 b@server2

[group test] ??readonly = helloworld ? ??members = c@server3

這個配置文件表達了如下含義:gitosis-admin組成員有a,該組對gitosis-admin倉庫有讀寫權限串塑; developers組有a沼琉,b兩個成員,該組對helloworld倉庫有讀寫權限拟赊; test組有c一個成員刺桃,對helloworld倉庫有只讀權限。 當然目前這些配置文件的修改只是在你的本地吸祟,你必須推送到gitserver上才能真正生效。 加入新文件桃移、提交并push到git服務器:

git add .

git commit -am "add helloworld project and users"

git remote add origin ssh://git@hostname/helloworld.git

git push origin master

9屋匕、安裝apache2

sudo apt-get install apache2

10、安裝gitweb’

sudo apt-get install gitweb

11借杰、配置gitweb

默認沒有 css 加載过吻,把 gitweb 要用的靜態(tài)文件連接到 DocumentRoot 下:

cd /var/www/

sudo ln -s /usr/share/gitweb/* .

修改配置:

sudo vi ?/etc/gitweb.conf

將 $projectroot 改為git倉庫存儲目錄(例如:/home/git/repositories),保存后刷新瀏覽器蔗衡。

如果沒有找到項目纤虽,你需要將$projectroot/*.git 的屬性改為755,讓apache用戶有可讀權限绞惦”浦剑可以只改你需要讓別人通過web訪問的那個git。http://localhost/cgi-bin/gitweb.cgi

修改/etc/gitweb.conf內容

# path to git projects (.git)

#$projectroot = "/var/cache/git";

$projectroot = "/home/git/repositories";

# directory to use for temp files

$git_temp = "/tmp";

# target of the home link on top of all pages

$home_link = $my_uri || "/";

# html text to include at home page

$home_text = "indextext.html";

# file with project list; by default, simply scan the projectroot dir.

$projects_list = $projectroot;

# stylesheet to use

@stylesheets = ("/gitweb/static/gitweb.css");

# javascript code for gitweb

$javascript = "gitweb/static/gitweb.js";

# logo to use

$logo = "/gitweb/static/git-logo.png";

# the 'favicon'

$favicon = "/gitweb/static/git-favicon.png";

# git-diff-tree(1) options to use for generated patches

#@diff_opts = ("-M");

@diff_opts = ();

12济蝉、配置apache2

ubuntu中默認的web目錄是/var/www杰刽,默認的cgi目錄是 /usr/lib/cgi-bin/,安裝完成gitweb后,gitweb的gitweb.cgi會自動放置到該目錄下王滤。

如果你的cgi路徑不是默認的/usr/lib/cgi-bin/贺嫂,需要將gitweb安裝在/usr/lib/cgi-bin中的gitweb.cgi復制到原來配置的cgi-bin路徑,并在apache的配置文件/etc/apache2/apache.conf末尾加上以下內容:

SetEnv? GITWEB_CONFIG? /etc/gitweb.conf

Options FollowSymlinks ExecCGI

Allow from all

AllowOverride all

Order allow,deny

SetHandler cgi-script

RewriteEngine on

RewriteCond?%{REQUEST_FILENAME}?!-f

RewriteCond?%{REQUEST_FILENAME}?!-d

RewriteRule ^.* /gitweb.cgi/$0 [L,PT]

重新啟動apache:sudo /etc/init.d/apache2 restart雁乡,訪問http://localhost/cgi-bin/gitweb.cgi

出現(xiàn)如圖所示第喳,說明成功了

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市踱稍,隨后出現(xiàn)的幾起案子曲饱,更是在濱河造成了極大的恐慌悠抹,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,639評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件渔工,死亡現(xiàn)場離奇詭異锌钮,居然都是意外死亡,警方通過查閱死者的電腦和手機引矩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評論 3 385
  • 文/潘曉璐 我一進店門梁丘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人旺韭,你說我怎么就攤上這事氛谜。” “怎么了区端?”我有些...
    開封第一講書人閱讀 157,221評論 0 348
  • 文/不壞的土叔 我叫張陵值漫,是天一觀的道長。 經(jīng)常有香客問我织盼,道長杨何,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,474評論 1 283
  • 正文 為了忘掉前任沥邻,我火速辦了婚禮危虱,結果婚禮上,老公的妹妹穿的比我還像新娘唐全。我一直安慰自己埃跷,他們只是感情好,可當我...
    茶點故事閱讀 65,570評論 6 386
  • 文/花漫 我一把揭開白布邮利。 她就那樣靜靜地躺著弥雹,像睡著了一般。 火紅的嫁衣襯著肌膚如雪延届。 梳的紋絲不亂的頭發(fā)上剪勿,一...
    開封第一講書人閱讀 49,816評論 1 290
  • 那天,我揣著相機與錄音祷愉,去河邊找鬼窗宦。 笑死,一個胖子當著我的面吹牛二鳄,可吹牛的內容都是我干的赴涵。 我是一名探鬼主播,決...
    沈念sama閱讀 38,957評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼订讼,長吁一口氣:“原來是場噩夢啊……” “哼髓窜!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,718評論 0 266
  • 序言:老撾萬榮一對情侶失蹤寄纵,失蹤者是張志新(化名)和其女友劉穎鳖敷,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體程拭,經(jīng)...
    沈念sama閱讀 44,176評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡定踱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,511評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了恃鞋。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片崖媚。...
    茶點故事閱讀 38,646評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖恤浪,靈堂內的尸體忽然破棺而出畅哑,到底是詐尸還是另有隱情,我是刑警寧澤水由,帶...
    沈念sama閱讀 34,322評論 4 330
  • 正文 年R本政府宣布荠呐,位于F島的核電站,受9級特大地震影響砂客,放射性物質發(fā)生泄漏泥张。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,934評論 3 313
  • 文/蒙蒙 一鞠值、第九天 我趴在偏房一處隱蔽的房頂上張望圾结。 院中可真熱鬧,春花似錦齿诉、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至挥唠,卻和暖如春抵恋,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背宝磨。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評論 1 266
  • 我被黑心中介騙來泰國打工弧关, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人唤锉。 一個月前我還...
    沈念sama閱讀 46,358評論 2 360
  • 正文 我出身青樓世囊,卻偏偏與公主長得像,于是被迫代替她去往敵國和親窿祥。 傳聞我的和親對象是個殘疾皇子株憾,可洞房花燭夜當晚...
    茶點故事閱讀 43,514評論 2 348

推薦閱讀更多精彩內容