如何在lnmp服务器下安装svn

 

阿里云服务器

集成软件:PHP5.4.27、Nginx1.6.0、MySQL5.5.37

svn服务器有2种运行方式:独立服务器和借助apache运行。两种方式各有利弊。我这里是独立的服务器,svnserver。第一次接触感觉很麻烦,网上搜了很多,最后摸索出了一个适合阿里云服务器的环境配置方案。当然也适合普通服务器,linux系统。

第一步:

下载安装svnserver:两种方法

第二步:

创建svn仓库我是创建在 /home/svndata目录下www目录的,这里目录可以自己定。当然这个目录得提前创建好

命令如下:

第三步:

就是创建仓库了

第四步:

修改配置文件

进入/home/svndata/www目录(这里的www目录不是网站的web目录,仓库名为www)

会看到conf、hooks、db等目录,我们会用到的也就conf(配置目录)hooks(设置钩子,后面会讲到)

进入conf目录

首先配置svnserve.conf

修改(把前面的#号去掉,配置后面的值,共修改五行代码)

在passwd文件中添加用户

# vim passwd

这里设置了两个用户,分别为admin和user1。根据情况不同可以随意设置。

在authz中添加组和权限

# vim authz

这里说明下,前面添加了3个用户,分了两个组,对于根目录group1拥有读写权限,而group2只有r权限。根目录(www目录)下有user1和user2两个文件夹,分别配置了user1和user2两个用户相应的权限。如不需要,可以不添加相应的代码。

第五步:

启动svnserve

也可以使用 –listen-port 参数指定端口(默认端口3690),启动多个仓库

正常情况下不会出现问题的,如出现请检查刚才的配置文件

第六部:

导入项目项目目录为svn://localhost/www
创建svn仓库副本(nginx的读取目录,也就是web目录,我的web目录/home/www)
进入web目录

# cd /home

同步

显示如下

保存用户名与密码,实现之后的自动同步。

这里可能会出现  错误:svn:E170001;认证失败

还有可能出现找不到openssl错误,利用yum安装openssl和openssl-dev即可。

看到以上密码的数据就基本成功了

第七步:

设置svn更新后自动更新web目录

里面会有很多.tmpl文件,这里我们只需要post-commit.tmpl文件,但这个文件只是模板文件,我们需要复制一份放在此目录下,命名为post-commit。

在文件的底部修改和添加

说明:

#!/bin/sh 说明是执行shell命令,不需要修改

export LANG=zh_CN.GBK 是为了解决svn post commit 中文乱码,设置本地化编码,因为我的系统为GBK编码,SVN默认是UTF-8编码,如果不设置将会出现错误,而执行不成功,错误标识为svn: Can’t convert string from native encoding to ‘UTF-8’

到这里自动更新也解决了

第八步:

实现开机自动启动

将svnserve -d -r /home/svndata/ 写入/etc/rc.local即可实现开机启动(一般在etc文件下,或者/etc/rc.d/文件夹下)

ps:刚才配置的时候还有个user1之类的用户,user1只能管理user1目录,地址为svn://IP地址/www/user1

并且请保证文件有读写权限,chmod -R 777 /home/www

到这里所有大功告成,现在可以用客户端测试下了,一般都用TortoiseSVN,地址为svn://IP地址/www