<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-124  評(píng)論-194  文章-0  trackbacks-0

    一、安裝很easy

    Debian下:

    安裝Subversion包:

    apt-get install subversion

    安裝SSL方式訪問所需要的包,注意必需要apache2才行。這里libapache2-svn包括一個(gè)dav模塊用來通過APACHE模塊訪問SVN數(shù)據(jù);openssl是用來生成證書用的;apache2-utils是包括a2enmod命令,不要也行。

    apt-get install apache2 libapache2-svn openssl apache2-utils

    其它系統(tǒng),WINDOWS下就下載相應(yīng)包來直接安裝。

    LINUX下需要下載包后解壓,再make & make install在這里,少不了就是這些:

    tar xjvf subversion-xxx.tar.bz2

    cd subversion-1.3.1

    ./configure --prefix=/usr/local/subversion

    make

    另外,需要在開發(fā)機(jī)器上安裝訪問客戶端,在這里

    這個(gè)客戶端相當(dāng)好用,和explore結(jié)合的相當(dāng)好。

    二、SSL訪問是上上之選

    強(qiáng)烈建議使用WEBSSL方式來使用服務(wù),雖然開始配置麻煩點(diǎn),但一勞永逸。

    這種方式比較安全,且不占用多余端口,另外,從外部通過WEB方式訪問時(shí)也比較安全。量大不加價(jià)。

    三、subversion配置十分簡(jiǎn)單

    官方配置使用文檔相當(dāng)清楚易懂,在這里。缺點(diǎn)就是婆婆媽媽一大堆,廢話太多。下面是過程:

    找個(gè)地方,為subversion創(chuàng)建一個(gè)根目錄,以后所有東西都放這里。先以root用戶先建立目錄,呆會(huì)再改權(quán)限:

    svnadmin create /svnroot

    編輯/svnroot/conf/svnserve.conf,就3句話:

    [general]

    anon-access =none

    auth-access = write

    password-db = passwd

    順次是:沒認(rèn)證的不能登陸;通過認(rèn)證的有寫權(quán)限;密碼文件是本目錄下的passwd文件。

    馬上編輯這個(gè)/svnroot/conf/passwd文件,加入你要的用戶:

    [users]

    harry = harrypass

    sally = sallypass

    再來說下權(quán)限,svnroot最好讓一個(gè)單獨(dú)的系統(tǒng)用戶訪問,不用root更安全。現(xiàn)在創(chuàng)建個(gè)srcusr

    popeye:~# useradd srcusr

    popeye:~# passwd srcusr

    Enter new UNIX password:

    Retype new UNIX password:

    passwd: password updated successfully

    把目錄權(quán)限交給這個(gè)用戶:

    chown –R srcusr:srcusr /svnroot/

    因?yàn)?/span>apache2是以www-data用戶運(yùn)行的,要讓它也能寫這個(gè)目錄,不然你怎么commit呢。

    adduser www-data usrsrc

    chmod -R g+w /svnroot/

    先將它加入usrsrc用戶組,再修改屬性讓組成員有寫權(quán)限。

    到這步,如果你要求不高,就算配置完成了,一句:

    svnserve -d --listen-port 3690 --listen-host 0.0.0.0 -r /svnroot

    啟動(dòng)就可以用了,當(dāng)然客戶端訪問要用,svn://打頭。注意listen-host去不得,不然就是用ipv6偵聽,你就啥也連不過來了。

    最好還是以srcusr用戶權(quán)限來啟動(dòng)那就這樣寫:

    su – srcusr –c “svnserve -d --listen-port 3690 --listen-host 0.0.0.0 -r /svnroot”

    由于我們要配置更安全的方式所以繼續(xù)往下走。

    四、透過APACHE2來訪問SUBVERSION服務(wù)(非SSL方式)

    加載mod_dav_svnssl模塊:

    a2enmod mod_dav_svn

    a2enmod ssl

    這是個(gè)工具,名字就是add to enable module,如果沒有這個(gè)工具,可以直接:

    cd ./mods-enabled/

    ln -s /etc/apache2/mods-available/ssl.* .

    建立enableavailable的鏈接,就是開啟模塊了,跟這個(gè)命令干的事一樣。

    編輯/etc/apache2/httpd.conf文件,加入SUBVERSION的幾行配置,注意開頭處的/repos表明了你在URL里識(shí)別路徑。如:

    http://your.host.com/repos/project1/trunk

    APACHE2發(fā)現(xiàn)是/repos路徑,就會(huì)調(diào)用DAV模塊,訪問的就是系統(tǒng)路徑:

    /svnroot/project1/trunk

    配置如下:

    ServerName localhost

    <Location /repos>

    #DAV模塊訪問數(shù)據(jù)

     DAV svn

    #你的SVN根路徑

     SVNPath /svnroot

    #如果不要SSL,可以不要下面這句

     SSLRequireSSL

     AuthType Basic

     AuthName "Subversion repository"

    #在下面我們馬上要建立這個(gè)密碼文件

     AuthUserFile /etc/svn-auth-file

     Require valid-user

    </Location>

    為之前/svnroot/conf/passwd里的用戶生成HTTP的驗(yàn)證文件:

    $ htpasswd -cm /etc/svn-auth-file harry

    New password: *****

    Re-type new password: *****

    Adding password for user harry

    $ htpasswd -m /etc/svn-auth-file sally

    New password: *******

    Re-type new password: *******

    Adding password for user sally

    重啟服務(wù):

    /etc/init.d/apache2 restart

    到這里,如果你不用SSL,那么就可以用http://your.host.com/repos/project1/trunk

    形式的網(wǎng)址訪問了。瀏覽器會(huì)讓你輸入用戶名密碼。

    但這種方式密碼和內(nèi)容是明文傳送,為了安全我們還是需要SSL方式。

    五、SSL配置一步一步來也不麻煩

    SSLsubversion沒有什么關(guān)系,是APACHE2的配置,這些配置也適用于你想讓人家用https來訪問你網(wǎng)站的情況。

    先通過我之前的一篇文章,不但了解了SSL是咋回事,還順便生成了APACHE要的證書。

    注意:只要看到:cat key.pem cert.pem >key-cert.pem生成了這個(gè)文件就可以了。

    把這個(gè)文件改名并存到:/etc/apache2/ssl/apache.pem,后面配置時(shí)用。

    文章:在這里。開始我也不會(huì),會(huì)了以后,發(fā)現(xiàn)很簡(jiǎn)單。

    現(xiàn)在基本條件都已經(jīng)具備,只要讓APACHE2使用SSL443端口(即https)就可以了。

    先在/etc/apache2/ports.conf里加入:

    Listen 80

    <IfModule mod_ssl.c>

        Listen 443

    </IfModule>

    這樣APACHE2就會(huì)在443偵聽。

    再編輯一個(gè)虛擬HOST文件,讓APACHE2識(shí)別SSL

    cp ./sites-available/default ./sites-enabled/ssl

    有點(diǎn)像啟動(dòng)MODULE時(shí)候的方式,在ENABLED目錄加入一個(gè)文件,從一個(gè)DEFAULT文件開始。

    編輯這個(gè)文件,只要改變開頭:

    NameVirtualHost *:443

    <VirtualHost *:443>

            SSLEngine On

            SSLCertificateFile /etc/apache2/ssl/apache.pem

    ……

    這里的配置就用到了我們先前生成的證書文件。

    另外,原來在此目錄下有一個(gè)文件,也需要改一下,把開頭改成:

    NameVirtualHost *:80

    <VirtualHost *:80>

    這樣就有兩個(gè)虛擬HOST,分別是80443端口。

    重啟服務(wù):

    /etc/init.d/apache2 restart

    再以https://your.host.com/repos/project1/trunk訪問就可以看到像訪問其它HTTPS網(wǎng)站彈出的接受證書的對(duì)話框。在TortoiseSVN里,也是輸入這個(gè)路徑就可以。

    好多文檔講得相當(dāng)復(fù)雜,其實(shí),天長日久的基本使用無非就是那幾項(xiàng)。

    下面是簡(jiǎn)單明了的使用方式:

    將存在的項(xiàng)目導(dǎo)入到SVN

    mkdir -p /tmp/svn/usertools/trunk
    cd /path/to/usertools
    cp -Rp * /tmp/svn/usertools/trunk
    cd /tmp/usertools
    cd /tmp/svn
    svn import svn://servername_or_IPADDRESS/svnroot ."
         -m "Initial import of usertools"

    之后,可以在任意地方將整個(gè)項(xiàng)目CHECKOUT出來進(jìn)行編輯。我覺得SVN最大好處是不用像CLEARCASE那樣每個(gè)文件都要CHECKOUT才能編輯,它是一次CHECKOUT,最后再全部COMMIT

    svn checkout svn://servername_or_IPADDRESS/svnroot/usertools/trunk "
            usertools-current

    我們就這樣開發(fā)下去,不斷向TRUNK分支COMMIT代碼,直到有一天我們要RELEASE了,就再創(chuàng)建兩個(gè)分支,用svn copy命令:

    svn copy svn://servername_or_IPADDRESS/svnroot/usertools/trunk "
            svn://servername_or_IPADDRESS/svnroot/usertools/1.0-release
    svn copy svn://servername_or_IPADDRESS/svnroot/usertools/trunk "
            svn://servername_or_IPADDRESS/svnroot/usertools/1-maint

    一個(gè)是RELEASE分支,一個(gè)用來做維護(hù)。這樣,我們繼續(xù)開發(fā)新功能到TRUNK上,如果需要維護(hù),就在1-maint分支上做,如果有需要可以把改動(dòng)MERGETRUNK

    svn checkout svn://servername_or_IPADDRESS/svnroot/usertools/1-maint "
            usertools-1-maint
    cd usertools-1-maint
    svn merge -r svn://servername_or_IPADDRESS/svnroot/usertools/trunk
    svn commit -m "Merged mantein branch into trunk"

    如果需要RELEASE1.1版本,直接在1-maint上做:

    svn copy svn://servername_or_IPADDRESS/svnroot/usertools/1-maint "
            svn://servername_or_IPADDRESS/svnroot/usertools/1.1-maint
     
    最后,MERGE圖是這樣:
    ------------------------------------------------ usertools-trunk -->
    \                             |           |   \
     ----- usertools-1.0          |           |    --- usertools-2.0
     |                            |           |    |
     ------ usertools-1.0-maint ---------------    ---- usertools-2.0-maint
                                \               \
                                 usertools-1.1 usertools-1.2
     

    使用參看了:這里

    posted on 2007-11-13 13:04 我愛佳娃 閱讀(1879) 評(píng)論(0)  編輯  收藏 所屬分類: 服務(wù)配置
    主站蜘蛛池模板: 亚洲五月午夜免费在线视频| 国产精品免费看久久久| 久久亚洲国产成人影院网站| 精品一卡2卡三卡4卡免费视频 | 亚洲电影在线免费观看| 免费观看的av毛片的网站| 少妇性饥渴无码A区免费| 亚洲三级中文字幕| 亚洲自偷自偷图片| 成年女人18级毛片毛片免费| 亚欧洲精品在线视频免费观看| 亚洲欧洲日韩不卡| 四虎免费久久影院| 95免费观看体验区视频| 在线观看免费亚洲| 亚洲av福利无码无一区二区| 狼友av永久网站免费观看| 一级毛片免费不卡在线| 无码色偷偷亚洲国内自拍| 亚洲性色成人av天堂| 亚洲午夜国产片在线观看| 操美女视频免费网站| 男人j进入女人j内部免费网站| 国产精品亚洲专区一区| 亚洲国产精品无码久久久| 亚洲深深色噜噜狠狠爱网站| 日韩在线视频免费看| 国产在线观看麻豆91精品免费 | 99久久国产热无码精品免费| 一区二区3区免费视频| 亚洲欧美日韩久久精品| 久久久久久久亚洲Av无码| 亚洲女久久久噜噜噜熟女| 日韩免费一区二区三区| 18国产精品白浆在线观看免费| a毛片在线免费观看| 一级做α爱过程免费视频| 日韩色日韩视频亚洲网站| 国产人成亚洲第一网站在线播放| 久久久久久a亚洲欧洲aⅴ| 亚洲综合区小说区激情区|