CentOS 下 Apache + Subversion 實現版本控制

 

        首先要說明一點的是Apache並非必須安裝的,若是你只用在CentOS下本地實現版本控制的話,不然你至少要選擇一種服務器與SNV配合使用才能實現遠程版本控制,比較推崇使用Apache,好處實在太多了,好比多種身份驗證,可配置使用SSI加密等高級功能,固然,Apache也存在一些缺點,好比http自己是無狀態鏈接的,結果是致使鏈接速度相對要慢一點,不過本人在實際使用過程當中感受,只要你不是發燒極別的灰骨,基本能夠忽略,呵呵.linux

    CentOS官方有資料專門介紹如何配置SVN的,不過官方都是用yum方式安裝的,確實YUM有時候確實好用,不過對於初學者仍是推薦自編譯安裝,在這一過程當中出現的問題自已試着解決,實際上是一件很是有效的學習方法,也是很是有趣的一件事.apache

   CentOS官方資料: http://wiki.centos.org/HowTos/Subversion?highlight=(subversion)centos

安裝步驟:瀏覽器

一、安裝Apache服務器

二、安裝subversiontcp

三、建立版本庫svn

Apache安裝(原轉載的文章感受這一塊講的不是很好,就加上了這一塊.):學習

 

一、下載:CentOS Apache測試

[root@localhost src]# chmod +x httpd-2.2.8.tar.gzui

[root@localhost src]# tar -zxvf httpd-2.2.8.tar.gz

2)CentOS Apache設置編譯器的編譯參數

[root@localhost src]# cd httpd-2.2.8

[root@localhost httpd-2.2.8]# ./configure –prefix=/usr/local/apache2 –enable-module=so

3)CentOS Apache編譯和安裝:

[root@localhost httpd-2.2.8]# make&&make install

#若是沒有錯誤的話,那麼Apache就已經安裝在/usr/local/apache2目錄中了

四、CentOS Apache啓動服務:

[root@localhost httpd-2.2.8]# /usr/local/apache2/bin/apachectl start

五、CentOS Apache肯定啓動狀:

[root@localhost apache2]# netstat -utl

tcp 0 0 *:http *:* LISTEN

#看到上面這行就表示你的Apache已經啓動。

#用瀏覽器訪問,看到It works!,說明apache已經安裝成功了,恭喜您!

1、準備好安裝包:

apr-1.3.6.tar.gz   下載地址:http://apr.apache.org/

apr-util-1.3.8.tar.gz

subversion-1.6.3.tar.gz 下載地址: http://subversion.tigris.org/

subversion-deps-1.6.3.tar.gz

httpd-2.2.9.tar.gz 下載地址:http://httpd.apache.org/

注意:apach的版本 與 subversion版本的兼容問題,官網都有介紹

2、開始安裝:把以上安裝包上傳至/usr/local目錄,cd /usr/local 進入該目錄

一、安裝apr

#解壓包

      tar zxvf apr-1.3.6.tar.gz

      cd apr-1.3.6

      ./configure

      make && make install

二、安裝apr-util

      tar zxvf apr-util-1.3.8.tar.gz

      cd apr-util-1.3.8

      ./configure --with-apr=/usr/local/apr

      make && make install

三、安裝 apache

      tar zxvf httpd-2.2.9.tar.gz

      cd httpd-2.2.9

      ./configure --prefix=/usr/local/apache2.2.9 --enable-dav --enable-so --enable-maintainer-mode --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config #--prefix表示把apache安裝在指定目錄

      make && make install

四、安裝subversion

 tar zxvf subversion-1.6.3.tar.gz

      tar zxvf subversion-deps-1.6.3.tar.gz

      cd subversion-1.6.3

      ./configure --prefix=/opt/svn --with-apxs=/usr/local/apache2.2.9/bin/apxs --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr

      make && make install

      至此,安裝基本完畢,再配置下就可使用了

      注意:由於這些安裝包須要gcc編譯,因此要確保linux上裝有gcc程序,不然是沒辦法進行安裝的

3、在apache中配置SVN

      vi /usr/local/apache2.2.9/conf/httpd.conf

     若是你看到以下兩句,說明安裝是成功的

      LoadModule dav_svn_module     modules/mod_dav_svn.so

      LoadModule authz_svn_module   modules/mod_authz_svn.so

      若是有下面一句就用#註釋掉

      #LoadModule foo_module modules/mod_foo.so

     定義apache訪問svn配置:

      <Location /svn>

              DAV svn

      #      SVNPath /opt/svndata

              SVNParentPath /opt/svndata

              AuthzSVNAccessFile /opt/svn/conf/authz.conf

              AuthType Basic

              AuthName "Subversion repository"

              AuthUserFile /opt/svn/conf/passwd.conf

              Require valid-user

      </Location>

4、配置svn

      創建svn版本庫目錄

      mkdir -p /opt/svndata/repos #能夠多建版本庫目錄

      ②創建svn版本庫

      svnadmin create /opt/svndata/repos

      mkdir -p /opt/svndata/repos #能夠多建版本庫

      ③創建本地訪問控制文件

      /usr/local/apache2.2.9/bin/htpasswd -c /opt/svn/conf/passwd.conf username

      而後輸入密碼便可,默認是MD5加密的

      /usr/local/apache2.2.9/bin/htpasswd /opt/svn/conf/passwd.conf username1 #追加用戶

      ④創建本地項目控制文件

      touch /opt/svn/conf/authz.conf

      本例authz.conf內容爲:

      [groups]

      #<groupname1>=<username1>,<username2>

      admin=username

      #[<versionLib>:projectName/directory]

      #@<groupsname>=<authorities>

      #<username>=<authorities>

      [/]

      @admin = rw      #指定用戶組成員能夠讀寫根目錄全部應用

      [repos:/abc/aaa]

      username1= rw      #指定用戶username1能夠讀寫:/abc/aaa目錄的文件

至此,整個安裝過程完成了!

5、測試鏈接

    啓動apache

      /usr/local/apache2.2.9/bin/apachectl start

     打開瀏覽器,輸入http://192.168.1.107/svn/repos #本例服務器ip是192.168.1.107

      使用剛纔建立的權限用戶名與密碼登陸便可訪問

      注意:在你上傳文件的時候可能會有以下權限不足的提示

      Permission denied

      svn: Commit failed (details follow):

      svn: Can't create directory '/opt/svndata/repos/db/transactions/0-1.txn': Permission denied

      這是由於apache在線程用戶沒有權限訪問svn的倉庫,二者分別屬於不一樣的用戶者

      本例apache屬於daemon擁有者,而svn倉庫屬於svn擁有者

      解決方法:

      chown -R daemon /opt/svndata/repos

      chmod -R 755 /opt/svndata/repos

       重啓下apache:

       /usr/local/apache2.2.9/bin/apachectl stop

       /usr/local/apache2.2.9/bin/apachectl start

    3. 「Could not open the requested SVN filesystem」 errorcode=2

        若是出現這個錯誤你就得看一下Apache的httpd.conf文件裏面相關版本庫路徑是否是正確,請確保使用的是絕對路徑.

 

相關文章
相關標籤/搜索