Windows xp下建立git服務器及bug追蹤

1      SSH服務器

1.1    安裝open-ssh軟件包

在Ubuntu上建立SSH服務器是非常簡單的,但是XP上就要費點勁了。首先,安裝Cygwin。好在網易提供了Cygwin的鏡像,所以這一步現在變得異常地簡單。

1.        從Cygwin的官方網站http://Cygwin.com上下載setup.exe

2.        安裝時選擇http://mirrors.163.com,下載速度特別地快

3.        選擇軟件包OpenSSH,安裝直到完畢

1.2    安裝sshd服務

1.        安裝完畢後,將Cygwin安裝文件夾裏的bin文件夾“C:\Cygwin\bin”放Path環境變量中

2.        雙擊桌面上的Cygwin圖標打開控制檯,輸入 “ssh-host-config -y” 將sshd註冊爲系統服務,並設置成爲自動啓動

3.        手動控制ssh服務啓動(也可以重啓電腦)“net start sshd”(關閉爲“net stop sshd”)

4.        配置防火牆,打開ssh的端口,默認是22(tcp)

1.3    配置sshd服務器

用UltraEdit或寫字板打開配置文件C:\Cygwin\etc\sshd_config

1.        #PermitRootLogin yes => PermitRootLoginno                           #禁止root登錄

2.        #PasswordAuthentication yes=> PasswordAuthenticationno       #僅使用密鑰登錄

3.        #Protocol 2,1 => Protocol 2                                                     #只允許SSH2方式

1.4    爲用戶添加公鑰

1.4.1  生成公鑰和私鑰

1.        從http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html處,下載putty.zip

2.        解壓後運行puttygen.exe

3.        在最下面Parameters裏選擇SSH-2 RSA,Number of bits in a generated key填1024(默認就是這樣)

4.        點擊Generate,然後鼠標隨機移動,直到生成完畢

5.        複製公鑰(最上面的框裏的,以ssh-rsa打頭)到文本文件中,並在存儲爲authorized_keys文件

6.        點擊Save private key保存私鑰文件

注意:千萬不要直接點Save public key來保存公鑰,那樣會生成很多無用的字符串,導致無法登錄。

1.4.2  配置公鑰

1.        切換到用戶的主目錄:cd ~

2.        新建.ssh文件夾:mkdir .ssh

3.        將剛纔保存的公鑰文件authorized_keys拷貝到.ssh文件夾中

4.        修改authorized_keys的屬性爲600:chmod 600 authorized_keys

注意:.ssh文件夾的屬性group和other也不能具有寫權限,否則無法登錄。

注意:每一個服務器用戶可以有多個公鑰和私鑰對

1.4.3  嘗試連接sshd服務器

運行putty.zip解壓出來的putty.exe

1.        Session裏Host name填寫安裝了sshd服務器的ip

2.        Connection->Data裏的Auto-loginusername填你剛纔配置的公鑰的用戶名

3.        Connection->SSH->Auth裏的Private Keyfile for authentication選擇剛纔生成的私鑰文件

4.        點擊Open,應該就能連接上了

2      安裝git

2.1    服務器端

1.        重新運行Cygwin的setup.exe,安裝git

2.        初始化一個bare的倉庫,比如:在/opt/git/test.git文件夾中運行 git --bare init

3.        保證你設置的用戶名有權限讀寫test.git

2.2    客戶端

1.        安裝msysgit和tortoisegit最新版(都按默認方式安裝)

2.        tortoisegit找一個空文件夾,右鍵點擊clone

3.        url裏輸入<username>@<serverip/name>:/opt/git/test.git

4.        在下面選中Load Putty Key,選擇生成的私鑰文件,然後點擊OK,無意外的話,應該是可以成功clone的

5.        添加一個文件,看看能不能push,沒有意外,應該是可以的

3      通過http拷貝倉庫

3.1    安裝apache

