linux 安装subversion并配置nginx+apache

操作方法

  • 01

    最近想在ubuntu服务器上建立一个svn服务器,但目前服务器采用的是nginx服务器,由于nginx现在暂时不支持subversion,所以只能安装apache集成subversion,然后通过nginx proxy给apache来访问代码仓库。 1、安装apache $ sudo apt-get install apache2 安装完毕后,可能无法启动,因为nginx默认情况应该是占用了80端口,而apache默认也应该使用的是80端口,所以会发生端口冲突。 解决办法,修改apache的监听端口 $ sudo vi /etc/apache2/ports.conf 将80端口修改8099,或者其他,然后在重新启动apache $ sudo /etc/init.d/apache2 restart 2、安装subversion subversion已经包含在ubuntu main仓库中,所以,要安装 Subversion,您只需要简单的运行: $ sudo apt-get install subversion$ sudo apt-get install libapache2-svn 3、创建 SVN 仓库 许多位置都可以放置 Subversion 文件仓库, 其中两个最常用的是:/usr/local/svn 以及 /home/svn。 为了在下面的描述中简单明了,我们假设您的 Subversion 文件仓库放在 /home/svn,并且你的项目名称是简单的“myproject”。 同样的,也有许多常用的方式设置文件仓库的访问权限。通常的情况下,您应该创建一个名为“Subversion”的用户组,该组是SVN仓库所在的目录的拥有者。 3.1 增加组,并且把用户加到组里: sudo addgroup subversionsudo usermod -G subversion -a www-data 3.2 现在执行下面的命令: $ sudo mkdir /home/svn$ cd /home/svn$ sudo mkdir myproject$ sudo chown -R root:subversion myproject 3.3 下面的命令用于创建 SVN 文件仓库:$ sudo svnadmin create /home/svn/myproject 3.4 赋予组成员对所有新加入文件仓库的文件拥有相应的权限:$ sudo chmod -R g+rws myproject 4、Apache和Subversion的集成 查看/etc/apache2/mods-enabled/dav_svn.load文件, 有mod_dav_svn.so这个动态库说明apache已经加载了Subversion的访问控制模块。 如果没有,手动添加。 要通过 WebDAV 协议访问 SVN 文件仓库,您必须配置您的 Apache 2 Web 服务器。 您必须加入下面的代码片段到您的 /etc/apache2/mods-available/dav_svn.conf中: Location /svn    意思是Subversion版本可用的URL是http://域名或IP/svn DAV SVN    告诉Apache是哪个模块响应哪个URL的请求,在这里是Subversion模块 SVNParentPath /home/svn    告诉Subversion需要查看的版本库在/home/svn之下。 如果不希望为每个单独的项目都进行单独的设置,可以把所有项目都存放在统一的资源库目录,使用SVNParentPath指令来指定存放所有项目的路径。 否则使用SVNPath SVNPath    单版本库时使用此项指明版本库的路径,但在多版本库中不要使用此项 AuthType Basic    认证类型为基本认证,就是用户名和密码 AuthName "Subversion repository"    认证名称,将在浏览器界面弹出一个对话框,标题为 Subversion repository AuthUserFile /home/svn/passwd    指定使用的认证密码文件,即访问版本库用户的文件,用apache的htpasswd命令生成 AuthzSVNAccessFile /home/svn/authz.conf    设定访问版本库权限的文件,可选Require valid-user    要求验证用户,即不能匿名访问。如果没有该语句,则只能第一个用户可以访问新建库 此外,SVNIndexXSLT “/svnindex.xsl”    使用它可以在用浏览器时更好看 如果需要用户每次登录时都进行用户密码验证,请将与两行注释掉。 当您添加了上面的内容,您必须重新起动 Apache 2 Web 服务器,请输入下面的命令:sudo /etc/init.d/apache2 restart 接下来,您需要创建 /home/svn/passwd 文件,该文件包含了用户授权的详细信息。要添加用户,您可以执行下面的命令:sudo htpasswd -c /home/svn/passwd user_name 它会提示您输入密码,当您输入了密码,该用户就建立了。“-c”选项表示创建新的/home/svn/passwd文件,所以user_name所指的用户将是文件中唯一的用户。如果要添加其他用户,则去掉“-c”选项即可:sudo htpasswd /home/svn/passwd other_user_name 您可以通过下面的命令来访问文件仓库:$ svn co http://hostname/svn/myproject myproject --username user_name它会提示您输入密码。您必须输入您使用 htpasswd 设置的密码。当通过验证,项目的文件就被签出了。 5、配置nginx sudo vi /alidata/server/nginx/conf/nginx.conf 加入下面配置: server {        listen   80;         server_name www.svn.com;        location / {                 proxy_set_header Host $host;                proxy_set_header X-Real-IP $remote_addr;                proxy_set_header X-Forwarded-Proto https;                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;                proxy_pass http://127.0.0.1:8009;        }   } 保存退出。 6.重启nginx nginx -s reload 7.打开浏览器,输入http://www.domain.com/svn,就会弹出提示输入用户名,密码的对话框,用户名为第4步中htpasswd -c /home/svn/passwd user_name的user_name,密码为该user_name的密码,如果没有弹出什么错误,说明安装成功。 8.用小乌龟svn来上传下载代码。 vi /home/svn/myproject/conf/svnserve.conf,将[general]下面anon-access = read auth-access = write password-db = passwd authz-db = authz前面的###去掉。 9.启动建立好的版本库服务。 svnserve -d -r /home/svn/myproject 10.我桌面上写了个tcpServer的代码。将tcpServer通过小乌龟上传到svn上,报了个警告:post-commit FS processing had error 'attempt to write a readonly database'.解决方法:chown www-data:www-data /home/svn/myproject/db/rep-cache.db 11.按照这样的步骤走下来,通过SVN客户端,用该用户名和密码上传代码到svn服务器上,或者下载代码到服务器上是能够成功的。支持多用户上传下载的功能,还在探索配置中。

