一步一步搭建Svn+Apache環境(附源碼包)

一步一步搭建Svn+Apache環境(附源碼包)python

    看了不少網上的搭建方法,可是由於配置的svn和Apache的版本問題和網上寫的教程的不完整等緣由,阻礙了不少想要學習的朋友!!今天親手搭建了一下Svn+Apache環境,而且詳細記錄了每一步搭建的細節,送給須要的朋友們!linux

    軟件版本:
sql

        redhat6.4(64位)數據庫

        apr-1.5.1.tar.gzapache

        apr-util-1.5.3.tar.gzwindows

        httpd-2.2.27.tar.gz瀏覽器

        sqlite-amalgamation-3.6.17.tar.gzbash

        sqlite-amalgamation-3071501.zip服務器

        subversion-1.8.10.tar.gzapp

        TortoiseSVN_1.8.6.25419_x64_XiaZaiBa.zip(windows客戶端)          

點擊 下載全部源碼包(免費下載,送給須要的朋友們)

    SVN介紹

        SVN是一個版本控制工具,Subversion的版本庫(repository),就是位於服務器,統一管理和儲存數據的地方。

    題外話,搭建SVN服務器apache是必須的嗎?
        Subversion(SVN)做爲一個單獨的版本管理軟件是不具有網頁瀏覽功能的。就是說,你能夠用版本管理的客戶端好比:TotoriseSVN來和 SVN服務器進行鏈接。這樣若是你的電腦沒有安裝SVN客戶端就不能使用SVN服務器提供的服務了。爲了實現請客戶端的目標,就想經過網頁來進行訪問瀏 覽。因此就將網頁瀏覽的功能經過Apache服務器來實現。而經過Apache的插件來和SVN進行鏈接後,用戶能夠經過瀏覽 器:IE,Firefox,NetScape等,訪問SVN服務器。這樣很方便了。如今有很多的SVN服務器軟件直接提供網頁功能,並且支持圖形界面。我 我的使用的是VisualSVN,感受不錯,很容易管理,圖形化的界面。你能夠嘗試下,至於SVN客戶端你能夠用TotoriseSVN。 NetBeans,Eclipse等開發IDE都內置了SVN插件,很容易用的。

    SVN數據存儲方式

        在Subversion中,版本庫的數據存儲有兩種方式:一種是在Berkeley DB數據庫中存放數據;另外一種是普通文件,採用自定義的格式來存儲,稱爲FSFS。

    SVN搭建

        一、關閉iptables、selinux

           service iptables stop //關閉防火牆
           setenforce 0 //臨時關閉selinux
           vi /etc/selinux/config   //永久關閉,要重啓
           將SELINUX=enforcing改成SELINUX=disabled

        二、建立管理用戶

           groupadd sinova
           mkdir /app
           useradd -d /app/sinova -g sinova sinova
           echo "sinova" | passwd --stdinsinova

        三、修改/etc/hosts

           vi /etc/hosts 追加
           192.168.8.88 svn

        四、安裝軟件包

            4.1安裝apache

             tar zxf httpd-2.2.27.tar.gz
             cd httpd-2.2.27
             ./configure --prefix=/app/sinova/apache--enable-dav --enable-so --enable-modules=most
             make
             make install

            4.2 安裝apr、apr-util

                tar zxf apr-1.5.1.tar.gz
                cd apr-1.5.1
                ./buildconf   #驗證系統是否已經安裝python、autoconf、libtool,若是沒有安裝,使用yum或rpm方式安裝相應包便可。

                驗證正確的以下:

