一.安装subversion ( svn ) $ sudo apt-get install subversion $ sudo apt-get install libapache2-svn 二.配置subversion 1.创建svn仓库 例如要创建的项目名称为project,存储在/home/svn目录下 $ cd /home $ mkdir svn $ chown root:www-data svn -R //svn 的组用户是www-data,这样apache就可以访问该目录 $ chmod 770 svn -R $ chmod u+s svn -R $ chmod g+s svn -R $ cd /home/svn $ svnadmin create project $ chmod g+ws project -R 好目录创建好了:) 2.创建/导入/导出项目 创建项目 例如要将/home/code 中的代码导入svn svn import -m "Import code to project" /home/code http://svn所在机器的IP地址/svn/project 导入 svnadmin load /home/svn/project < project.data 导出 svnadmin dump /home/svn/project >project.data 3.apache配置 修改 /etc/apache2/httpd.conf 加入 LoadModule dav_module /usr/lib/apache2/modules/mod_dav.so LoadModule dav_svn_module /usr/lib/apache2/modules/mod_dav_svn.so 修改 /etc/apache2/mods-enabled/dav_svn.conf 加入以下配置 <Location /svn/project> DAV svn SVNPath /home/svn/project AuthType Basic AuthName "project Subversion Repository" AuthUserFile /etc/subversion/passwd AuthzSVNAccessFile /etc/subversion/access # <LimitExcept GET PROPFIND OPTIONS REPORT> Require valid-user # </LimitExcept> </Location> 重启apache 打开浏览器输入 http://svn所在机器的IP地址/svn/project 应该可以访问了:) 4.访问权限控制 口令文件 /etc/apache2/mods-enabled/dav_svn.conf 中AuthUserFile /etc/subversion/passwd指定了svn用户的password存放位置 可以使用 $ htpasswd2 passwd dev_admin #加入开发者dev_admin $ htpasswd2 passwd dev_c1 #加入开发者dev_c1 $ htpasswd2 passwd dev_c2 #加入开发者dev_c2 $ htpasswd2 passwd dev_php #加入开发者dev_php 访问控制文件 /etc/apache2/mods-enabled/dav_svn.conf 中AuthUserFile /etc/subversion/access 指定了svn用户的访问控制文件存放位置 访问控制文件例子:[groups] g_admin = dev_admin g_dev_c = dev_c1,dev_c2 g_dev_php = dev_php [/] #根目录 @g_admin = rw #只有@g_admin可以修改 * =r #请他用户可读 [/admin] #管理文件目录 @g_admin = rw #只有@g_admin可读写 * = #请他用户不可访问 [/c_code] #c代码仓库 @g_dev_c = rw #c开发者可读写 * = #请他用户不可访问 [/php_code] #php组代码仓库 @g_dev_php = rw #php开发组可以读写 * = #请他组用户不可访问 [/docs] #文档目录 @g_admin = rw #管理组可读写 @g_dev_php = rw #php开发组可读写 @g_dev_c = rw #c开发组可读写 * = #其他组用户不可访问 4.添加ssl支持 修改 /etc/apache2/sites-enabled/ssl #如果没有可以拷贝 /etc/apache2/sites-available/ssl NameVirtualHost *:443 <VirtualHost *:443> ServerAdmin webmaster@localhost SSLEngine On SSLCertificateFile /etc/apache2/ssl/apache.pem DocumentRoot /home/www/html <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /home/www/html/site/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all #AuthType Basic #AuthName "Restricted Files" #AuthUserFile /etc/apache2/passwd #Require user soap # Uncomment this directive is you want to see apache2's # default start page (in /apache2-default) when you go to / #RedirectMatch ^/$ /apache2-default/ </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog /var/log/apache2/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/access.log combined ServerSignature On Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> </VirtualHost> 附: 如何导出subversion仓库 如何导入subversion仓库 |
Ubuntu下 subversion 安装
最新推荐文章于 2024-07-10 17:19:49 发布