(0)

相关推荐

  • windows下如何安装配置nginx

    Nginx是一款轻量级的Web 服务器.其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好.那么,在windows下如何安装配置nginx呢,以下一步一步手动 ...

  • 在Linux系统上怎么通过uWSGI配置Nginx+Python环境

    在Linux系统上怎么通过uWSGI配置Nginx+Python环境

  • Linux VNC server如何安装及简单配置使用?

    Linux VNC server的安装及简单配置使用 摘要: Linux vnc server的安装及简单配置和使用.此文只适合普通的用户(比如说在虚拟机内装Linux的朋友等等),这儿没有在乎网络安 ...

  • Linux中编译安装Subversion(SVN)客户端的教程

    Subversion(简称svn)是近年来崛起的版本管理软件系统,是cvs的接班人.目前,绝大多数开源软件都使用svn作为代码版本管理软件.Subversion是一个版本控制系统,相对于的RCS.CV ...

  • CentOS 6.4系统下编译安装LNMP和配置PHP环境

    一、准备工作 上pkgs.org下载rmpforge。rpmforge是一个第三方yum源。 选择相应的版本下载安装。 // 安装成功后,清空yum list 并 重新获取 [root@pangou ...

  • redhat linux 安装 gcc编译器

    分两种情况: 先看这篇转过来的文章,俺老孙懒得写了。 Linux软件安装通用思路 在Linux系统中,软件安装程序比较纷繁复杂,不过最常见的有两种: 1)一种是软件的源代码,您需要自己动手编译它。这种 ...

  • Linux安装GBK/GB2312程序显示乱码的五种解决方法

    不少用户在Linux系统中安装GBK或GB2312的时候遇到了乱码问题,这主要是系统默认语言是uft8所导致,对于该问题可用五种方法进行解决,下面小编就给大家介绍下Linux安装GBK或GB2312程 ...

  • 如何把Kali Linux安装到移动硬盘或者U盘上

    本文我们聊一下如何把Kali Linux安装到移动硬盘或者U盘上,由移动硬盘独立引导,与本地系统完全隔离.U盘随身携带,只要PC的Bios支持USB启动,走到哪都可以使用自己的移动系统,方便工作和学习 ...

  • maven安装以及eclipse配置maven的方法

    介绍安装maven,配置Maven环境变量,同时在Eclipse中配置Maven插件. Apache Maven是一个软件项目管理和综合工具.基于项目对象模型(POM)的概念,Maven可以从一个中心 ...