转载 地址: http://rbgeek.wordpress.com/2012/09/09/svn-server-on-ubuntu-with-https-access/
以下是我的理解
ps: 我的环境 Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-30-generic x86_64)
ps: 我的源是 163的
先安装这些, 切记先 apt-get update 更新一下源
apt-get install subversion apache2 libapache2-svn apache2-utils
开启 (会提示你重新启动apache2, 无视它,进入下一步创建)
a2enmod ssl
创建目录
mkdir /etc/apache2/ssl
创建证书和key 到上面那个目录, 这个命令会让你输入国家,省份,城市,公司,部门,email地址
openssl req -new -x509 -days 365 -nodes -out /etc/apache2/ssl/apache.pem -keyout /etc/apache2/ssl/apache.key
使用vim 打开 /etc/apache2/ports.conf
vim /etc/apache2/ports.conf
将下面放入 添加在 /etc/apache2/ports.conf里面的 IfModule mod_ssl.c块中 和注释80端口 然后保存
NameVirtualHost *:443
Listen 443
最终效果:
<p># If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default.conf</p><p>#Listen 80</p><p><IfModule ssl_module>
Listen 443
</IfModule></p><p><IfModule mod_gnutls.c>
NameVirtualhost *:443
Listen 443
</IfModule></p>
使用vim 打开 /etc/apache2/sites-available/default-ssl
vim /etc/apache2/sites-available/default-ssl.conf
在SSLEngine on 下面找到2行 注释掉
#SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
#SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
再 在 SSLEngine on下面添加下面的保存这个文件
SSLCertificateFile /etc/apache2/ssl/apache.pem
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
最终效果:
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.pem
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
# A self-signed (snakeoil) certificate can be created by installing
# the ssl-cert package. See
# /usr/share/doc/apache2/README.Debian.gz for more info.
# If both key and certificate are stored in the same file, only the
# SSLCertificateFile directive is needed.
#SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
#SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
生效上面的配置
a2ensite default-ssl
重启apache2
/etc/init.d/apache2 restart
创建svn目录
mkdir /svn
使用vim 打开 /etc/apache2/mods-enabled/dav_svn.conf 先删除里面的内容,或者你可以先备份这个文件 使用cp命令
vim /etc/apache2/mods-enabled/dav_svn.conf
打开后添加以下,并且保存! 也是最终效果
<Location /svn>
DAV svn
SVNParentPath /svn
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user
SSLRequireSSL
</Location>
使用以下 创建一个用户,第一次使用请加上c 如果以后想添加用户 就只使用m 或者不用 (xxxx这个为你的用户名)
htpasswd -cm /etc/apache2/dav_svn.passwd xxxx
去到/svn 这个目录下 创建你的svn路径 (xxxx 这个为你的路径目录名)
cd /svn
svnadmin create xxxx
执行下面命令
chown -R www-data:www-data /svn
重启apache2
/etc/init.d/apache2 restart
-----------------------------------------------------------------------------------傻傻的分割线---------------------------------------------------
修改权限
使用vim 打开 /etc/apache2/mods-available/dav_svn.conf 添加下面
xxxx 为上面创建的svn目录, (权限管理指向这个文件)
AuthzSVNAccessFile /svn/xxxx/conf/authz
PS:这个authz 文件 使用方式 百度,谷娘一下就有.用户列表在 /etc/apache2/dav_svn.passwd
修改权限,不用重启apache2
可能翻译的不够完整,可以自行翻Q到最顶的网站.自己再看
有什么不对,可以留言,,,让我修改,我只是一个新人