linux下apache+SVN搭建完美版

linux下apache+SVN搭建完美版

一 、先介紹一下Subversion和apache,apr,apr-util的關係


        不少朋友初次接觸Subversion時不是很理解subversion和apache的關係。
        我在這裏簡單說明一下svn服務器和客戶端的安裝說明。html

1.1服務器


        subversion服務器是不須要apache的,可是可使用apache,視具體狀況來選擇。
        一、若是隻要經過file://或svn://來訪問,則不須要apache,只安裝svn便可,使用svnserve來做爲服務。
        二、若是你要創建一個能夠經過http://或https://來訪問的版本庫服務器,則你須要使用apache。linux

1.2客戶端


        在windows下,無論你要訪問的是什麼類型的服務器,只要安裝一個TortoiseSVN就能夠了,開發者已經幫你搞定一切。
        在類Linux系統下,若是你經過file://或svn://來訪問,則只要編譯安裝svn就能夠,
        若是經過http://訪問,則要同neon編譯,
        若是經過https://訪問,則要同帶ssl支持的neon編譯,
        不論怎樣,都要同apr和apr-util編譯。
        neon、apr、apr-util也很容易得到,目前發佈的subversion代碼都會有一個叫作subversion-deps-xxx的文件,好比1.4.3的就是subversion-deps-1.4.3.tar.bz2
        對於訪問國外網站比較慢的朋友,下載Subversion和客戶端,能夠到 http://www.iUseSVN.com ,因帶寬和流量有限,網站只對註冊用戶開放下載,這點有點麻煩,可是很值得,一是下載速度的確至關快,二是裏面有不少熱於與你們交流的Subversion愛好者apache

2、架設

 

2.1 首先準備好相關的安裝包,我這裏使用的是下列的幾個包


        Apr : apr-1.2.12 和 apr-util-1.2.12
        Apache : httpd-2.2.4.tar.gz
        Subversion: subversion-1.4.5.tar.gz 和 subversion-deps-1.4.5.tar.gz
        注意:在安裝過程當中可能會提示須要安裝其餘的包,根據具體的狀況來安裝所須要的包,若是安裝過程很順利則說明你運氣好!windows

2.二、安裝和配置步驟:

一、安裝apr-1.2.12

        # tar –zvxf apr-1.2.12.tar.gz
        # cd apr-1.2.12
        # ./configure /* 安裝不指定路徑時 默認安裝到/usr/local/apr
        # make ; make install
       

二、安裝 apr-util-1.2.12


        # tar –zvxf apr-util-1.2.12.tar.gz
        # cd apr-util-1.2.12
        # ./configure - -with-apr=/usr/local/apr
        # make ; make install
       瀏覽器

