1. 程式人生 > >linux+svn+Apache

linux+svn+Apache

下載安裝檔案:
apache:http://httpd.apache.org/ httpd-2.2.29.tar.gz
svn:
http://subversion.tigris.org/downloads/subversion-1.6.12.tar.gz
http://subversion.tigris.org/downloads/subversion-deps-1.6.12.tar.gz
注意版本,apache2.2.3和svn1.4.0也可以

step1:安裝Apache
1.解壓httpd-2.2.29.tar.gz
2.進入解壓後的目錄:httpd-2.2.29
依次執行:./configure -prefix=/app/wzf/apache -enable-dav -enable-so
make
make install
(這三個步驟的意義在下一篇文章中)
3.測試Apache是否安裝成功能夠正常啟動:
{Apache_home}/bin/httpd -k stop
{Apache_home}/bin/httpd -k start
{Apache_home}/bin/httpd -k restart

啟動時遇到的問題:
1.端口占用
Apache啟動端口占用
解決:
vi {Apache_home}/conf/httpd,修改裡面的埠設定
2.未確定伺服器地址
Apache啟動未設定服務地址
解決:
vi {Apache_home}/conf/httpd,在裡面加上:
ServerName localhost:8090

訪問:http://ip:port 顯示it works說明安裝成功!
成功後解壓目錄httpd就可以刪掉了

step2:安裝subversion
1.解壓subversion-deps-1.6.0.tar.gz到subversion-1.6.0
2.解壓subversion-1.6.0.tar.gz到subversion-1.6.0(同一目錄)
3.刪掉subversion-1.6.0/apr和subversion-1.6.0/apr-util,用Apache的就可以
4../configure -prefix=/app/wzf/subversion-with-apache -with-apxs=/app/wzf/apache/bin/apxs -with-apr=/app/wzf/apache/bin/apr-1-config -with-apr-util=/app/wzf/apache/bin/apu-1-config

報錯configure報錯1
原因:缺少expat包,下載expat-2.1.0.tar.gz,解壓,./configure,make,make install(可能make install的時候需要root許可權,因為Makefile裡面指定的安裝路徑在/usr/local下)。即可。

報錯configure報錯2
原因:缺少OpenSSL包,下載openssl-1.0.0a.tar.gz,解壓,./configure,make,make install
注:make時提示Nothing to be done for `all’意思是已經編譯好了,而且沒有對程式碼進行任何改動。

再./configure -prefix=/app/wzf/subversion-with-apache -with-apxs=/app/wzf/apache/bin/apxs -with-apr=/app/wzf/apache/bin/apr-1-config -with-apr-util=/app/wzf/apache/bin/apu-1-config –with-openssl=/app/wzf/openssl
提示缺少BDB儲存,可忽略


這段提示可忽略,因為不使用BDB儲存。

5.make
報錯make報錯1
原因:編譯中安裝了libserf導致的
解決:configure的時候加一個引數:–without-serf,然後再重新make

* ./configure -prefix=/app/wzf/subversion-with-apache -with-apxs=/app/wzf/apache/bin/apxs -with-apr=/app/wzf/apache/bin/apr-1-config -with-apr-util=/app/wzf/apache/bin/apu-1-config -with-openssl=/app/wzf/openssl -without-serf
make
make install

6.可以執行svn help看下是否安裝成功。

step3:配置Apache訪問
1.檢查svn是否與Apache相容
檢視Apache的配置檔案/conf/httpd.conf
應該有這樣兩句:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
並且apache/modules下應該有
mod_authz_svn.so
mod_dav_svn.so這兩個檔案。
如果有so檔案而httpd.conf中沒有增加相關資訊,手動加上即可。
如果沒有so檔案,是svn安裝的問題,需要重新安裝svn。

2.建立svn庫:
先建立一個svn庫存放目錄,如 mkdir /app/wzf/svnrepository
然後建立svn庫:svnadmin create /app/wzf/svnrepository/kimchi
可以隨意提交一個內容:先建立一個檔案,如/app/wzf/test
然後提交:svn import /app/wzf/test file:///app/wzf/svnrepository/kimchi/ -m “commit test”

3.配置Apache與svn整合
修改版本庫許可權:保險起見,我全改成了777
chmod 777 -R /app/wzf/svnrepository
修改Apache配置檔案:vi /app/wzf/apache/conf/httpd.conf
修改埠號:

Listen 8090

修改servername:

ServerName localhost:8090

新增:

User wzf
Group develop

在檔案最後新增:

<Location /svn>
DAV svn
SVNParentPath /app/wzf/svnrepository
AuthType Basic
AuthName "welcome to svn"
AuthUserFile "/app/wzf/svnrepository/kimchi/conf/passwd"
AuthzSVNAccessFile "/app/wzf/svnrepository/kimchi/conf/authz"
Require valid-user
</Location>

4.啟動Apache和svn服務:
cd /app/wzf/apache/bin
./apachectl stop
./apachectl start
ps -ef |grep httpd

/app/wzf/svn/subversion-with-apache/bin/svnserve -d -r /app/wzf/svnrepository

訪問:ip:port/svn/kimchi 成功