一、raid
二、svn
1.subversion-1.6.12.tar.gz
2.httpd-2.2.16.tar.gz
3. db-5.0.26.NC /*svn必須的資料庫*/
####################################安裝步驟 開始####################################
1.以root使用者登入系統,将以上軟體複制到/usr/local/目錄下.
2.安裝Apache,安裝Berkeley DB,安裝Subversion
指令如下:
[安裝Apache]
#tar -zxvf httpd-2.0.55.tar.gz /*解壓*/
#cd httpd-2.0.54 /*進入剛才解壓的目錄*/
#./configure --enable-dav --enable-so --enable-ssl --enable-maintainer-mode -prefix=/usr/local/apache2 --enable-mods-shared=all /*編譯配置,記住參數一個不能少.ssl是
為以後用安全鍊加的module,dav子產品就不用我說了,然後是共享所有子產品*/
#make /*編譯*/
#make install /*安裝*/
[安裝Berkeley DB]
#tar -zxvf db-4.4.20.NC.tar.gz /*解壓*/
#cd db-4.4.20.NC/build_unix/ /*進入目錄*/
#../dist/configure --prefix=/usr/local/bdb /*編譯配置,指定安裝目錄*/
#make /*編譯*/
#make install /*安裝*/
這裡要安裝gcc和openssh以及openssh-devel
[安裝Subversion]/*下面就不用寫注釋了,相信看了上面兩段應該看得懂了*/
#tar -zxvf subversion-1.3.2.tar.gz
#cd subversion-1.3.2
#./configure --with-berkeley-db=/usr/local/bdb --with-apxs=/usr/local/apache2/bin/apxs
#make
#make install
3.檢查Subversion是否安裝成功
#svnadmin --version /*如果成功你會看見相應的版本号,和支援的服務*/
4.建立軟體倉庫
#mkdir -p /svn/repos /*-p 意思是如果沒有目錄則建立*/
#svnadmin create --fs-type fsfs /svn/repos /*參數 --fs-type fsfs 是指定存儲類型*/
svn存儲版本資料也有2種方式:BDB和FSFS。因為BDB方式在伺服器中斷時,有可能鎖住資料(我在搞ldap時就深受其害,沒法根治),是以還是FSFS方式更安全一點。
5.建立項目臨時目錄,建議目錄結構如下:
/svn/tmp/project_xxx/trunk
/svn/tmp/project_xxx/tags
/svn/tmp/project_xxx/branches
/**********************************************************
然後将項目檔案複制到trunk下,如果是從CVS轉移過來的項目,用下面指令清理目錄
#find projectname/ -name CVS -exec rm -rf {} \;
**********************************************************/
6.導入source
#svn import -m "initial import" /opt/svn/tmp file:///opt/svn/repos
/***********************************************************
-m 後面跟的是操作注釋 /opt/sv/tmp是項目檔案位置 file:///opt/svn/repos是建立的軟體倉庫
***********************************************************/
7.檢查是否倒入成功
#svn list --verbose file:///opt/svn/repos/
/***********************************************************
如果成功你看到到你倒入的項目清單,按我的操作步驟應該不會有錯
***********************************************************/
8.給倉庫授權
#chown -R apache.apache /svn/repos
#chmod 770 /svn/repos
#chmod -R g+w /svn/repos
9.與apache整合
用apache工具建立使用者檔案
#htpasswd -c /svn/passwd admin ##密碼為:123456
設定密碼檔案權限
#chown a+r passwd
10.修改配置檔案/home/svnrepo/conf/svnserve.conf
#去掉#[general]前面的#号
[general]
#匿名通路的權限,可以是read,write,none,預設為read
anon-access = none
#認證使用者的權限,可以是read,write,none,預設為write
auth-access = write
#密碼資料庫的路徑,去掉前面的#
password-db = passwd
注意:所有的行都必須頂格,否則報錯。
建議:為了防止不必要的錯誤,建議你直接用我上面的内容覆寫掉檔案原來的内容
修改配置檔案passwd
代碼
[users]
abc = abc
注意,一定要去掉[users]前面的#,否則svn隻能以匿名使用者登入,用戶端不會出現登入視窗,除非你的anon不為none,否則将傳回一個錯誤。
這裡的密碼都是沒有加密的,我按照一些教程所說的用htpasswd生成的密碼無法使用。
配置SVN xinetd啟動方式:
在/etc/xinetd.d/下面建立svn檔案
service svn
{
disable = no
port = 3690
socket_type = stream
protocol = tcp
wait = no
user = svn
server = /usr/bin/svnserve
server_args = -i -r /home/svn
}
重新開機xinetd /etc/init.d/xinetd restart
停止SVN伺服器:killall svnserve
啟動SVN伺服器
對于單個代碼倉庫
啟動指令 svnserve -d -r /home/svn --listen-host 192.168.1.16
其中-d表示在背景運作,-r指定伺服器的根目錄,這樣通路伺服器時就可以直接用svn://伺服器ip來通路了。如果伺服器有多ip的話--listen-host來指定監聽的ip位址.
我們可以在svn用戶端中通過svn://192.168.1.16來通路svn伺服器
對于多個代碼倉庫,我們在啟動時也可以用-r選項來指定伺服器根目錄,但通路時需要寫上每個倉庫相對于svn根目錄的相對路徑.
比 如,我們有兩個代碼倉庫/home/repo1 和/home/repo2,我們用svnserve -d -r /home--listen-host 192.168.1.16來啟動,那麼在用戶端通路時可以用svn://192.168.1.16/repo1和svn:
//192.168.1.16/repo2來分别通路兩個項目
開放伺服器端口
svn預設端口是3690,你需要在防火牆上開放這個端口。
/sbin/iptables -A INPUT -i eth0 -p tcp --dport 3690 -j ACCEPT
/sbin/service iptables save
你也可以通過svnserve的--listen-port選項來指定一個已經開放的其他端口,不過這樣的話用戶端使用也必須家上端口,如svn://192.168.1.200:9999/.
啟動subversion服務,并設定版本庫位置
# svnserve --daemon --root=/svn/repos --listen-port=3690(為主)
注:不推薦使用root使用者啟動服務,預設端口号為3690
11.# yum list mod_dav_svn
注:可以發現與mod_dav_svn相關的包mod_dav_svn.i386,安裝mod_dav_svn.i386
# yum install mod_dav_svn.i386
注:安裝完成後可以發現在/etc/httpd/conf.d檔案夾下,自動産生了subversion.conf檔案,而且自動添加了如下兩行:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
将......之間的内容改為如下内容:
DAV svn
SVNPath #SVNPATH/repos/project1
12.使用svn用戶端導入項目
推薦使用用戶端 http://tortoisesvn.tigris.org/
eclipse插件 http://subclipse.tigris.org/
9.與apache整合
用apache工具建立使用者檔案
#htpasswd ?c /opt/svn/pwd admin ##密碼為:123456
設定密碼檔案權限
#chown a+r pwd
建立通路權限檔案assesspolicy内容
[groups]
developers =admin
[repos:/]
@developers = rw
ssl安全認證:
找到openssl.cnf目錄執行
#openssl genrsa -des3 -out my-server.key 1024
然後輸入密碼:xxxxxx
生成證書執行:
#openssl req -new -key my-server.key -x509 -out my-server.crt -config openssl.cnf
在 Apache 的 conf 目錄下建立一個 sslfile 目錄,将 my-server.key 和 my-server.crt 檔案都移動到 sslfile 目錄裡面
修改apache的httpd.conf檔案
User apache
group apache
打開sslmod前的#号
LoadModule ssl_module modules/mod_ssl.so
在最後加入如下内容
SSLMutex default
SSLRandomSeed startup builtin
SSLSessionCache none
ErrorLog logs/SSL.log
LogLevel info
<VirtualHost svntest.ut.cn.ibm.com:443>
SSLEngine On
SSLCertificateFile conf/ssl/my-server.crt
SSLCertificateKeyFile conf/ssl/my-server.key
</VirtualHost>
<Location /repos>
DAV svn
SVNPath /opt/svn/repos
AuthType Basic
AuthName "svn repos"
AuthUserFile /opt/svn/pwd
AuthzSVNAccessFile /opt/svn/accesspolicy
require valid-user
SSLRequireSSL ##加了這句就隻能用https模式,不能用http模式了
</Location>
OK,到些結束,啟動apache吧,别忘了要輸入你建立證書時的密碼!
9.與apache整合
用apache工具建立使用者檔案
#htpasswd ?c /opt/svn/pwd admin ##密碼為:123456
設定密碼檔案權限
#chown a+r pwd
建立通路權限檔案assesspolicy内容
[groups]
developers =admin
[repos:/]
@developers = rw
ssl安全認證:
找到openssl.cnf目錄執行
#openssl genrsa -des3 -out my-server.key 1024
然後輸入密碼:xxxxxx
生成證書執行:
#openssl req -new -key my-server.key -x509 -out my-server.crt -config openssl.cnf
在 Apache 的 conf 目錄下建立一個 sslfile 目錄,将 my-server.key 和 my-server.crt 檔案都移動到 sslfile 目錄裡面
修改apache的httpd.conf檔案
User apache
group apache
打開sslmod前的#号
LoadModule ssl_module modules/mod_ssl.so
在最後加入如下内容
SSLMutex default
SSLRandomSeed startup builtin
SSLSessionCache none
ErrorLog logs/SSL.log
LogLevel info
<VirtualHost svntest.ut.cn.ibm.com:443>
SSLEngine On
SSLCertificateFile conf/ssl/my-server.crt
SSLCertificateKeyFile conf/ssl/my-server.key
</VirtualHost>
<Location /repos>
DAV svn
SVNPath /opt/svn/repos
AuthType Basic
AuthName "svn repos"
AuthUserFile /opt/svn/pwd
AuthzSVNAccessFile /opt/svn/accesspolicy
require valid-user
SSLRequireSSL ##加了這句就隻能用https模式,不能用http模式了
</Location>
OK,到些結束,啟動apache吧,别忘了要輸入你建立證書時的密碼!