0. 所需软件版本
Apache 2.2.11
neon 0.25.5
swig 1.3.29
1. 安装 apr (Apache Portable Runtime)
cd /usr/local/src/httpd-2.2.x/srclib/apr
./configure --prefix=/usr/local/apr --enable-threads
make
make install
2. 安装 apr-util (Apache Portable Runtime Utility)
需要事先安装 apr, iconv, expat
cd /usr/local/src/httpd-2.2.x/srclib/apr-util
./configure --prefix=/usr/local/apr --with-apr=/usr/local/apr
make
make install
# confiture 时可以指定 --with-expat=/usr/local --with-iconv=/usr/local
3. 安装与设置 apache2 (./configure --help)
3-1. 安装
./configure --prefix=/usr/local/apache2 --enable-dav --enable-dav-fs --enable-dav-lock --enable-auth-digest --enable-rewrite --enable-so --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr
make
sudo make install
3-2. 设置
3-2-1. apache 用户
groupadd apache
useradd -g apache -s /sbin/nologin apache
3-2-2. 设置文件
vim /usr/local/apache2/conf/httpd.conf
修改
- User deamon
- Group deamon
+ User apache
+ Group apache
+ LoadModule dav_svn_module modules/mod_dav_svn.so
3-2-3. apache 自启动
cp /usr/local/src/httpd-2.2.11/build/rpm/httpd.init /etc/rc.d/init.d/httpd
chmod 755 /etc/init.d/httpd
vim /etc/rc.d/init.d/httpd
- CONFFILE=/etc/httpd/conf/httpd.conf
+ CONFFILE=/usr/local/apache2/conf/httpd.conf
- apachectl=/usr/sbin/apachectl
+ apachectl=/usr/local/apache2/bin/apachectl
- httpd=${HTTPD-/usr/sbin/httpd}
+ httpd=${HTTPD-/usr/local/apache2/bin/httpd}
- pidfile=${PIDFILE-/var/log/httpd/${prog}.pid}
+ pidfile=${PIDFILE-/usr/local/apache2/logs/httpd.pid}
chkconfig --add httpd
chkconfig httpd on
chkconfig --list httpd
3-2-4. 查看 apache2 加载模块和编译模块
../bin/httpd -l
../bin/httpd -M
4. 安装 Neon (WebDAV 客户端库)
事先安装 zlib, expat, libxml2
./configure --prefix=/usr/local/neon --with-libxml2 --with-expat
make
make install
vim /etc/ld.so.conf.d/neon.conf
+ /usr/local/neon/lib
ldconfig
ldconfig -p | grep 'neon'
5. 安装 swig (Simplified Wrapper and Interface Generator)
事先安装 python
./configure --prefix=/usr/local/swig --with-python=/usr/bin/python
make
make install
vim /etc/ld.so.conf.d/swig.conf
+ /usr/local/swig/lib
ldconfig
ldconfig -p | grep 'swig'
6. 安装 Subversion
事先安装 arp, apr-util, neon, zlib, gettext, iconv
./configure --prefix=/usr/local/svn --with-apxs=/usr/local/apache2/bin/apxs --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr --with-neon=/usr/local/neon --with-swig=/usr/local/swig --without-jdk
make
make install
6. 配置 Subversion
/home/svn
|-- .htpasswd
|-- .svnaccess
`-- repos
|-- proj1
| |-- trunk
| |-- branches
| `-- tags
|-- proj2
|-- trunk
|-- branches
`-- tags
6-1. 创建仓库
mkdir -p /home/svn/repos
chown -R go:go /home/svn
cd /home/svn/repos
mkdire proj
svnadmin create sample
svn mkdir file:///home/svn/repos/proj/trunk -m "create"
svn mkdir file:///home/svn/repos/proj/branches -m "create"
svn mkdir file:///home/svn/repos/proj/tags -m "create"
6-2. 设定 web 访问权限
6-2-1. 方法 1
cd /home/svn/repos
chgrp -R apache proj
chmod -R g+s proj
6-2-2. 方法 2
cd /home/svn/repos
chown -R apache:apache proj
vim /usr/local/apache2/conf/httpd.conf
+ Include conf/extra/httpd-subversion.conf
vim /usr/local/apache2/conf/extra/httpd-subversion.conf
+ <Location /svn>
+ DAV svn
+ SVNParentPath /home/svn/repos
+ </Location>
重启 apache
/etc/init.d/httpd restart
http://localhost/svn/proj/
6-3. basic 认证
vim /usr/local/apache2/conf/extra/httpd-subversion.conf
+ <Location /svn>
+ DAV svn
+ SVNParentPath /home/svn/repos
+ # only authenticated users may access the repository
+ Require valid-user
+ # how to authenticate a user
+ AuthType Basic
+ AuthName "Subversion repository"
+ AuthUserFile /home/svn/.htpasswd
+ </Location>
生成密码文件
cd /home/svn
创建文件: /usr/local/apache2/bin/htpasswd -c .htpasswd go
添加用户: htpasswd .htpasswd hoge
删除用户: hpasswd -D .htpasswd hoge
6-4. Digest 认证
vim /usr/local/apache2/conf/httpd.conf
+ LoadModule authz_svn_module modules/mod_authz_svn.so
vim /usr/local/apache2/conf/extra/httpd-subversion.conf
+ <location /svn>
+ DAV svn
+ SVNParentPath /home/svn/repos
+ AuthType Digest
+ AuthName "Subversion repository"
+ AuthDigestProvider file
+ AuthUserFile /home/svn/.htdigest
+ Require valid-user
+ BrowserMatch "MSIE" AuthDigestEnableQueryStringHack = On
+ AuthzSVNAccessFile /home/svn/.svnaccess
+ </location>
或
+ <location /svn>
+ DAV svn
+ SVNParentPath /home/svn/repos
+ AuthType Digest
+ AuthName "Subversion repository"
+ AuthDigestFile /home/svn/.htdigest
+ Require valid-user
+ BrowserMatch "MSIE" AuthDigestEnableQueryStringHack = On
+ </location>
"Subversion repository" 的地方使用 AuthName 的设定值
cd /home/svn
创建文件: htdigest -c .htdigest "Subversion repository" go
追加用户: htdigest .htdigest "Subversion repository" hoge
重启 apache
/etc/init.d/httpd restart
http://localhost/svn/proj/
6-5. Subversion 访问权限设置
vim /usr/local/apache2/conf/extra/httpd-subversion.conf
+ <Location /svn>
+ DAV svn
+ SVNParentPath /home/svn/repos
+ # only authenticated users may access the repository
+ Require valid-user
+ # how to authenticate a user
+ AuthType Basic
+ AuthName "Subversion repository"
+ AuthUserFile /home/svn/.htpasswd
+ # how to access a user
+ AuthzSVNAccessFile /home/svn/.svnaccess
+ </Location>
vim /usr/local/apache2/conf/httpd.conf
+ LoadModule authz_svn_module modules/mod_authz_svn.so
vim /home/svn/.svnaccess
+ [/]
+ admin = rw
+
+ # proj1
+ [proj1:/]
+ user1 = rw
+ user2 = r
+
+ # proj2
+ [proj2:/trunk/test]
+ user1 = rw
+ user2 = r
+
+ # proj3
+ [/proj3]
+ * =
重启 apache
/etc/init.d/httpd restart
http://localhost/svn/sample/
6-6. 使用 SSL
事先安装 openssl
编译 neon
./configure ... --with-ssl=openssl
编译 apache
./configure ... --with-ssl=/usr/local/openssl
编译 subversion
./configure ... --with-ssl
0 件のコメント:
コメントを投稿