Centos 6.4搭建svnadmin服务器
最近公司要求搭建一個平臺用于管理svn權限,在綜合考慮之后采用了svnadmin,這個平臺的詳細介紹請查看https://code.google.com/p/jsvnadmin
本文主要整合了網上的部分資料,以及svnadmin平臺說明文檔,主要引用資料鏈接如下:
http://blog.csdn.net/yan19880901/article/details/8489873
http://www.tuicool.com/articles/RfuqYv
新手第一次寫博客,希望大家一起多多交流。
下列為所需軟件列表:
apr-1.5.0.tar.bz2?
apr-util-1.5.3.tar.bz2?
zlib-1.2.8.tar.gz?
sqlite-autoconf-3080200.tar.gz?
pcre-8.34.tar.gz?
httpd-2.4.9.tar.gz?
subversion-1.8.9.tar.bz2?
sqlite-amalgamation-3080403.zip?
php-5.5.6.tar.gz?
svnadmin-3.0.4.zip
mysql-5.5.25.tar.gz
?
下載地址:
wget?http://archive.apache.org/dist/apr/apr-1.5.0.tar.bz2
wget?ftp://ftp.mirrorservice.org/sites/ftp.apache.org/apr/apr-util-1.5.3.tar.bz2
wget?http://zlib.net/zlib-1.2.8.tar.gz
wget?http://www.sqlite.org/2013/sqlite-autoconf-3080200.tar.gz
wget?http://ftp.exim.llorien.org/pcre/pcre-8.34.tar.gz
wget?http://mirror.bit.edu.cn/apache/httpd/httpd-2.4.9.tar.gz
wget?http://mirrors.cnnic.cn/apache/subversion/subversion-1.8.9.tar.gz
wget?http://www.sqlite.org/2014/sqlite-amalgamation-3080403.zip
wget?http://cn2.php.net/distributions/php-5.5.6.tar.gz
https://code.google.com/p/jsvnadmin/downloads/detail?name=svnadmin-3.0.zip&can=2&q=
wget?http://downloads.skysql.com/archives/mysql-5.5/mysql-5.5.25.tar.gz
?
系統編譯環境環境默認為已健全,若編譯過程中出現依賴庫缺失,請按照報錯提示進行環境搭建補全。默認下載后的源碼包存放位置為/opt/svnsoft
#接下來安裝基礎依賴軟件包apr???apr-util???zlib???sqlite-autoconf???openssl???pcre?
#------------------------------------------------------------------?
一、安裝系統環境
#安裝apr
?
cd?/opt/svnsoft?
tar?-xvf?apr-1.5.0.tar.bz2?
cd?apr-1.5.0?
./configure?--prefix=/usr/local/apr?
make?&&?make?install?
#安裝apr-util
?
cd?/opt/svnsoft
tar?-xvf?apr-util-1.5.3.tar.bz2?
cd?apr-util-1.5.3?
./configure?--prefix=/usr/local/apr-util?--with-apr=/usr/local/apr?
make?&&?make?install?
#安裝zlib
?
cd?/opt/svnsoft?
tar?-xvf?zlib-1.2.8.tar.gz?
cd?zlib-1.2.8?
./configure?--prefix=/usr/local/zlib?
make?&&?make?install?
#安裝sqlite
?
cd?/opt/svnsoft?
tar?-xvf?sqlite-autoconf-3080200.tar.gz?
cd?sqlite-autoconf-3080200?
./configure?--prefix=/usr/local/sqlite-autoconf?
make?&&?make?install?
#安裝openssl
?
cd?/opt/svnsoft?
tar?zxf?openssl-1.0.1e.tar.gz?
cd?openssl-1.0.1e?
./config?--prefix=/usr/local/openssl?--shared?
make?&&?make?install?
?#安裝pcre
?
cd?/opt/svnsoft
tar?-xvf?pcre-8.34.tar.gz?
cd?pcre-8.34?
./configure?--prefix=/usr/local/pcre?
make?&&?make?install?
??
#安裝pcre是異常報錯configure:?error:?You?need?a?C++?compiler?for?C++?support?
#解決辦法:?
#yum?install?-y?gcc?gcc-c++
?
二、安裝Apache?
#------------------------------------------------------------------
?
cd?/opt/svnsoft?
tar?-xvf?httpd-2.4.9.tar.gz?
cd?httpd-2.4.9?
./configure?--prefix=/usr/local/apache2?--with-apr=/usr/local/apr?--with-apr-util=/usr/local/apr-util?--with-pcre=/usr/local/pcre?--with-ssl=/usr/local/openssl?--enable-module=so?--enable-dav?--enable-so?--enable-dav-fs?--enable-ssl?--enable-proxy?--enable-proxy-http?
make?&&?make?install?
cp?/etc/init.d/httpd?/etc/init.d/httpd.bak-20140127?
cp?/usr/local/apache2/bin/apachectl?/etc/init.d/httpd?
cd?/usr/local/apache2/conf?
cp?httpd.conf?httpd.conf.bak?
useradd?-M?apache?
#如果異常提示useradd:?user?'apache'?already?exists?
#則執行usermod?-s?/bin/bash?apache?
#測試?su??-?apache
?
vi?/usr/local/apache2/conf/httpd.conf
?
#找到?User?和?Group?并修改成?User?apache?和?Group?apache?保存并退出?
#找到?ServerName?并修改成ServerName?localhost:80?
#去掉該行的注釋??
LoadModule?slotmem_shm_module?modules/mod_slotmem_shm.so
?
三、安裝配置Subversion?
#------------------------------------------------------------------
?
cd?/opt/svnsoft
tar?-xvf?subversion-1.8.9.tar.bz2?
unzip?sqlite-amalgamation-3080403.zip?
mv?sqlite-amalgamation-3080403?sqlite-amalgamation?
mv?sqlite-amalgamation?subversion-1.8.9/?
cd?subversion-1.8.9?
./configure?--prefix=/usr/local/svn?--with-apr=/usr/local/apr?--with-apr-util=/usr/local/apr-util?
make?&&?make?install?
vi?/etc/profile?
#在最下面增加?export?PATH=$PATH:/usr/local/svn/bin?保存并退出?
source?/etc/profile?
exit?
#檢查是否安裝成功?
svnserve?--version
?
?
#配置Subversion?
#------------------------------------------------------------------
?
#先檢查是否存在/techcenter/sd/repos目錄結構?
#cd?/techcenter/sd/repos?
#沒有則創建?mkdir?-p?/techcenter/sd/repos/?
svnadmin?create?/techcenter/sd/repos/project1?
chown?-R?apache.apache?/techcenter/sd/repos/?
vi?/techcenter/sd/repos/project1/conf/svnserve.conf?
#將以下代碼?
[sasl]?
#注釋掉?
#在文件最下面增加代碼?
anon-access?=?none?
auth-access?=?write?
password-db?= passwdfile?
authz-db?= authz
realm?=?project1?
#保存并退出??
vi passwdfile?
#***[users]下面的所有內容?
#在[users]下面增加以下代碼?
admin?=?admin?
#保存并退出?
vi authz
?
#***###?('').下面的所有內容?
#在###?('').下面增加以下代碼
?
[groups]?
g_mgr?=?admin ? ?//可以根據需求添加組成員
###?at?
[project1:/] ? ??//在project1下成員擁有的權限
@g_mgr?=?rw ? ??
*?=?
###?trunk?
[project1:/trunk] //載倉庫project1下面的trunk目錄上擁有的權限
@g_mgr?=?rw?
*?=?
###?branches?
[project1:/branches] ?//在倉庫project1下面branches目錄上擁有的權限
@g_mgr?=?rw?
*?=?
#保存并退出
/usr/local/svn/bin/svnserve?-d?-r?/techcenter/sd/repos/ ? //指定svn運行的目錄
ps?-ef?|?grep?svnserve?
echo?"/usr/local/svn/bin/svnserve?-d?-r?/techcenter/sd/repos/"?>>?/etc/rc.local?
#使用TortoiseSVN工具測試 ? ?//如果沒有這個工具可以網上下載?
svn://IP/project1?
#添加文件提交?
#更新文件提交?
#OK~
?
?
四、整合Svbversion與Apache?
#------------------------------------------------------------------
?
#配置svn權限及賬號密碼?
cd?/usr/local/apache2/bin/?
./htpasswd?-mc?passwd?admin?
#輸入兩次密碼?
cp?passwd?/techcenter/sd/conf/?
rm?-rf?passwd?
cd?/techcenter/sd/conf/?
cp?/techcenter/sd/repos/project1/conf/svn_passwdfile?./?
cp?/techcenter/sd/repos/project1/conf/svn_accessfile?./?
#拷貝passwd文件內容到svn_passwdfile中?
cp?passwd?svn_passwdfile
***passwd文件
rm?-rf?passwd?
改變文件擁有者
chown?-R?apache.apache?./passwdfile?
chown?-R?apache.apache?./authz?
#配置apache配置文件?
cd?/usr/local/apache2/modules?
cp?/usr/local/svn/libexec/mod_authz_svn.so?./?
cp?/usr/local/svn/libexec/mod_dav_svn.so?./?
vi?/usr/local/apache2/conf/httpd.conf?
查找以下每行代碼,如有注釋去掉注釋,如不存在代碼,則在文件最后面添加,同時核對modules是否存在.so文件?
LoadModule?slotmem_shm_module?modules/mod_slotmem_shm.so?
LoadModule?ssl_module?modules/mod_ssl.so?
LoadModule?socache_shmcb_module?modules/mod_socache_shmcb.so?
LoadModule?dav_module?modules/mod_dav.so?
LoadModule?dav_svn_module?modules/mod_dav_svn.so?
LoadModule?authz_svn_module?modules/mod_authz_svn.so?
ServerName?www.example.com:80改為?
ServerName?localhost:80?
<Location?/svn>?
DAV?svn?
SVNParentPath?/techcenter/sd/repos?
SVNListParentPath?On?
AuthType?Basic?
AuthName?"svn?repos"?
AuthUserFile?/techcenter/sd/conf/svn_passwdfile?
AuthzSVNAccessFile?/techcenter/sd/conf/svn_accessfile?
Require?valid-user?
</Location>?
#保存并退出
?
?
五、安裝php?
#------------------------------------------------------------------
?
cd?/home/soft/?
yum?install?libxml2-devel?libjpeg?libjpeg-devel?libpng?libpng-devel?
tar?-xvf?php-5.5.6.tar.gz?
cd?php-5.5.6?
./configure?--prefix=/usr/local/php?--with-apxs2=/usr/local/apache2/bin/apxs?--with-jpeg-dir=/usr/share/doc/libjpeg-turbo-1.2.1?--with-png-dir=/usr/share/doc/libpng-1.2.49?--with-mysql?--with-zlib?--with-gd?--with-pear?--with-config-file-path=/etc/?
make?&&?make?install?
cp?php.ini-development?/etc/php.ini?
vi?/usr/local/apache2/conf/httpd.conf?
#確保下面代碼,是去掉注釋的,沒有的補充添加上?
<IfModule?dir_module>?
DirectoryIndex?index.php?index.html?
</IfModule>?
AddType?application/x-compress?.Z?
AddType?application/x-gzip?.gz?.tgz?
AddType?application/x-httpd-php?.php?.phtml?.php3?.inc?
#保存并退出?
測試php是否安裝成功,在/usr/local/apache2/htdocs/ 下建立一個info.php文件
<?php
????phpinfo()
?>
?保存退出;
在瀏覽器輸入http://IP/info.php?查看是否成功。
?
#測試,打開瀏覽器訪問地址?
https://IP/svn/?
#可以看到project1項目,可點擊目錄,查看目錄里的文件?
#輸入賬號密碼?
#在瀏覽器上可以看到先關項目文件,即標識成功
?
?
六、安裝mysql?
#------------------------------------------------------------------
?
yum?-y?install?bison?gcc?gcc-c++?autoconf?automake?zlib*?libxml*?ncurses-devel?libtool-ltdl-devel*?mysql-devel
?
安裝cmake
由于mysql5.5開始,不再使用configure安裝,而是使用cmake。
cd?/opt/svnsoft
wget?http://wwwNaNake.org/files/v2.8/cmake-2.8.6.tar.gz
tar?-zxvf?cmake-2.8.6.tar.gz
cd?cmake-2.8.6/
./configure
make?&&?make?install
?
使用cmake安裝mysql?
//進入/opt/svnsoft目錄下
tar?-zxvf?mysql-5.5.25.tar.gz
cd?mysql-5.5.25
?
cmake?\
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql?\
-DMYSQL_DATADIR=/user/local/mysql/data?\
-DSYSCONFDIR=/etc?\
-DEXTRA_CHARSETS=all?\
-DDEFAULT_CHARSET=utf8?\
-DDEFAULT_COLLATION=utf8_general_ci?\
-DWITH_INNOBASE_STORAGE_ENGINE=1?\
-DWITH_ARCHIVE_STORAGE_ENGINE=1?\
-DWITH_BLACKHOLE_STORAGE_ENGINE=1?\
-DWITH_FEDERATED_STORAGE_ENGINE=1?\
-DWITH_PARTITION_STORAGE_ENGINE=1?\
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1?\
-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock?\
-DMYSQL_TCP_PORT=3306?\
-DWITH_DEBUG=0?\
-DENABLED_LOCAL_INFILE=1
?
執行完成后繼續執行?make?&&?make?install
?
配置mysql
?
#在mysql/support-files目錄中有五個配置信息文件(請根據系統的實際情況以及實際需求選擇下列配置文件進行操作,若選擇不當可能導致mysql無法啟動):?
#my-small.cnf?(內存<=64M)
#my-medium.cnf?(內存?128M)
#my-large.cnf?(內存?512M)
#my-huge.cnf?(內存?1G-2G)
#my-innodb-heavy-4G.cnf?(內存?4GB)
cd?/usr/local/mysql
cp?./support-files/my-huge.cnf?/etc/my.cnf?
?
添加mysql用戶和用戶組,生成新的mysql授權表
?
//添加mysql運行的用戶和用戶組
groupadd?mysql
useradd?-g?mysql?mysql?
cd?/usr/local/mysql
chown?-R?root?.
chown?-R?mysql?data
chgrp?-R?mysql?.
?
//生成新的mysql授權表
//進入mysql安裝目錄下的腳本目錄
cd?/usr/local/mysql/scripts
//利用mysql_install_db腳本生成新的mysql授權表
./mysql_install_db?--basedir=/usr/local/mysql?--datadir=/usr/local/mysql/data??--user=mysql
?
//mysql?server在系統中的服務項設置
//復***務文件并修改
cd?/usr/local/mysql/support-files
cp?mysql.server?mysqld
//修改mysqld
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
?
mv?mysqld?/etc/init.d/mysqld
chmod?755?/etc/init.d/mysqld
?
//設置軟連接使mysql,??mysqldump,??mysqladmin這三個bin命令能在shell中直接運行
?ln?-s?/usr/local/mysql/bin/mysql?/usr/bin
?ln?-s?/usr/local/mysql/bin/mysqldump?/usr/bin
?ln?-s?/usr/local/mysql/bin/mysqladmin?/usr/bin
?
rm?-rf?/etc/mysql/my.cnf?因為已經把此文件復制到/etc/my.cnf??如果不***的話,mysql啟動不起來。
?
啟動mysql,設置mysql用戶名和密碼
?
/etc/init.d/mysqld?start
?
//設置root密碼
mysqladmin?-u?root?password?"admin"
?
//mysql數據庫中文亂碼解決方法,如果沒有出現亂碼問題建議不要采用下列方法,utf8可能會導致出現字節過長的錯誤
vi?/etc/my.cnf
//然后在[mysqld]配置選項下添加
character-set-server=utf8
?注?mysql采用utf8編碼格式時會出現:MySQL?ERROR?1071?(42000):?Specified?key?was?too?long;?max?key?length?is?767?bytes?特別需要注意的是,如果采用這個格式,那么導入數據時需要保證表內沒有超過767bytes。
//然后進入mysql
cd?/usr/local/mysql/bin
mysql?-u?root?-p
提示輸入密碼,若成功進入則表示安裝成功。
?
七、安裝?svnadmin-3.0.4.zip
?
解壓
$unzip?svnadmin-3.0.4.zip
解壓完成后在當前目錄下,出現:
db?(這是一個目錄)??????????????????
svnadmin-javadoc.jar???????
svnadmin-sources.jar
svnadmin-3.0.4.zip??
SvnAdmin_Manual_zh_CN.pdf??
svnadmin.war
?
配置
?
1.配置數據庫
?
導入sql腳本過程:
本地登陸進MSYQL,創建svnadmin數據庫,導入腳本
#?mysql?-uroot?-p
Enter?password:
Welcome?to?the?MySQL?monitor.??Commands?end?with?;?or?\g.
Your?MySQL?connection?id?is?177
Server?version:?5.1.30-log?Source?distribution
?
?
Type?'help;'?or?'\h'?for?help.?Type?'\c'?to?clear?the?buffer.
?
?
mysql>create?database?svnadmin;
mysql>flush?privileges;???(這句意思是讓剛才的配置生效)
mysql>use?svnadmin;
mysql>source?/soft/svnadmin-3.0.3/db/mysql5.sql; ? ?//(此處數據庫一定要導入成功,我在操作過程中出現了i18n的表消失的情況,至今原因不明,有知道原因的大神請告知一下。)
mysql>flush?privileges;
mysql>exit;
?
2.部署svnadmin
將svnadmin.war拷貝到tomcat目錄下的webapps目錄中
$cp?svnadmin-3.0.4/svnadmin.war?apache-tomcat-6.0.36/webapps
修改jdbc.properties文件?配置svnadmin的數據庫連接信息。
#vim?/usr/local/tomcat/webapps/svnadmin/WEB-INF/jdbc.properties
例如:
db=MySQL
?
?
#MySQL
MySQL.jdbc.driver=com.mysql.jdbc.Driver
MySQL.jdbc.url=jdbc:mysql://localhost:3306/svnadmin?characterEncoding=utf-8
MySQL.jdbc.username=root???
MySQL.jdbc.password=123??//此處輸入mysql用戶密碼
?
3.測試svnadmin是否運行正常
瀏覽器輸入?http://hostname:8080/svnadmin
如果能出現登陸窗口說明運行正常。
svnadmin的操作請查看解壓出來的SvnAdmin_Manual_zh_CN.pdf文件
轉載于:https://blog.51cto.com/jystart/1424141
總結
以上是生活随笔為你收集整理的Centos 6.4搭建svnadmin服务器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: win10蓝屏错误NETIO.SYS怎么
- 下一篇: Centos(6、7) —— yum源的