CentOS7編譯安裝SVN(subversion1.9.7)


參考連接0:http://www.programering.com/a/MDMzYDMwATg.html
參考連接1:http://www.zsythink.net/archives/1318
0.系統信息
系統版本:CentOS7.3 x86_64
1.安裝依賴包

yum -y groupinstall "Development tools"
yum -y install expat-devel pcre pcre-devel openssl-devel

2.1安裝apr-1.6.3

mkdir /usr/svnpackage
cd /usr/svnpackage
wget https://mirrors.aliyun.com/apache/apr/apr-1.6.3.tar.gz 
tar zxf apr-1.6.3.tar.gz
cd apr-1.6.3
./configure --prefix=/usr/apr
make && make install

2.2安裝apr-util-1.6.1

wget https://mirrors.aliyun.com/apache/apr/apr-util-1.6.1.tar.gz
tar zx apr-util-1.6.1.tar.gz
cd apr-util-1.6.1
./configure --prefix=/usr/apr-util --with-apr=/usr/apr/bin/apr
make && make install

2.3安裝zlib-1.2.11

wget http://www.zlib.net/zlib-1.2.11.tar.gz
tar zxf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure /*默認安裝路徑即可*/
make &&make install

2.4安裝sqlite-autoconf-3210000

wget http://www.sqlite.com/2017/sqlite-autoconf-3210000.tar.gz
tar zxf sqlite-autoconf-3210000.tar.gz
cd sqlite-autoconf-3210000
./configure
make && make install

2.5安裝openssl1.0.1u 

wget https://www.openssl.org/source/old/1.0.1/openssl-1.0.1u.tar.gz
wget https://www.openssl.org/source/old/1.0.2/openssl-1.0.2l.tar.gz
tar zxf openssl1.0.1u.tar.gz
cd openssl1.0.1u
./config --prefix=/usr/local/openssl -fPIC no-gost /*這里的參數一定要添加,不然后面編譯http后會出現問題*/
make depend
make install

2.6安裝scons-3.0.1

#編譯安裝
  wget
https://nchc.dl.sourceforge.net/project/scons/scons/3.0.1/scons-3.0.1.tar.gz   mkdir scons   tar zxf scons-local-3.0.1.tar.gz -C /usr/svnpackage/scons   cd scons   python scons.py install #rpm安裝   wget https://nchc.dl.sourceforge.net/project/scons/scons/3.0.0/scons-3.0.0-1.noarch.rpm   rpm -ivh scons-3.0.0-1.noarch.rpm

2.7安裝serf

wget https://mirrors.aliyun.com/apache/serf/serf-1.3.9.tar.bz2
tar jxf serf-1.3.9.tar.bz2
cd serf-1.3.9
scons PREFIX=/usr/local/serlf APR=/usr/apr/bin/apr-1-config APU=/usr/apr-util/bin/apu-1-config OPENSSL=/usr/lcoal/openssl
/*巨坑:此處會提示報錯 File "/usr/svnpackage/serf-1.3.9/SConstruct", line 186
print 'Warning: Used unknown variables:', ', '.join(unknown.keys())
SyntaxError: invalid syntax
這里可以把/usr/svnpackage/serf-1.3.9/SConstruct內的185,186行注釋掉,然后在安裝*/
scons install
#安裝完成后,將serf的lib庫追加到動態鏈接庫
echo "/usr/local/serf/lib" >> /etc/ld.so.conf
ldconfig -v

2.8安裝httpd-2.4.28

wget https://mirrors.aliyun.com/apache/httpd/httpd-2.4.28.tar.gz
tar zxf httpd-2.4.28.tar.gz
cd httpd-2.4.28
./configure --prefix=/usr/local/apache2 --with-apr=/usr/apr/bin/apr-1-config --with-apr-util=/usr/apr-util/bin/apu-1-config --enable-so --enable-dav --enable-maintainer-mode --enable-rewrite --enable-ssl --with-ssl=/usr/local/openssl
make && make install
#設置http自啟動
cp /usr/local/apache2/bin/apachectl /etc/init.d/httpd
vim /etc/init.d/httpd
#在#!/bin/sh的下面加入
#chkconfig:2345 85 35
#設置httpd開機自啟動
chkconfig httpd on
#檢查確認,2345級別為on
chkconfig --list httpd
#添加環境變量
vim /etc/profile.d/svn_path
export HTTPD_HOME=/usr/local/apache2/bin
export PATH=$HTTPD_HOME:$PATH
#設置生效:
source
/etc/profile

2.9安裝subversion-1.9.7

wget https://mirrors.aliyun.com/apache/subversion/subversion-1.9.7.tar.gz
./configure --prefix=/usr/local/svn --with-apxs=/usr/local/apache2/bin/apxs --with-apr=/usr/apr/bin/apr-1-config --with-apr-util=/usr/apr-util/bin/apu-1-config --with-zlib --enable-maintainer-mode --with-serf=/usr/local/serf
make && make install
#設置環境變量
vim /etc/profile.d/svn_path
export SVN_HOME=/usr/local/svn/bin
export PATH=$SVN_HOME:$PATH
#退出,設置生效:
source
/etc/profile #如果在編譯過程中提示缺少*.h文件,可以找到對應的文件,軟連接到/usr/include中,如果缺少庫文件,如提示usr/bin/ld: cannot find -lxxx,可以到對應的安裝文件的lib下,使用ln -s命令軟連接到/usr/lib64目錄下。 # 安裝完成查看版本信息:svnserve --version #創建svn根目錄:
mkdir /data #啟動svn:
svnserve
-d -r /data

3.http與svn的關聯
  3.1.拷貝關聯所需模塊

cp /usr/local/svn/libexec/mod_authz_svn.so /usr/local/apache2/modules/
cp /usr/local/svn/libexec/mod_dav_svn.so /usr/local/apache2/modules/

  3.2.設置location,在/usr/local/apache2/conf/httpd.conf末尾添加如下內容

#for svn
#加載整合SVN所需的模塊
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
#設置對應的location,路徑為/,
#設置SVNParentPath設置為svn的倉庫總根目錄,此處為/data,配合location /,可以直接瀏覽器中輸入http:/IP/直接
訪問至/data下的svn倉庫目錄
#AuthzSVNAccessFile設置SVN權限配置文件路徑
#AuthUserFile設置svn用戶名密碼配置文件路徑
<Location />
DAV svn
SVNParentPath /data
SVNListParentPath on
SVNAutoversioning on
SVNReposName "svn"
AuthzSVNAccessFile /data/authz.conf
AuthType Basic
AuthName "svn repo auth"
AuthUserFile /data/passwd.conf
Require valid-user
</Location>
#for svn

  3.3.配置daemon用戶的訪問權限

chown -R daemon /data
chown -R 755 /data

  3.4.創建用戶 

htpasswd -c /data/passwd.conf username  /*首次創建用戶需添加-c選項來創建passwd.conf文件,后續不能再使用此選項*/

  3.5.配置權限控制文件

  vim /data/authz.conf

##################################################################
[
groups] #<groupname1>=<username1>,<username2> admin=pengyang #[<versionLib>:projectName/directory] #@<groupsname> = <authorities> #<username> = <authorities> [/] @admin = rw [test:/test1] #指定用戶xiaoming可以讀寫test倉庫中test1目錄的文件 pengyang = rw xiaoming = rw ###################################################################

4.配置私鑰證書

openssl genrsa 2048 > /data/server.key
openssl req -new -key /data/server.key > /data/server.csr
Country Name=CN
State or Province Name=guangdong
Locality Name=shenzhen
Organization Name=hangsheng new engrgy
Common Name=svnserver
Email Address=<可省略>
A challenge password=<空,填寫后啟動httpd需輸入密碼>
An optionnal company name=可選公司名,不填
openssl req -x509 -days 36500 -key /data/server.key -in /data/server.csr > /data/server.crt
cp /data/server.key /usr/local/apache2/conf
cp /data/server.crt /usr/local/apache2/conf
#設置http的支持ssl
vim /usr/local/apache2/conf/httpd.conf
#去掉Include conf/extra/httpd-ssl.conf前的#號
#確定httpd-ssl.conf配置中的證書與私鑰指定正確
vim /usr/local/apache2/conf/extra/httpd-ssl.conf
#存在以下兩行:
SSLCertificateFile "/usr/local/apache2/conf/server.crt"
SSLCertificateKeyFile "/usr/local/apache2/conf/server.key"
#修改svn對應的location
vim /usr/local/apache2/conf/httpd.conf
#添加"SSLRequireSSL"至DAV svn的下一行
#重啟http服務器

至此,SVN安裝完成,如有錯誤之處還請各位指正,以免誤導大家!



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM