`
java_my_life
  • 浏览: 258831 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ubuntu下搭建 apache + subversion 服务器

阅读更多

一、准备好安装包:

apr-1.4.5.tar.gz    下载地址:http://apr.apache.org/

②apr-util-1.4.1.tar.gz

③subversion-1.6.17.tar.gz  下载地址: http://subversion.tigris.org/

④subversion-deps-1.6.17.tar.gz

⑤httpd-2.2.22.tar.gz 下载地址:http://httpd.apache.org/

二、开始安装:

将上面所有要的安装包放到/home目录下,然后进入该目录

1.安装apr

tar zxvf  apr-1.4.5.tar.gz #解压包
cd apr-1.3.6
 ./configure
 make
 make install

 2、安装apr-uti

tar zxvf apr-util-1.4.1.tar.gz
cd apr-util-1.4.1.tar.gz
./configure --with-apr=/usr/local/apr
make
make install

 3、安装 apache

tar zxvf httpd-2.2.22.tar.gz
cd httpd-2.2.22

./configure --prefix=/usr/local/apache2 --enable-so --enable-dav --enable-dav=shared 
--with-apr=/usr/local/apr --with-apr-util=/usr/local/apr

make
make install

 4、安装subversion

tar zxvf  subversion-1.6.17.tar.gz
tar zxvf  subversion-deps-1.6.17.tar.gz 
cd subversion-1.6.17
./configure --with-apxs=/usr/local/apache2/bin/apxs --prefix=/usr/local/subversion 
make
make install

 注意:

        在./configure的时候可能会报如下错误信息:

      1.configure: error: no XML parser was found: expat or libxml 2.x required

       原因是缺少libxml2库,安装libxml2库就可以解决:

     apt-get install libxml2 libxml2-dev expat

      2.configure: error: We require OpenSSL; try --with-openssl

      原因是没有安装openssl,安装openssl就可以解决:

      sudo apt-get install openssl
      sudo apt-get install libssl-dev

       其他可能出现的错误信息:

       make: *** [subversion/svn /svn ] 错误 1

       原因是缺少expat开发库,安装即可:

       apt-get install libexpat-dev

 

至此,安装基本完毕,再配置下就可以使用了。


三、在apache中配置SVN

1.确认是否安装成功

到/usr/local/apache2/modules目录下查看是否存在以下四个文件:

httpd.exp、mod_authz_svn.so、mod_dav.so、mod_dav_svn.so

打开/usr/local/apache2/conf/httpd.conf文件,查看是否存在如下三句话,如不存在则手动添加:

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

2.创建库文件所在的目录

mkdir /home/svn

3.进入subversion的bin目录

cd /usr/local/subversion/bin

4.创建仓库"test"

./svnadmin create /home/svn/test

5.建立本地访问控制文件

mkdir /home/svn/conf
/usr/local/apache2/bin/htpasswd -c /home/svn/conf/passwd.conf  username

    然后输入密码即可,默认是MD5加密的。

    第一次设置用户时使用-c表示新建一个用户文件。回车后输入用户密码,完成对用户的增加。

/usr/local/apache2/bin/htpasswd /home/svn/conf/passwd.conf  bao

    再添加一个测试用户。

6.建立本地项目控制文件

touch /home/svn/conf/authz.conf

    本例authz.conf内容为:

[test:/] //这表示,仓库test的根目录下的访问权限
   username = rw //test仓库username用户具有读和写权限
   #bao = r //test仓库bao用户具有读权限
[/] //这个表示在所有仓库的根目录下
   * = r //这个表示对所有的用户都具有读权限
#[groups] //这个表示群组设置
   #svn1-developers = username , bao //这个表示某群组里的成员
   #svn2-developers = username
#[svn1:/] 
   #@svn1-developers = rw //如果在前面加上@符号,则表示这是个群组权限设置

    注意:配置authz.conf时最好去掉后面的注释,防止出现问题。

 

7.定义apache访问svn配置

 编辑/usr/local/apache2/conf/httpd.conf文件,在最下方添加如下信息

<Location /svn>
              DAV  svn

	      	#svn父目录
              SVNParentPath /home/svn
		#权限配置文件
              AuthzSVNAccessFile /home/svn/conf/authz.conf
		#连接类型设置 
              AuthType Basic    
		#连接框提示
              AuthName "Subversion repository"    
		#用户配置文件
              AuthUserFile /home/svn/conf/passwd.conf  
		#采用何种认证
              Require valid-user 
</Location>

 至此,整个安装过程完成了!

 

四、测试连接

1.启动apache

/usr/local/apache2/bin/apachectl start

 2.打开浏览器,输入http://localhost/svn/test

    使用刚才创建的权限用户名与密码登录即可访问

 

注意:在你上传文件的时候可能会有如下权限不足的提示

      Permission denied
      svn: Commit failed (details follow):
      svn: Can't create directory '/home/svn/db/transactions/0-1.txn': Permission denied

      这是因为apache在线程用户没有权限访问svn的仓库,两者分别属于不同的用户者

      本例apache属于daemon拥有者,而svn仓库属于svn拥有者

      解决方法:

      chown -R daemon /home/svn

      chmod -R 755 /home/svn

    

       重启下apache:

       /usr/local/apache2.2.9/bin/apachectl  restart

 

 

备注:如果需要导入Ldap的模块则需要先安装OpenLdap工程,apache配置如下:


./configure --prefix=/usr/local/apache2 --enable-so --enable-authnz-ldap=shared --enable-ldap=shared --enable-mods-shared=all --with-ldap --with-ldap-lib=/usr/local/openldap/lib --with-ldap-include=/usr/local/openldap/include/

apache httpd.conf需要导入模块

LoadModule dav_module         modules/mod_dav.so
LoadModule dav_fs_module      modules/mod_dav_fs.so
LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so
LoadModule ldap_module        modules/mod_ldap.so
LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
LoadModule authz_user_module  modules/mod_authz_user.so

 

ldap 在httpd.conf中的配置,在httpd.conf最下方添加

<Location /svn/>  
  DAV svn  
  
  SVNParentPath /home/svn/  
  
  AuthBasicProvider ldap  
  AuthzLDAPAuthoritative on  
  AuthName "ssSubversion Repository"  
  
  AuthLDAPBindDN "utsadmin@itrus.ac.com"  
  AuthLDAPBindPassword password

  AuthLDAPURL ldap://192.168.30.25:389/DC=itrus,DC=ac,DC=com?sAMAccountName?sub?(objectClass=*)

  AuthType Basic

  # Require valid-user
  Require valid-user
  
</Location>
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics