[root@localhost pub]# tar -jxvfapr-1.4.5.tar.bz2 首先解压缩 [root@localhost pub]# mkdir /usr/local/apr 建立apr要安装到的目录 [root@localhost pub]# cd apr-1.4.5 [root@localhost apr-1.4.5]# ./configure –prefix=/usr/local/apr 开始配置编译 [root@localhost apr-1.4.5]# make;make install 安装 2.安装apr-util [root@localhost pub]# tar -jxvf apr-util-1.3.12.tar.bz2 [root@localhost pub]# cd apr-util-1.3.12 [root@localhost apr-util-1.3.12]# mkdir /usr/local/apr-util [root@localhost apr-util-1.3.12]# ./configure –prefix=/usr/local/apr-util –with-apr=/usr/local/apr [root@localhost apr-util-1.3.12]# make;make install 3.安装neon 在安装之前,需要确认libxml2,如果没有安装需要安装上! [root@localhost pub]# rpm -q libxml2 libxml2-2.6.26-2.1.2.8 [root@localhost pub]# rpm -q libxml2-devel libxml2-devel-2.6.26-2.1.2.8 [root@localhost pub]# tar -zxvf neon-0.29.6.tar.gz //下载地址http://www.webdav.org/neon/,在这里找 [root@localhost pub]# mkdir /usr/local/neon [root@localhost pub]# cd neon-0.29.6 [root@localhost neon-0.29.6]# ./configure –prefix=/usr/local/neon [root@localhost neon-0.29.6]# make;make install 4.安装Berkeley DB 下载地址:http://www.oracle.com/technetwork/database/berkeleydb/downloads/index.html,不过需要先注册后才能下载。 [root@localhost pub]# cd /usr/local/src [root@localhost src]# tar -zxvf /var/ftp/pub/db-5.2.28.tar.gz [root@localhost src]# cd db-5.2.28/ [root@localhost db-5.2.28]# cd build_unix/ [root@localhost build_unix]# mkdir /usr/local/berkeleydb [root@localhost build_unix]# ../dist/configure –prefix=/usr/local/berkeleydb –enable-cxx 其中-enable-cxx就是编译C++库,这样才能编译Berkeley DB数据库的PHP扩展php_db4. yum -y install gcc-c++安装一下就可以了 [root@localhost build_unix]# make;make install [root@localhost build_unix]# echo ‘/usr/local/berkeleydb/lib/’>>/etc/ld.so.conf [root@localhost build_unix]# ldconfig 这2句的作用就是通知系统Berkeley DB的动态链接库在/usr/local/berkeleydb/lib/目录 5.安装sqlite-amalgamation-3.6.13.tar.gz,下载地址http://www.sqlite.org/download.html [root@localhost pub]# tar -zxvf sqlite-amalgamation-3.6.13.tar.gz [root@localhost pub]# mkdir /usr/local/sqlite [root@localhost pub]# cd sqlite-amalgamation-3.6.13/ [root@localhost sqlite-amalgamation-3.6.13]# ./configure –prefix=/usr/local/sqlite [root@localhost sqlite-amalgamation-3.6.13]# make;make install 6.编译安装httpd, 下载地址:http://httpd.apache.org [root@localhost pub]#tar xvzf httpd-2.2.19.tar.gz //解压apache2安装包 [root@localhost pub]#cd httpd-2.2.19//进入解压后的目录 [root@localhost httpd-2.2.19]# mkdir /usr/local/apache2 [root@localhost httpd-2.2.19]# ./configure -prefix=/usr/local/apache2 –enable-dav –enable-so –enable-maintainer-mode –enable-rewrite –with-apr=/usr/local/apr/bin/apr-1-config –with-apr-util=/usr/local/apr-util/bin/apu-1-config //配置apache安装,后面的第一个参数是定制apache安装到那个目录,–enable-dav –enable-so是和subversion整合时需要的 [root@localhost httpd-2.2.4]# make;make install 完成安装,如果没有错误,真的太幸运了,哈哈。出现错误是很挠头的! [root@localhost pub]# cd /usr/local/apache2/ [root@localhost apache2]# bin/apachectl start 启动web服务,并访问,注意防火墙,如果能正确的访问,说明没有问题,ok了! [root@localhost apache2]# bin/apachectl stop 可以停止,接着安装其他的软件包了。 7安装subversion1.6.16 http://subversion.apache.org/download/#recommended-release http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=10339&expandFolder=10339&folderID=260 subversion-1.6.16.tar.gz和subversion-deps-1.6.16.tar.bz2下载地址 [root@localhost pub]# tar -zxvf subversion-1.6.16.gz [root@localhost pub]# tar -jxvf subversion-deps-1.6.16.tar.bz2 ./configure以前,需要yum -y install openssl-devel,否则会一直报错,提示你configure的时候加上–with-openssl,即使你加上了也会报错,因为需要一个 openssl.h(具体的名字忘了)的头文件,如果你没有安装openssl-devel这个软件包的话,这个.h文件系统中是没有的。在解压缩 subversion-devel-1.6.16.tar.gz后,会在解压缩subversion-1.6.16.tar.gz产生的文件夹内生成 zlib文件,在configure时,要加上他的路径,否则configure: error: –with-zlib requires an argument.也是报错! [root@localhost subversion-1.6.16]# ./configure -prefix=/usr/local/subversion1.6.16/ –with-apxs=/usr/local/apache2/bin/apxs –with-apr=/usr/local/apr –with-apr-util=/usr/local/apr-util –with-neon=/usr/local/neon –with-sqlite=/usr/local/sqlite –with-ssl –with-zlib=/var/ftp/pub/subversion-1.6.16/zlib -enable-maintainer-mode –without-berkeley-db 在make之前一定要执行下一步,否则就会报错如下: /usr/bin/ld: cannot find -lexpat collect2: ld returned 1 exit status make: *** [subversion/svn/svn] Error 1 我也是出现错误了,报错了,然后百度,google一顿狂搜,愣是没有搜到我要的答案,不过大体上知道是缺少一个库文件,这个文件的名称应该包含lib, 或expat,因为提示是没有找到lexpat嘛,所以,我就一个软件包一个软件包的测试,才找到这个软件包的,在安装完这个软件包之后,make才继续 进行下去的!!!!需要安装的软件包主要是这两个:expat-1.95.8-8.2.1.i386.rpm和expat-devel- 1.95.8-8.2.1.i386.rpm [root@localhost Server]# rpm -ivh expat-1.95.8-8.3.el5_4.2.i386.rpm warning: expat-1.95.8-8.3.el5_4.2.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186 Preparing… ########################################### [100%] 1:expat-devel ########################################### [100%] [root@localhost Server]# rpm -ivh expat-devel-1.95.8-8.3.el5_4.2.i386.rpm warning: expat-devel-1.95.8-8.3.el5_4.2.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186 Preparing… ########################################### [100%] 1:expat-devel ########################################### [100%] [root@localhost subversion-1.6.16]#make [root@localhost subversion-1.6.16]#make install 完成安装。确定一下svn有没有安装成功 [root@localhost subversion-1.6.16]# /usr/local/subversion1.6.16/bin/svnserve –version svnserve, version 1.6.16 (r1073529) compiled Jul 13 2011, 21:35:15 Copyright (C) 2000-2009 CollabNet. Subversion is open source software, see http://subversion.apache.org/ This product includes software developed by CollabNet (http://www.Collab.Net/). The following repository back-end (FS) modules are available: * fs_fs : Module for working with a plain file (FSFS) repository. 会看到相关版本信息! 启动/usr/local/apache2/bin/apachectl start后,如果报错,这个我也查找了N久,才解决报错内容如下: [root@localhost bin]# ./apachectl start httpd: Syntax error on line 53 of /usr/local/apache2/conf/httpd.conf: Cannot load /usr/local/apache2/modules/mod_dav_svn.so into server: /usr/local/subversion/lib/libsvn_subr-1.so.0: undefined symbol: apr_memcache_add_server 需要在/etc/ld.so.conf中添加一下内容,并执行ldconfig [root@localhost ~]# cat /etc/ld.so.conf include ld.so.conf.d/*.conf /usr/local/apache2/modules/ /usr/local/subversion/bin/ /usr/local/berkeleydb/bin/ [root@localhost ~]#ldconfig 这样在启动apache服务的是否就没有报错了! 配置svn服务器: (1). 创建一个用户,如:svnroot;并设置密码,使其可以登录。也可不创建svnroot,直接使用root,但是注意权限问题。 (2). 以svnroot用户登录 [svnroot@localhost conf]$ mkdir /home/svnroot/repository [svnroot@localhost conf]$ cd /usr/local/subversion/bin [svnroot@localhost bin]$ ./svnadmin create /home/svnroot/repository 会在repository目录下产生以下文件和目录 conf db format hooks locks README.txt [svnroot@localhost bin]$ /usr/local/apache2/bin/htpasswd –cm /home/svnroot/repository/passwd.conf usera” 来创建svn用户,如果第一次执行这个命令,需要加上参数c来创建passwd.conf文件,参数m是指定使用md5方式加密用户密码。新建用户要求输入两次密码 [svnroot@localhost bin] $cd /home/svnroot/repository [svnroot@localhost bin] $ls -ll conf db format hooks locks passwd.conf README.txt 看看是不是多了些文件,如果是则说明Subversion安装成功了 这条语句将把路径/home/user/import下找到的文件导入到你创建的Subversion 仓库中去,提交后的修订版为1。 [svnroot@localhost bin] $./svn import 你想要导入的文件位置 file:///home/svnroot/repository –m “注释” 如下例: [svnroot@localhost bin] $./svn import /var/ftp/pub/ file:///home/svnroot/repository/ -m “this is a test” 不让其他人有该目录的权限 [svnroot@localhost bin] $ chmod 700 /home/svnroot/repository (3).使用root用户 修改Apache配置文件 [root@localhost ~]# cd /usr/local/apadche2/bin [root@localhost ~]# vi /usr/local/apache2/conf/httpd.conf //找到下面内容 LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so ,并在下面添加 DAV svn #SVNParentPath /home/svnroot/repository/ //svn父目录 SVNPath /home/svnroot/repository/test //与svn中bin中svnadmin创建应一样 否则会进不到目录 #AuthzSVNAccessFile /home/svnroot/repository/authz.conf //权限配置文件 AuthType Basic //连接类型设置 AuthName “Subversion.zoneyump” //连接框提示 AuthUserFile /home/svnroot/repository/passwd.conf //用户配置文件 Require valid-user //采用何种认证 AuthzSVNAccessFile /home/svnroot/repository/conf/authz //这句话必须加上,加上以后,authz里的用户权限才被限制住 其中authfile是通过”htpasswd来创建的那个密码文件,也就是passwd.conf; “Require valid-user”告诉apache在authfile中所有的用户都可以访问。如果没有它,则只能第一个用户可以访问新建库。 接下来,找到找到以下内容 User daemon Group daemon 把上述内容改成: User svnroot Group svnroot 保存退出 具体的配置应该是这样的: #User daemon #Group daemon User svnroot Group svnroot LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so <Location /repo> DAV svn SVNPath /home/svnroot/repository AuthType Basic AuthName “Subversion.yxg” AuthUserFile /home/svnroot/repository/passwd.conf Require valid-user AuthzSVNAccessFile /home/svnroot/repository/conf/authz </Location> (4). 添加svn用户 创建 [svnroot@localhost bin] $htpasswd -c /home/svnroot/repository/passwd.conf usera 这个用户上面已经建立了。 会要求输两次密码 [svnroot@localhost bin] $htpasswd -c /home/svnroot/repository/passwd.conf userb 在添加一个用户 在/home/svnroot/repository/conf有以下文件,需要编辑authz文件。 authz passwd svnserve.conf $cd /home/svnroot/repository/conf $vi authz 添加如下 [groups] /*这个表示群组设置 Admin=usra,userb /*这个表示admin群组里的成员 user1,user2 Develop=u1, u2 /*这个表示Develop群组里的成员 u1,u2 [www:/] /*这表示,仓库www的根目录下的访问权限 usera = rw /*www仓库user1用户具有读和写权限 userb = r /* www仓库userl用户具只有读权限 @develop=rw /*这表示 群 develop的成员都具有读写权限 [/] /*这个表示在所有仓库的根目录下 * = r /*这个表示对所有的用户都具有读权限 注意:在编辑authz文件时,所有行都必须要顶头写,不能有缩行 (5). 重起Apache //apache启动后,就可以访问svn了 [root@localhost subversion-1.6.16]#/usr/local/apache2/bin/apachectl –k restart (6). 启动svn服务//这一步似乎没有必要,需要以后验证。 [root@localhost subversion-1.6.16]# /usr/local/subversion1.6.16/bin/svnserve -d -r /home/svnroot/repository -d 表示以 daemon 方式(后台运行)运行 -r /svn/project 指定根目录是/home/svnroot/repository 检查服务器是否启动正常: #ps –ef|grep svnserve 在IE地址栏里输入:http://192.168.1.200/repo 转载请保留固定链接: https://linuxeye.com/configuration/1729.html |