溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

CentOS 下 Apache + Subversion 實(shí)現(xiàn)版本控制

發(fā)布時(shí)間:2020-08-01 11:26:28 來(lái)源:網(wǎng)絡(luò) 閱讀:540 作者:huangjinjin520 欄目:建站服務(wù)器

首先要說(shuō)明一點(diǎn)的是Apache并不是必須安裝的,如果你只用在CentOS下本地實(shí)現(xiàn)版本控制的話,否則你至少要選擇一種服務(wù)器與SNV配合使用才能實(shí)現(xiàn)遠(yuǎn)程版本控制,比較推崇使用Apache,好處實(shí)在太多了,比如多種身份驗(yàn)證,可配置使用SSI加密等高級(jí)功能,當(dāng)然,Apache也存在一些缺點(diǎn),比如http本身是無(wú)狀態(tài)連接的,結(jié)果是導(dǎo)致連接速度相對(duì)要慢一點(diǎn),不過(guò)本人在實(shí)際使用過(guò)程中感覺,只要你不是發(fā)燒極別的灰骨,基本可以忽略,呵呵.
CentOS官方有資料專門介紹如何配置SVN的,不過(guò)官方都是用yum方式安裝的,確實(shí)YUM有時(shí)候確實(shí)好用,不過(guò)對(duì)于初學(xué)者還是推薦自編譯安裝,在這一過(guò)程中出現(xiàn)的問題自已試著解決,其實(shí)是一件非常有效的學(xué)習(xí)方法,也是非常有趣的一件事.
CentOS官方資料: http://wiki.centos.org/HowTos/Subversion?highlight=(subversion)
安裝步驟:
1、安裝Apache
2、安裝subversion
3、創(chuàng)建版本庫(kù)
Apache安裝(原轉(zhuǎn)載的文章感覺這一塊講的不是很好,就加上了這一塊.):

1、下載:CentOS Apache

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

2)CentOS Apache設(shè)置編譯器的編譯參數(shù)

[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

#如果沒有錯(cuò)誤的話,那么Apache就已經(jīng)安裝在/usr/local/apache2目錄中了
4、CentOS Apache啟動(dòng)服務(wù):

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

5、CentOS Apache確定啟動(dòng)狀:

[root@localhost apache2]# netstat -utl
tcp 0 0 *:http *:* LISTEN

#看到上面這行就表示你的Apache已經(jīng)啟動(dòng)。
#用瀏覽器訪問,看到It works!,說(shuō)明apache已經(jīng)安裝成功了,恭喜您!
一、準(zhǔn)備好安裝包:

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版本的兼容問題,官網(wǎng)都有介紹
二、開始安裝:把以上安裝包上傳至/usr/local目錄,cd /usr/local 進(jìn)入該目錄
1、安裝apr
#解壓包

     tar zxvf apr-1.3.6.tar.gz 
  cd apr-1.3.6
  ./configure
  make && make install

2、安裝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

3、安裝 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表示把a(bǔ)pache安裝在指定目錄
  make && make install

4、安裝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

至此,安裝基本完畢,再配置下就可以使用了
注意:因?yàn)檫@些安裝包需要gcc編譯,所以要確保linux上裝有g(shù)cc程序,否則是沒辦法進(jìn)行安裝的
三、在apache中配置SVN

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

如果你看到如下兩句,說(shuō)明安裝是成功的

    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>

四、配置svn
建立svn版本庫(kù)目錄

         mkdir -p /opt/svndata/repos #可以多建版本庫(kù)目錄

建立svn版本庫(kù)

        svnadmin create /opt/svndata/repos
  mkdir -p /opt/svndata/repos #可以多建版本庫(kù)

建立本地訪問控制文件

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

然后輸入密碼即可,默認(rèn)是MD5加密的

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

建立本地項(xiàng)目控制文件

     touch /opt/svn/conf/authz.conf

本例authz.conf內(nèi)容為:

        [groups]
  #<groupname1>=<username1>,<username2>
  admin=username
  #[<versionLib>:projectName/directory]
  #@<groupsname>=<authorities>
  #<username>=<authorities>
  [/]
  @admin = rw      #指定用戶組成員可以讀寫根目錄所有應(yīng)用
  [repos:/abc/aaa]
  username1= rw      #指定用戶username1可以讀寫:/abc/aaa目錄的文件

至此,整個(gè)安裝過(guò)程完成了!
五、測(cè)試連接
啟動(dòng)apache

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

打開瀏覽器,輸入http://192.168.1.107/svn/repos #本例服務(wù)器ip是192.168.1.107
使用剛才創(chuàng)建的權(quán)限用戶名與密碼登錄即可訪問
注意:在你上傳文件的時(shí)候可能會(huì)有如下權(quán)限不足的提示

     Permission denied
  svn: Commit failed (details follow):
  svn: Can't create directory '/opt/svndata/repos/db/transactions/0-1.txn': Permission denied

這是因?yàn)閍pache在線程用戶沒有權(quán)限訪問svn的倉(cāng)庫(kù),兩者分別屬于不同的用戶者
本例apache屬于daemon擁有者,而svn倉(cāng)庫(kù)屬于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

如果出現(xiàn)這個(gè)錯(cuò)誤你就得看一下Apache的httpd.conf文件里面相關(guān)版本庫(kù)路徑是不是正確,請(qǐng)確保使用的是絕對(duì)路徑.

CentOS 下 Apache + Subversion 實(shí)現(xiàn)版本控制

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI