在centos6上部署apache+svn服務器
1、 selinux以及iptables設置
1) 關閉selinux
# 臨時關閉selinux:
setenforce 0
# 禁用selinux:
vim /etc/sysconfig/selinux
# 將SELINUX=enforcing修改成SELINUX=disabled,重啟後才能生效。
2) 防火墻設置
# 修改防火墻策略,開放需要的端口,為了方便操作,也可以關閉防火墻,暫不考慮安全問題
# 臨時關閉防火墻:
service iptables stop
# 永久關閉防火墻:
chkconfig iptables off
2、 yum安裝相關依賴包
yum install gcc gcc-++ make pcre-devel zlib-devel expat-devel -y
3、 安裝apr(Apache可移植運行庫)
# 下載
wget https://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-1.6.3.tar.gz
# 解壓
tar -zxvf apr-1.6.3.tar.gz
# 切換到目錄
cd apr-1.6.3
# 配置
./configure --prefix=/usr/local/apr
# 編譯與安裝
make && make install
4、 安裝 apr-util
wget http://mirrors.shuosc.org/apache//apr/apr-util-1.6.1.tar.gz
tar -zxvf apr-util-1.6.1.tar.gz
cd apr-util-1.6.1
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make && make install
二、安裝apache
wget https://mirrors.cnnic.cn/apache/httpd/httpd-2.4.28.tar.bz2
tar -jxvf httpd-2.4.28.tar.bz2
cd httpd-2.4.28
./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --with-included-apr
make && make install
# 設置服務器用於辨識的主機名和端口號
sed -i 's/#ServerName.*/ServerName 192.16.8.103:80/' /usr/local/apache/conf/httpd.conf
三、安裝SVN
1、 SVN需要需要SQLite數據庫支持,先安裝SQLite
wget http://www.sqlite.org/2017/sqlite-autoconf-3210000.tar.gz
./configure
make && make install
2、 SVN安裝配置
mkdir -p /data/svn
wget http://mirrors.shuosc.org/apache/subversion/subversion-1.8.19.tar.gz
cd subversion-1.8.19
./configure --prefix=/usr/local/subversion --with-apxs=/usr/local/apache/bin/apxs --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --with-zlib
make && make install
3、 SVN啟動設置
1)添加環境變量
echo "PATH=$PATH/:/usr/local/subversion/bin" >> /etc/profile
# 立即生效
source /etc/profile
2) 啟動SVN
svnserve -d -r /usr/local/subversion/
3) 查看SVN版本
svnserve --version
4) 做軟鏈接到默認啟動目錄
ln -s /usr/local/subversion/bin/svnserve /usr/local/bin/svnserve
5) 設置開機啟動
vim /etc/init.d/svnserve
#!/bin/bash
# chkconfig: - 85 15
# description: svn server
SVN_HOME=/data/svn
if [ ! -f "/usr/bin/svnserve" ]
then
echo "svnserver startup: cannot start"
exit
fi
case "$1" in
start)
echo "Starting svnserve…"
/usr/local/subversion/bin/svnserve -d --listen-port 3690 -r $SVN_HOME
;;
stop)
echo "Stoping svnserve…"
killall svnserve
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: svn { start | stop | restart } "
exit 1
esac
5) 添加可執行權限
chmod + /etc/init.d/svnserve
6) 驗證重新啟動
/etc/init.d/svnserver restart
四、apache與svn整合
1、 創建組和用戶並設置user01密碼
groupadd svn
useradd -g svn -s /sbin/nologin svn
useradd user01
passwd user01
2、 加載svn庫
cp /usr/local/src/subversion-1.8.19/subversion/mod_dav_svn/.libs/mod_dav_svn.so /usr/local/apache/modules/
cp /usr/local/src/subversion-1.8.19/subversion/mod_authz_svn/.libs/mod_authz_svn.so /usr/local/apache/modules/
3、 配置Web/DAV
# 修改apache配置文件
vim /usr/local/apache/conf/httpd.conf
User svn
Group svn
# 去掉以下2行的註釋
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
# 在所有LoadModule末端增加以下2行
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
4、 創建目錄
mkdir -p /data/svn
# 創建svn倉庫
svnadmin create /data/svn/sre
vim /usr/local/apache/conf/httpd.conf
<Location /svn>
DAV svn
SVNPath /data/svn/sre
AuthType Basic
AuthName "PleaseLogin"
AuthUserFile /usr/local/apache/.passwd
Require valid-user
</Location>
5、 生成passwd文件
/usr/local/apache/bin/htpasswd -c -m /usr/local/apache/.passwd user01
chown -R svn.svn /usr/local/apache/.passwd
chown -R svn.svn /data/svn
/etc/init.d/httpd restart
6、 用瀏覽器訪問http://192.168.8.103/svn
或者下載SVN客戶端執行 SVN Checkout,輸入URL:http://192.168.8.103/svn,Checkout到本地電腦
在centos6上部署apache+svn服務器