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

posted @ 2012-01-04 23:08  windtail  阅读(1035)  评论(0编辑  收藏  举报