三、安裝 httpd-2.2.4.tar.gz


        # tar –zvxf httpd-2.2.4.tar.gz
        # cd httpd-2.2.4
        # ./configure
        --prefix=/usr/local/apache
        --with-apr=/usr/local/apr/bin/apr-1-config
        --with-apr-util=/usr/local/apr/bin/apu-1-config
        --enable-modules=so /* DSO模式安裝apache (或 --enable-so)
        --enable-dav
        --enable-maintainer-mode
        -- enable-rewrite
        # make ; make install
        安裝好後啓動apache
        # /usr/local/apache/bin/apachectl –k start
        用瀏覽器查看http://localhost/,獲得it works,說明apache已經配置成功了。
       安全

四、安裝和配置 subversion


        #tar –zvxf subversion-1.4.5.tar.gz
        #tar –zvxf subversion-deps-1.4.5.tar.gz /*這兩個自動解壓成一個包 subversion-1.4.5
        #cd subversion-1.4.5
        #rm –rf apr
        #rm -rf apr-util
        注意:SVN 依賴的APR版本要正確。若是Apache爲2.0.x,對應的APR版本應爲0.9.x;Apache爲2.2.x,對應的APR版本應爲1.2.x。因爲subversion-deps包裏的APR是0.9.x的,所以編譯svn時要刪除從deps裏解壓出來的apr, apr-util,改而使用apache 2.2裏提供的。(這裏指定爲開始安裝的apr目錄),這一點知識很是重要,本身以前屢次安裝都沒成功,如今才明白是在這一點被卡住了,但最終仍是被我解決了, 學習,和不斷實踐 會使你不斷成長!
        #./configure
        --prefix=/usr/local/svn
        --with-apxs=/usr/local/apache/bin/apxs
        --with-apr=/usr/local/apr/bin/apr-1-config
        --with-apr-util=/usr/local/apr/bin/apu-1-config
        --with-ssl
        --with-zlib
        --enable-maintainer-mode
        #make
        #make install
        肯定一下svn有沒有安裝成功
        #/usr/local/svn/bin/svnserve - -version
        會看到相關版本信息!
        完了再看看apache 的相關模塊有沒有加載!以下!
        LoadModule dav_svn_module modules/mod_dav_svn.so
        LoadModule authz_svn_module modules/mod_authz_svn.so
        到此若是一直都順利的話就基本沒什麼問題!繼續往下!
        開始創建版本庫
        #/usr/local/svn/bin/svnadmin create /svn/project/www /*建立倉庫"www"
        #ls /svn/project/www /*查看有沒有建立好,若是多了一些文件則說明版本庫已經建立好
        導入項目文件到版本庫
        下面這條語句將把路徑/share/www下找到的項目文件導入到你建立的/svn/project/www 倉庫中去,
        提交後的修訂版爲1
        #/usr/local/svn/bin/svn import /share/www file:///svn/project/www -m 「註釋」
        配置提升svn版本庫的安全性
        #chmod –R 700 /svn/project /*不讓其餘人有該目錄的權限
        注意: 直接這麼chmod會致使svn客戶端沒法訪問,同時須要修改apache配置文件./conf/httpd.conf文件,(若是你的水平不夠高的話,這一步能夠先跳過,以避免給本身找麻煩!等把服務徹底搞定後再來進一步提升安全性) 在httpd.conf文件中有這麼一段內容:
        User daemon
        Group daemon
        把上述內容改爲:
        User apache
        Group apache
        (個人系統在安裝apache的時候,自動增長了apache用戶和apache組,若是你係統沒有這個用戶和組,則請本身添加該用戶和組)
        修改svn倉庫的全部者
        #chown -R apache:apache /svn/project
       服務器

五、配置apache支持svn


        #vi /usr/local/apache/conf/httpd.conf
        在文件末尾添加
        DAV svn
        SVNParentPath /svn/project (此處配置你的版本庫根目錄) --注意這裏不要是svnpath
        AuthType Basic (鏈接類型設置 基本驗證)
        AuthName "Hello welcome to here" (此處字符串內容修改成提示對話框標題)
        AuthUserFile /svn/passwd (此處修改成訪問版本庫用戶的文件,
        用apache 的htpasswd命令生成)
        AuthzSVNAccessFile /svn/auth.conf (此處修改成訪問版本庫權限的文件)
        Require valid-user ("Require valid-user"告訴apache在authfile中全部的用戶均可以訪問。
        若是沒有它,則只能第一個用戶能夠訪問新建庫)
        保存文件退出!
        從新啓動apache
        # /usr/local/apache/bin/apachectl –k restart
        先使用瀏覽器檢測一下
        打開瀏覽器訪問http://192.168.0.1/svn/www 會提示輸入用戶名密碼
        等到完成下面步驟就能夠進去訪問了,進去後若是有東西顯示就說明成功。
        下面就是對svn的用戶和權限配置管理
       ide

六、配置svn權限管理(即authz.conf的配置)


        1 . 添加用戶:
        # /usr/local/apache/bin/htpasswd –c /svn/passwd user1
        第一次設置用戶時使用-c表示新建一個用戶文件。回車後輸入用戶密碼,完成對用戶的增長
        第二次添加用戶不須要帶 –c 參數 如:
        # /usr/local/apache/bin/htpasswd /svn/passwd user2
        2 . 權限分配:
        #vi /svn/auth.conf
        [groups] /*這個表示羣組設置
        Admin=usr1,user2 /*這個表示admin羣組裏的成員 user1,user2
        Develop=u1, u2 /*這個表示Develop羣組裏的成員 u1,u2
        [www:/] /*這表示,倉庫www的根目錄下的訪問權限
        user1 = rw /*www倉庫user1用戶具備讀和寫權限
        user2 = r /* www倉庫userl用戶具只有讀權限
        @develop=rw /*這表示 羣 develop的成員都具備讀寫權限
        [/] /*這個表示在全部倉庫的根目錄下
        * = r /*這個表示對全部的用戶都具備讀權限
        注意:在編輯authz.conf文件時,全部行都必需要頂頭寫,不能有縮行出現,不然會報錯:"Access denied: ''user1'' ",裏面的內容能夠根據本身的須要自行添加,沒必要與我上面所寫的相同!
       svn

七、重啓apache服務和啓動svn服務


        #/usr/local/apache/bin/apachectl –k restart
        就能夠經過 http://192.168.0.1/svn/www 這個URL來訪問倉庫了,固然,授權限的限制,必須是合法用戶才能訪問且具備相應的權限
        最後啓動svn
        #/usr/local/svn/bin/svn -d -r /svn/project
        -d 表示以 daemon 方式(後臺運行)運行
        -r /svn/project 指定根目錄是/svn/project
        檢查服務器是否啓動正常:
        #ps –ef|grep svnserve
        若是顯示以下,即爲啓動成功:
        Root  6941   1 0 15:07 ?  00:00:00 svnserve -d ——listen-port 9999 -r /svn
        接下來客戶端TortoiseSVN直接安裝,重啓客戶端計算機。
        OK.到此 APACHE+SVN服務器的架設已經完成post

3、附錄:

        linux 下命令行查看Apache是否安裝、路徑、版本。         SSH訪問遠程linux.如何查看裏邊是否安裝了Apache ,安裝路徑,當前版本。         若是你是問linux自動安裝的Apache的話,直接使用Apachectl-v命令,若是告訴你沒有這個方法就能夠知道系統沒有安裝Apache,若是已經安裝了則顯示Apache的版本,至於安裝目錄,使用Apachectl -c就能夠知道了。         使用Apachectl的前提條件也得你知道Apache源碼安裝的全路徑啊,通常 是/usr/local/Apache2/bin/Apachectl。 如通是經過rpm包安裝的話直接rpm -q httpd  就能看有沒有安裝了

相關文章
相關標籤/搜索