Red Hat Enterprise Linux Server AS5下apache+svn配置

环境

Red Hat Enterprise Linux Server AS5
httpd-2.2.14.tar.gz
subversion-1.6.6.tar.gz + subversion-deps-1.6.6.tar.gz

到官网http://subversion.tigris.org/ 下载稳定版本subversion-1.6.6.tar.gz和subversion-deps-1.6.6.tar.gz
到官网http://httpd.apache.org/ 下载稳定版本httpd-2.2.14.tar.gz

  • 要注意版本的匹配,以上版本经过成功验证
检查是否有安装Apache
  • 检查并删除apache
    rpm -qa | grep httpd  #检查httpd相关的包
    rpm -e httpd  #删除apache
  • 只删除连接
     如果发现有apache了,之前那个版本不删也没关系,删除之前的连接
    ls /etc/rc.d/init.d/ (是否有httpd)
    rm -rf httpd (如果有删除它)
    ls /usr/sbin/
    rm -rf /usr/sbin/
  • 创建新的连接到新安装的httpd
    ln -s /local/svnroot/apache2/bin/httpd /usr/sbin/
    ln -s /local/svnroot/apache2/bin/httpd /etc/rc.d/init.d/
安装Apache2.2.14

用root账号执行以下命令:
tar zxf httpd-2.2.14.tar.gz #解压到当前目录
cd httpd-2.2.14 #进入解压后的目录

./configure --prefix=/local/svnroot/apache2 --enable-so --enable-mods-shared=all --enable-dav --enable-dav-fs --with-ldap --enable-ldap --enable-authnz-ldap --enable-authn-alias --enable-proxy --enable-proxy-connect --enable-proxy-ftp --enable-proxy-http --enable-ssl
#定义安装的目标路径(可据自己需要修改),使能LDAP
make #编译
make install #安装
/local/svnroot/apache2/bin/apachectl start #启动Apache
用IE访问以下网址,http://hostIP/,如果提示It works!,则Apache安装成功。
然后就可以先停止Apache了:
/local/svnroot/apache2/bin/apachectl stop #停止Apache
  • 添加ftp模块
    下载mod_ftp-0.9.6-beta.tar.gz,下载地址:http://www.eu.apache.org/dist/httpd/mod_ftp/
    tar zxf mod_ftp-0.9.6-beta.tar.gz  #解压后的目录为mod_ftp-0.9.6
    cd mod_ftp-0.9.6
    APXS=/local/svnroot/apache2/bin/apxs ./configure.apxs
    make
    make install
安装Subversion 1.6.6

用root账号执行以下命令:

tar zxf subversion-1.6.6.tar.gz #解压到当前目录
tar zxf subversion-deps-1.6.6.tar.gz  #会自动解压到subversion-1.6.6目录
cd subversion-1.6.6 #进入解压后的目录
./configure --with-apxs=/local/svnroot/apache2/bin/apxs --prefix=/local/svnroot/subversion --with-apr=/local/svnroot/apache2 --with-apr-util=/local/svnroot/apache2 --with-ssl --enable-maintainer-mode
#定义安装的目标路径(可据自己需要修改),指明Apache的安装路径,使能SSL
make #编译
make install #安装
安装后的系统设置

用root账号执行以下命令:
useradd svnroot #创建Linux系统里的账号svnroot
passwd svnroot #设置svnroot账号的密码
chown --R svnroot.svnroot /local/svnroot #把svn目录下所有文件改为属于svnroot
chmod 750 /local/svnroot #把svn目录设为其他Linux用户不可读

Apache设置

su svnroot #由root账号切换到svnroot账号来执行以下的命令
vi /local/svnroot/apache2/conf/httpd.conf #编辑Apache服务器的配置文件

下述参数根据自己的安装情况进行相应修改:

ServerRoot "/local/svnroot/apache2"
Listen 80 #可修改为其他的端口,则访问时也要在URL里加上对应的端口号
 
User svnroot
Group svnroot
#前面把svn安装目录的所有文件改为属于svnroot,这里这样设置,那么Apache运行时就会切换到使用该Linux里的账号svnroot与组svnroot
 
ServerAdmin svnroot@sample.com #定义一个邮箱地址
ServerName 192.168.20.132 #该主机的地址
 
#ErrorLog "logs/error_log"     (在前面添加#)
ErrorLog "|/local/svnroot/apache2/bin/rotatelogs /local/svnroot/apache2/logs/error_log.%Y%m%d.log 86400 480" (添加此句)
#修改Errorlog记录的方式为按天记录,避免一个log文件过大
 
# CustomLog "logs/access_log" common
CustomLog "|/local/svnroot/apache2/bin/rotatelogs /local/svnroot/apache2/logs/access_log.%Y%m%d.log 86400 480" common
#修改accesslog记录的方式为按天记录,避免一个log文件过大
 
#在末尾开始加入这部分集成LDAP方面使用的参数
LDAPSharedCacheSize 200000
LDAPCacheEntries 1024
LDAPCacheTTL 600
LDAPOpCacheEntries 1024
LDAPOpCacheTTL 600
 
AuthLDAPURL "ldap://192.168.1.1:3268/DC=lala,DC=lala,DC=lala,DC=com?sAMAccountName?sub?(objectClass=*)" NONE
AuthLDAPBindDN "CN=la\, lala,OU=users,OU=lala,ou=lala ,DC=lala,DC=lala,DC=la,dc=com"
AuthLDAPBindPassword "password"
 
#这部分指定访问LDAP服务器的URL、用户名、密码
在文件末尾添加
RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]
 
include /local/svnroot/apache2/conf/httpd.project
#把各个库的配置信息用一个独立的文件来管理

虽然不是很清楚LDAP,也不理解,但我们将来好像就是要用LDAP,所以还是先把这段文字加进来

svn库的配置

su svnroot #切换到svnroot账号,如果用root账号创建svn库,会有导致无法提交文件到该库的错误
mkdir /local/svnroot/repository
mkdir /local/svnroot/repository/sw1 #创建目录repository和sw1

/local/svnroot/subversion/bin/svnadmin create --fs-type fsfs /local/svnroot/repository/sw1
该命令用svnadmin创建fsfs存储格式的svn库"sw1"

vi /local/svnroot/apache2/conf/httpd.project #创建httpd.project文件,输入以下内容:
到时访问的路径就是http://hostip/sw1

DAV svn #使用dav传输
SVNPath /local/svnroot/repository/sw1 #sw1库在Linux系统中的真实物理路径
AuthzSVNAccessFile /local/svnroot/permission/sw1.perm #配置各个用户访问权限的文件
AuthType Basic
AuthName "sw1 SVN repository." #客户端访问该库时显示的登陆提示信息
AuthBasicProvider file abc #先看文件中是否有该用户名,再看LDAP中有无该用户名
AuthzLDAPAuthoritative off
AuthUserFile /local/svnroot/user/sw1.user #记录各个用户名与其密码的文件
Satisfy Any #允许匿名访问,若不允许,可注释掉此行
Require valid-user #要求用户名与密码验证

:wq #保存后退出编辑模式

mkdir /local/svnroot/permission #创建permission目录,用于存放权限控制文件
vi /local/svnroot/permission/sw1.perm #创建sw1.perm权限控制文件,输入:

[/]
test = rw #账号test拥有读写权限
* = #其他账号没有读写权限

:wq #保存后退出编辑模式

mkdir /local/svnroot/user #创建user目录
/local/svnroot/apache2/bin/htpasswd -cm /local/svnroot/user/sw1.user test

-c参数表明创建文件sw1.user,若此文件已存在,则不要-c参数
-m表示用MD5加密协议
此命令往sw1.user里添加用户test,随后设置其密码

至此,
安装好了Apache、SVN,
配置好了svn安装目录的权限,
配置好了Apache
建立好了库
设立了库里目录的访问权限
创建了该库的账户
于是,可以运行啦

运行SVN服务器

用root账号执行:
/local/svnroot/apache2/bin/apachectl start
然后用IE访问建立好的svn库:http://hostip/sw1
输入账号test及其密码,就能访问了
sw1 – Revision 0: / #里面什么内容也没有呢

签入签出验证
# svn checkout http://192.168.20.132/sw1 --username test --password testsecret
取出修订版0

新增目录和文件src/txt,并在txt文件中添加一些内容

# svn import -m "new import" src http://192.168.20.132/sw1
新增     src/txt
提交后的修订版为 1

猜你喜欢

转载自danny712.iteye.com/blog/1925035