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,自动配置好!只要注意几个问题:
- 安装时一定要关闭杀毒软件和安全软件,比如360等
- 所有填的东西都不要有中文,比如人名,否则不能正确生成配置文件
- 注意以前没有安装冲突的东西,比如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所在的端口,不过不太会整,放弃之。
用到的资源
为了方便大家,把安装时用到的文件上传了,两个包:
本文由WindTaiL在cnblogs中发布,转载请注明出处