读书人

ubuntu停搭建 apache + subversion 服

发布时间: 2012-08-01 17:53:41 作者: rapoo

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.gzcd apr-util-1.4.1.tar.gz./configure --with-apr=/usr/local/aprmakemake install

?3、安装 apache

tar zxvf httpd-2.2.22.tar.gzcd 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/aprmakemake install

?4、安装subversion

tar zxvf  subversion-1.6.17.tar.gztar 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 makemake 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/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>

读书人网 >Apache

热点推荐