CentOS下apache与svn整合安装



CentOS下apache与svn整合安装
 
########安装apr#########
tar zxvf apr-1.3.6. tar .gz
cd apr-1.3.6
. /configure --prefix= /usr/local/apr
make && make install
cd ..  
   www.2cto.com  
########安装apr-util########
tar zxvf apr-util-1.3.8. tar .gz
cd apr-util-1.3.8
. /configure --with-apr= /usr/local/apr
make && make install
cd ..
 
########如果已经安装过apache,则需要重新编译安装apache########
tar zxvf httpd-2.2.9. tar .gz
cd httpd-2.2.9  www.2cto.com  
. /configure --prefix= /usr/local/apache2 -- enable -so -- enable -rewrite -- enable -dav -- enable -maintainer-mode --with-apr= /usr/local/apr/bin/apr-1-config --with-apr-util= /usr/local/apr/bin/apu-1-config
make && make install
cd ..
 
########安装subversion,时间稍微有点长,请耐心等候########
tar zxvf subversion-1.6.3. tar .gz
tar zxvf subversion-deps-1.6.3. tar .gz
cd subversion-1.6.3
. /configure --prefix= /usr/local/subversion --with-apxs= /usr/local/apache2/bin/apxs --with-apr= /usr/local/apr/bin/apr-1-config --with-apr-util= /usr/local/apr/bin/apu-1-config
make && make install
cd ..
 
在 make 的时候,.configure之后,进行 make ,出现如下问题
   /usr/bin/ld : cannot find -lexpat
   collect2: ld returned 1 exit status
   make : *** [subversion /svn/svn ] Error 1
   www.2cto.com  
   应该是缺少-lexpat库文件。
   解决方法:
 
  yum install expat expat-devel
 
手动配置svn:
1.添加svnroot用户以及svn用户组,建立svn版本库目录
 
useradd svnroot;            /*添加svnroot用户*/ 
groupadd svn ;              /*添加svn用户组*/ 
usermod -a -G svn svnroot;  /*将svnroot用户添加到svn用户组*/
  
mkdir /home/svnroot 
mkdir /data 
chown -R root:svn /home/svnroot/data  
chmod -R g+rws /home/svnroot/data    /*给svn组赋予读写权限,可以根据需要更改相应权限*/
chmod -R o-rwx /home/svnroot/data    /*删除其他无关人员的读、写、执行权限,默认情况下可能其他人有读权限*/
   www.2cto.com  
mkdir -pv /home/svnroot/data
chown -R daemon  /home/svnroot/data  /*因为apache在线程用户没有权限访问svn的仓库,两者分别属于不同的用户者
本例apache属于daemon拥有者,而svn仓库属于svn拥有者*/
chmod -R 755 /home/svnroot/data
 
2.建立svn版本库
/usr/local/subversion/bin/svnadmin create --fs-type fsfs /home/svnroot/data/project1
 
3.建立访问控制文件
/usr/local/apache2/bin/htpasswd -c /home/svnroot/data/passwd wanghaihan #第一次加用户名需要带上-c,然后输入两次密码
 
/usr/local/apache2/bin/htpasswd /home/svnroot/data/passwd test1
 
4.建立本地项目控制文件
cd /home/svnroot/data
vi authz  www.2cto.com  
[groups]
admin=wanghaihan,test1
[project1:/]
@admin = rw
 
cat /usr/local/apache2/conf/httpd.conf | grep svn
 
显示
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
就表明安装成功。
 
vi /usr/local/apache2/conf/httpd.conf
  www.2cto.com  
添加
 
<Location /svn >
     DAV svn
     SVNParentPath /home/svnroot/data
     AuthType Basic
     AuthName "Subversion"
     AuthUserFile /home/svnroot/data/passwd
     AuthzSVNAccessFile /home/svnroot/data/authz
     Require valid-user
</Location>
 
5.重启apache
/usr/local/apache2/bin/apachectl restart
  www.2cto.com  
访问你的svn项目(可以用客户端工具checkout,或者浏览器访问):
 
http://ip/svn/project1
 
或者svn co http://ip/svn/project1
 
注意:在你上传文件的时候可能会有如下权限不足的提示
Permission denied
svn: Commit failed (details follow):
svn: Can’t create directory ‘/home/svnroot/data/project1/db/txn-current-lock’: Permission denied
 
或者: 
命令: 提交 
错误: 提交失败(细节如下): 
错误: Can’t open file ‘/home/svnroot/data/project1/db/txn-current-lock’: Permission denied 
完成!:   www.2cto.com  
这是因为apache在线程用户没有权限访问svn的仓库,两者分别属于不同的用户者 
本例apache属于daemon拥有者,而svn仓库属于svn拥有者 
 
解决方法: 
chown -R daemon /home/svnroot/data 
chmod -R 755 /home/svnroot/data
重启下apache:
/usr/local/apache2/bin/apachectl restart
 

相关内容

    暂无相关文章