1.        重新運行Cygwin的setup.exe

2.        安裝apache httpd2

3.        添加用戶環境變量CYGWIN=server(不知道爲什麼添加,不添加就不好使)

4.        重新打開Cygwin命令行

5.        執行cygserver-config,註冊cygserver爲windows系統服務

6.        手動啓動cygserver服務:net start cygserver

7.        運行apache服務器:/usr/sbin/apachectl2 start

8.        打開瀏覽器訪問http://localhost,It works!

3.2    配置git倉庫

1.        將倉庫中的hooks文件夾中的pre-update.sample重命名爲pre-update

2.        添加執行屬性:chmod a+x hooks/pre-update

注意:這個配置使得每次push之後,都會更新服務器的info,保證通過http,clone是正確的。

3.3    配置apache

1.        打開/etc/apache2/http.conf文件

2.        搜索httpd-vhosts.conf,將#Include /etc/apache2/extra/httpd-vhosts.conf這一行前面的#去掉

3.        打開/etc/apache2/extra/httpd-vhosts.conf文件

4.        在結尾添加如下內容


<VirtualHost *:80>

         ServerAdmin<your email>

         ServerNamegit.gitserver

         DocumentRoot/opt/git

         <Directory/opt/git/>

                   Orderallow,deny

                   allowfrom all

         </Directory>

</VirtualHost>


5.        重新啓動apache服務器

a)        /usr/sbin/apachectl2 stop

b)        /usr/sbin/apachectl2 start

3.4    客戶端clone方法

1.        配置DNS服務器或直接修改客戶端的hosts文件,將服務器的ip指向git.gitserver

2.        在客戶端運行 git clone http://git.gitserver/test.git 不出意外的話應該就能匿名clone了

4      建立gitweb服務器

即通過網頁訪問git倉庫。

4.1    下載git源碼

1.        重新運行Cygwin的setup.exe,

a)        安裝git的source file,安裝的源文件在/usr/src中

b)        安裝gcc4和make

2.        解壓git源文件,進入解壓的文件夾

3.        make GITWEB_PROJECTROOT=”/opt/git”prefix=/usr gitweb/gitweb.cgi

4.        cp –Rf gitweb /srv/www/

注意:GITWEB_PROJECTROOT指定git倉庫集文件夾

注意:/srv/www/是apache httpd2建立的文件夾,也可以放其他文件夾

4.2    配置apache

1.        打開/etc/apache2/extra/httpd-vhosts.conf文件

2.        在結尾添加如下內容

<VirtualHost *:80>

         ServerNameweb.gitserver

         DocumentRoot/srv/www/gitweb

         <Directory/srv/www/gitweb>

                   OptionsExecCGI +FollowSymLinks +SymLinksIfOwnerMatch

                   AllowOverrideAll

                   orderallow,deny

                   Allowfrom all

                   AddHandlercgi-script cgi

                   DirectoryIndexgitweb.cgi

         </Directory>

</VirtualHost>


3.        重新啓動apache服務器

4.3    客戶端訪問方法

1.        配置DNS或直接修改客戶端的hosts文件,使得web.gitserver指向服務器

2.        在瀏覽器中輸入http://web.gitserver

3.        不出意外,就可以直接訪問git倉庫了

5      安裝redmine

注:安裝完後,我發現官網上提供了一個鏈接,做了一個windows下的安裝包,不知道好不好使。鏈接http://bitnami.org/stack/redmine如果好使的話,下面的就不用看了。

注:今天試了試bitnami,確實挺好使的,一鍵裝好apache,mysql,ruby/rails/rake,redmine,自動配置好!只要注意幾個問題:

  1. 安裝時一定要關閉殺毒軟件和安全軟件,比如360等
  2. 所有填的東西都不要有中文,比如人名,否則不能正確生成配置文件
  3. 注意以前沒有安裝衝突的東西,比如imagemagick(如果最後都裝好了,但是就是不能啓動redmine,看看log文件)