wKioL1T4IM_S-1iYAAGzJKhXGsU065.jpg

                ./configure --prefix=/app/sinova/apr
                make
                make install
                 tar zxf apr-util-1.5.3.tar.gz
                 cd apr-util-1.5.3
                 ./configure --prefix=/app/sinova/apr-util--with-apr=/app/sinova/apr
                 make
                 make install

            4.3 安裝sqlite

                 tar zxf sqlite-amalgamation-3.6.17.tar.gz
                 cd sqlite-3.6.17/
                 ./configure --prefix=/app/sinova/sqlite
                 make
                 make install

            4.4 安裝svn

                  tar zxf subversion-1.8.10.tar.gz
                  cd subversion-1.8.10
                  ./configure --prefix=/app/sinova/svn--with-apxs=/app/sinova/apache/bin/apxs--with-apr=/app/sinova/apr/bin/apr-1-config--with-apr-util=/app/sinova/apr-util/bin/apu-1-config--with-sqlite=/app/sinova/sqlite/ --with-openssl --with-zlib--enable-maintainer-mod
                  make
                  make install

                configure時遇到錯誤:

            get the sqlite 3.7.15.1amalgamation from:

            http://www.sqlite.org/sqlite-amalgamation-3071501.zip

            unpack the archive usingunzip and rename the resulting

            directory to:

            /app/soft/subversion-1.8.10/sqlite-amalgamation

            configure: error:Subversion requires SQLite

            解決辦法:

            若是服務器不能聯網,下載http://www.sqlite.org/sqlite-amalgamation-3071501.zip,而後上傳至服務器。解壓

                unzip sqlite-amalgamation-3071501.zip   
                cp  sqlite-amalgamation-3071501/* sqlite-3.6.17

            而後從新安裝sqlite後再configure。

    配置SVN與apache

        一、建立svn項目倉庫

            chmod 777 /app [使用root用戶操做]
            mkdir -p /app/svnroot/ltzb    #建立svn根目錄
            /app/sinova/svn/bin/svnadmin create/app/svnroot/ltzb/test

        二、建立權限配置文件

             vi /app/svnroot/ltzb/authz.conf  #添加以下內容
             [/]   
             * = r  #表示對全部的用戶開放讀的權限
            [test:/]
            lipengfei= rw  #表示用戶liyizhen對倉庫test有讀寫權限。

        三、建立用戶認證文件          

            /app/sinova/apache/bin/htpasswd -c/app/svnroot/ltzb/authfile lipengfei

        四、加載模塊

             svn安裝完成後,會在/app/sinova/svn/libexec目錄下產生mod_authz_svn.so和mod_dav_svn.so這兩個模塊,將這兩個模塊文件拷到apache模塊目錄下。

wKiom1T4IIWT5luNAACEacnkrY4008.jpg

             cp /app/sinova/svn/libexec/* /app/sinova/apache/modules/

             #設置到權限問題使用root用戶來操做,而後賦權給相應用戶。

         五、編輯apache配置文件

               vi /app/sinova/apache/conf/httpd.conf文件,修改以下內容:
                User sinova     #修改  【66行】
                Group sinova    #修改  【67行】
                ServerName www.example.com:80    #去掉本行前面的註釋
                # LoadModule foo_module modules/mod_foo.so 添加
                LoadModule dav_svn_module     modules/mod_dav_svn.so   #添加
                LoadModule authz_svn_module   modules/mod_authz_svn.so  #添加

             如下內容在最後添加:

              <Location /ltzb>
                DAV svn
                SVNParentPath "/app/svnroot/ltzb"
                AuthzSVNAccessFile"/app/svnroot/ltzb/authz.conf"
                AuthType Basic
                AuthName "Subversion.zoneyump"
                AuthUserFile"/app/svnroot/ltzb/authfile"
                Require valid-user
               </location>

        六、啓動apache[使用root用戶,1024如下的端口全要有root權限啓動] 

             /app/sinova/apache/bin/apachectlstart

    使用SVN客戶端測試

        一、經過瀏覽器訪問svn,在地址欄中輸入http://192.168.0.105/ltzb/test

wKioL1T4IgajSdjxAAEVozJqVNA096.jpg

        二、經過windows下的TortoiseSVN客戶端checkout下載操做

        在E盤新建一個目錄test(名稱自定),進入該目錄,鼠標右鍵選擇SVN checkout...

wKioL1T4IkqDOKRcAAFOzFAxngI745.jpg



wKioL1T4IoKhflr5AAF-ObkUie4849.jpg

        三、經過windows下的TortoiseSVN客戶端commit上傳操做

        鼠標右鍵 E盤test目錄,選擇SVN Commit...

wKiom1T4Ib7T4-1vAAEE5LB3Eyw920.jpg


wKioL1T4Iw_DULNcAAFhpwmjTEU253.jpg

        四、在windows下的D盤新建lipengfei目錄,並checkout測試第3步測試成功否

        在D盤新建一個目錄lipengfei(名稱自定),進入該目錄,鼠標右鍵選擇SVN checkout...

wKiom1T4ImCwY89lAAFN-7mVhn0916.jpg

wKioL1T4I5my5Z6gAADDM-u3HDo236.jpg

        能夠看出第3步在E盤test目錄上傳的1.txt是成功的,我在D盤新建lipengfei目錄能夠成功checkout下載出來!

        五、在windows下的D盤新建lipengfei目錄,增長2.txt,測試E盤test目錄的SVN update

在D盤lipengfei目錄增長2.txt,鼠標右鍵該目錄選擇SVN Commit...

wKioL1T4I-PAvQhBAADGZZ6INLs656.jpg

wKiom1T4IuqxSdUrAAF_k3Q5pt4411.jpg

wKioL1T4JEWjmZkbAAEy4o6KiZk624.jpg

        進入E盤,鼠標右鍵test目錄選擇SVN Update...

wKioL1T4JGTSqUIKAAEjDVeYo7s038.jpg


wKiom1T4I3Gw7Y4oAADiRSuex-w126.jpg

        能夠看出在D盤lipengfei目錄上傳的2.txt是成功的,我在E盤test目錄能夠成功update出來!

    附上異常狀況

        在Linux環境下安裝好SVN服務器後,在Linux環境下能夠正常地檢出、提交,在Windows PC上把已有的Repository檢出後,結果在提交的時候出現如下錯誤:
        svn: Can’t open file ‘/home/svn/db/txn-current-lock’: Permission denied
       出現這種問題的緣由在於搭建SVN服務器,包括建立Repository目錄/home/svn目錄下的一切子目錄和文件都是在root用戶下進行的,因此在root用戶下檢出、提交都沒有問題。可在Windows PC上從客戶端訪問就有問題了,由於是隻有擁有管理器權限的人才能對Repository目錄進行徹底控制,而在Windows從客戶端訪問的話,由於是Users用戶組的,對Repository沒有修改權限,因此不能提交。
        解決辦法:在服務器上把Users對Repository的徹底控制權限加上就能夠了,執行以下命令對/app/svnroot/ltzb目錄下的全部文件和子目錄添加Users的讀寫權限
        chmod -R o+rw /app/svnroot/ltzb/test        如今能夠正常地從Windows客戶端下面進行檢出和提交了。

相關文章
相關標籤/搜索