文章目錄
- 1.4.1 產生公開金鑰和私密金鑰
- 1.4.2 配置公開金鑰
- 1.4.3 嘗試串連sshd伺服器
- 5.5.1 安裝mongrel
- 5.5.2 下載mongrel bug補丁
- 5.5.3 註冊mongrel服務
- 5.5.4 mongrel和apache同時運行
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 安裝git2.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所在的連接埠,不過不太會整,放棄之。
用到的資源
為了方便大家,把安裝時用到的檔案上傳了,兩個包:
http://download.csdn.net/detail/windtailljj/3999049
http://download.csdn.net/detail/windtailljj/3999070