5.1    安裝ruby/rails/rack等

1.        在rubyforge中下載並安裝rubyinstaller-1.8.7-p357.exe(不要安裝新版,新版不好使)

2.        在開始菜單中,選擇Ruby 1.8.7-p357-> Start Command Prompt with Ruby

3.        gem install rails -v=2.3.11

4.        gem install rack -v=1.1.1

5.        gem install mysql

6.        下載官網安裝說明中libmysql.dll http://instantrails.rubyforge.org/svn/trunk/InstantRails-win/InstantRails/mysql/bin/libmySQL.dll拷貝到ruby的bin文件夾

7.        gem update --system 1.6.2 (否則後面的db:migrate會報錯)

5.2    下載redmine並解壓

1.        從官網鏈接下載redmine 1.3.0 http://rubyforge.org/frs/?group_id=1850

5.3    安裝並配置mysql

1.        下載mysql的win32版,並安裝(我安裝的是mysql-5.5.19-win32.msi),記得鉤選將mysql的執行文件路徑加入到Path環境變量

2.        打開cmd,執行mysql -u root -p,並輸入密碼,然後執行以下3個sql語句

a)        create database redminecharacter set utf8;

b)        create user'redmine'@'localhost' identified by 'my_password';

c)        grant all privileges onredmine.* to 'redmine'@'localhost';

5.4    配置redmine

1.        進入redmine解壓的文件夾,重命名config/database.yml.example爲config/database.yml,並修改production下的內容爲

production:

  adapter: mysql

  database: redmine

  host: localhost

  username: redmine

  password:my_password


2.        在redmine文件夾執行

a)        rake generate_session_store

b)        set RAILS_ENV=production

c)        rake db:migrate

d)        rake redmine:load_default_data

3.        測試:

a)        ruby script/server webrick -eproduction

b)        在瀏覽器中訪問http://localhost:3000

c)        登錄管理員登錄:用戶名 admin 密碼 admin

5.5    mongrel

webrick服務器只能用來做測試,發佈時可以採用mongrel服務器或apache服務器,不過apache對應的module太難整了,mongrel比較好配置。

5.5.1  安裝mongrel

1.        安裝mongrel:gem install mongrel

2.        安裝mongrel_service:gem install mongrel_service

5.5.2  下載mongrel bug補丁

rails和mongrel版本有點不兼容導致的問題。

1.        下載https://gist.github.com/raw/826692/cb0dcf784c30e6a6d00c631f350de99ab99e389d/mongrel.rb

2.        運行 rails --version 看看rails到底是什麼版本,我的居然是2.3.14,我明明安裝的是2.3.11……

3.        打開mongrel.rb文件,第一行if後面一看就知道是個數組,在最後加上你的rails的版本,比如[,’2.3.14’],保存之

4.        將mongrel.rb文件保存到redmine文件夾中的config\initializers\子文件夾中

5.5.3  註冊mongrel服務

1.        註冊服務:mongrel_rails service::install -N redmine -c <redmine文件夾路徑,如c:\redmine>-p 3000 -e production

2.        打開控制面板->管理工具->服務,找到redmine,設置爲“自動”,使得redmine服務開機啓動

 

注:

1.        手動啓動服務:mongrel_rails service::start -N redmine

2.        手動停止服務:mongrel_rails service:: stop -N redmine

3.        刪除服務:mongrel_rails service::remove -N redmine

5.5.4  mongrel和apache同時運行

據說可以用apache的mod_proxy模塊,將apache的某個folder映射到mongrel所在的端口,不過不太會整,放棄之。

用到的資源

爲了方便大家,把安裝時用到的文件上傳了,兩個包:

http://download.csdn.net/detail/windtailljj/3999049

http://download.csdn.net/detail/windtailljj/3999070

發佈了52 篇原創文章 · 獲贊 5 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章