apache+subversion+centos

來源:互聯網
上載者:User

標籤:style   blog   http   color   使用   os   io   檔案   

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


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

1.1伺服器


        subversion伺服器是不需要apache的,但是可以使用apache,視具體情況來選擇。
        1、如果只要通過file://或svn://來訪問,則不需要apache,只安裝svn即可,使用svnserve來作為服務。
        2、如果你要建立一個可以通過http://或https://來訪問的版本程式庫伺服器,則你需要使用apache。

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愛好者

二、架設

 

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


        Apr : apr-1.5.0.tar.gz 和 apr-util-1.5.3.tar.gz
        Apache : httpd-2.4.6.tar.gz
        Subversion: subversion-1.7.14.tar.gz
        注意:apache的版本和subversion的版本有時候是不相容的,如果不相容這裡建議更換subversion的版本或者更換apache的版本在安裝過程中可能會提示需要安裝其他的包,根據具體的情況來安裝所需要的包,如果安裝過程很順利則說明你運氣好!

2.2、安裝和配置步驟:1、安裝apr-1.2.12
# tar –zvxf apr-1.5.0.tar.gz# cd apr-1.5.0.tar.gz# ./configure --prefix=/server/apr #安裝不指定路徑時 預設安裝到/server/apr# make & make install

 2、安裝 apr-util-1.2.12

# tar –zvxf apr-util-1.2.12.tar.gz# cd apr-util-1.2.12# ./configure - -with-apr=/server/apr --prefix=/server/apu # make & make install

3、安裝 httpd-2.4.6.tar.gz

# tar -zxvf httpd-2.4.6.tar.gz# cd httpd-2.4.6./configure --prefix=/server/apache --enable-mods-shared=most --enable-so --enable-module=so --enable-cache --enable-file-cache --enable-mem-cache --enable-disk-cache --enable-ssl --enable-dav --enable-maintainer-mode --with-ssl=/usr/include/openssl --with-apr=/server/apr/bin/apr-1-config --with-apr-util=/server/apr-util/bin/apu-1-config --with-pcre=/server/pcre --with-mpm=prefork # make & make install

4、安裝和配置 subversion

# tar -zxvf subversion-1.7.14.tar.gz
# ./configure --prefix=/server/svnserver --with-apxs=/server/apache2/bin/apxs --with-apr=/server/apr/bin/apr-1-config --with-apr-util=/server/apu/bin/apu-1-config --with-ssl --enable-maintainer-mode --with-zlib --with-sqlite=/server/sqlite --without-berkeley-db# make && make install

 注意:apache的--enable-so和--enable-dav參數需帶上,否則svn啟動會報錯,


確定一下svn有沒有安裝成功

#/server/svn/bin/svnserve - -version

會看到相關版本資訊!
完了再看看apache 的相關模組有沒有載入!如下!

LoadModule dav_svn_module modules/mod_dav_svn.soLoadModule authz_svn_module modules/mod_authz_svn.so

如果apache的設定檔http.conf沒有這兩行,請到svn安裝目錄去拷mod_dav_svn.so和mod_authz_svn.so這兩個檔案(這兩個檔案是svn的編譯過程中產生的)開始建立版本庫

#/server/svn/bin/svnadmin create /svn/project/www /*建立倉庫"www"#ls /svn/project/www /*查看有沒有建立好,如果多了一些檔案則說明版本庫已經建立好

匯入專案檔到版本庫

下面這條語句將把路徑/share/www下找到的專案檔匯入到你建立的/svn/project/www 倉庫中去,
提交後的修訂版為1

#/server/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
5、配置apache支援svn       

#vi /server/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
# /server/apache/bin/apachectl –k restart
先使用瀏覽器檢測一下
開啟瀏覽器訪問http://192.168.0.1/svn/www 會提示輸入使用者名稱密碼
等到完成下面步驟就可以進去訪問了,進去後如果有東西顯示就說明成功。
下面就是對svn的使用者和許可權組態管理

6、配置svn許可權管理(即authz.conf的配置)


        1 . 添加使用者:
        # /server/apache/bin/htpasswd –c /svn/passwd user1
        第一次設定使用者時使用-c表示建立一個使用者檔案。斷行符號後輸入使用者密碼,完成對使用者的增加
        第二次添加使用者不需要帶 –c 參數 如:
        # /server/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‘‘ ",裡面的內容可以根據自己的需要自行添加,不必與我上面所寫的相同!
       

7、重啟apache服務和啟動svn服務


        #/server/apache/bin/apachectl –k restart
        就可以通過 http://192.168.0.1/svn/www 這個URL來訪問倉庫了,當然,受許可權的限制,必須是合法使用者才能訪問且具有相應的許可權
        最後啟動svn
        #/server/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伺服器的架設已經完成

三、附錄:


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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.