# svn 是一个简单的远程协作工具
## 1、安装svn服务端
`sudo apt-get install subversion`
## 2、安装svn在ubuntu的本地客户端
`sudo apt-get install libapache2-svn`
## 3、在根目录home下面建一个文件夹svn,作为svn的根目录
`sudo mkdir /home/svn`
## 4、建一个ubuntu的用户组,和一个管理员
~~~
sudo adduser svnuser(这里随便取个用户名)
sudo addgroup svngroup(这里是用户组)
sudo addgroup svnuser svngroup(把用户添加到用户组)
~~~
## 5、接着在svn的根目录下面创建一个svn的资源库,随便取名,例如pro
`sudo mkdir /home/svn/pro`
## 6、把上面创建的用户组的权限给到资源库pro
~~~
sudo chown -R root:svngroup /home/svn/pro
sudo chmod -R g+rws /home/svn/pro
~~~
## 7、向资源库里导入资源
`sudo svnadmin create /home/svn/pro`
Svn的配置
## 8、进入资源库/home/svn/pro,可以看到有几个文件夹,打开conf文件夹
~~~
svnserve.conf是svn的配置文件
passwd是svn的用户文件
authz是svn的权限文件
~~~
## 9、先打开svnserve.conf,将这些内容前面的#去掉,并查看后面的内容符合与否
~~~
sudo gedit /home/svn/pro/conf/svnserve.conf
-----------------
[general]
anon-access = read(这个是匿名访问权限,只读,none ,不允许匿名访问)
auth-access = write(这个是有权限操作,可写)
password-db = passwd(这个是用户文件的名称,对应8的passwd)
auth-db = authz(这个是用户权限文件的名称,对应8的authz)
realm = my project(这个是访问的时候显示的别名,随便取名也可)
~~~
----------------
## 10、打开passwd文件添加一个svn用户,在[users]下面添加admin=123456
~~~
sudo gedit /home/svn/pro/conf/passwd
#添加
admin=123456
admin是用户名
123456是密码
~~~
## 11、打开authz文件,给刚才的用户添加访问权限
~~~
sudo gedit /home/svn/pro/conf/authz
-------------
[groups]
root = admin(定义一个权限组root,把admin用户加入权限组root)
[/]
@root=rw(给root里的所有用户,读写的权限)
* = r(给所有其他的匿名用户,只读的权限)
~~~
--------------
## 12、重启svn
~~~
sudo killall svnserve
svnserve -d -r /home/svn
~~~
## 13、查看下本机ubuntu的ip地址
~~~
sudo ifconfig
可以看到192.168.***.***
~~~
## 14、
~~~
然后在我们的window主机里可以局域网访问虚拟机的svn了,相信大家都有
TortoiseSVN这个工具吧,在地址栏写上svn://192.168.***.***/pro即可,用户为上面建立的
admin=123456,上传几个测试文件,比如index.php,写点php代码上传上去
~~~
## 15、
~~~
这个时候php是无法解析到我们的svn里的资源index.php的,所以要把svn资源库里的文
件给同步到ubuntu的apache+php访问目录里去,在/var/www/html下面建一个文件夹
sudo mkdir /var/www/html/bbs
sudo chmod -R 777 /var/www/html/bbs
sudo svn co svn://192.168.***.***/pro /var/www/html/bbs
~~~
## 16、然后我们可以在window主机上访问http://192.168.***.***/bbs看到index.php的内容了,
接着我们要让apache自动同步svn的资源库变化后的内容,才能达到我们的效果;
~~~
在/home/svn/pro/hooks目录下有很多以tmpl结尾的文件,找到post-commit.tmpl,使用命令
cd /home/svn/pro/hooks
sudo cp post-commit.tmpl post-commit
sudo chmod +x post-commit
sudo gedit post-commit
~~~
打开文件后,看到最后几行没有加#的,给它们全部加上#,因为这个是发邮件的例子,我们
用不到,全部注销掉,然后在最后一行加上这段代码
`export LANG=en_US.UTF-8`
`svn up /var/www/html/bbs --username=admin --password=123456`
这样只要我们在window上传文件到svn的资源库,apache就会自动把这些文件同步到我们的
bbs文件夹下,然后就可以在地址栏访问到我们的项目了,搞定。另外,极个别,如果中文
显示有问题的话,那么可以在svn up这个代码前面加上export LANG=en_US.UTF8,再试
试。
- 我的笔记
- 服务器
- ubuntu svn 环境的搭建
- ubuntu Memcache 的配置
- ubuntu 密钥登录服务器
- centos 搭建服务器环境
- nginx+tomcat 集群搭建
- 餐厅运营来看如何构建高性能服务器
- VMware-Centos-网络配置
- Ubuntu-PHP-Apache-Mysql-PhpMyadmin的搭建
- UbuntuApache配置日志
- linux获取当前执行脚本的目录
- Ubuntu svn的快速配置(原创)
- Https配置
- Mysql 不支持远程连接解决方案
- ubuntu+apache+rewrite
- php Mcrypt 扩展
- 重启Apache出现警告信息Could not reliably determine the server's fully qualified domain name,
- Mysql无法远程连接
- 定时任务设置
- Linux中Cache内存占用过高解决办法
- Ubuntu14-04安装redis和php5-redis扩展
- php
- thinkphp3.2 一站多城市配置
- PHP 安全编程建议(转)
- phpexcel导入时间处理
- Mysql按时,天,月,年统计数据
- PHP-支付宝-APP支付
- 百度爬虫-获取全国数据
- PHPEXCEL导入导出excel文件
- php-微信app支付后端设计
- Phpqrcode生成二维码
- 图片+文字水印
- 数据库优化
- java
- Mybatis 二级缓存
- 微信
- 微信公众号多域名授权
- 微信扫码支付
- web
- 网站性能优化方案实施
- ionic环境搭建
- 登录设计方案
- 设置dev元素的宽高比例
- 设计模式
- app
- 版本更新
- 微擎数据库操作扩展
- select
- find
- delete
- update
- insert
- where
- order
- page
- group
- having
- limit
- fields
- debug
- bind
- join
- alias
- query
- 聚合函数
- count
- sum
- max
- min
- avg
- 事务管理
- 自增自减
- 算法设计
- ACM:入口的选择------深度优先搜索
- java:N的N次方
- 最少拦截系统:贪心思想
- ACM:蚕宝宝:搜索
- ACM:n!的位数 :斯特林公式
- 神奇的异或
- 中国剩余定理
- 矩阵翻硬币
- 回溯法
- ACM程序设计网站集锦
- 博弈论
- 多维空间上的搜索算法
- 算法学习笔记之一(排序)
- 算法学习笔记之二(堆排序)
- 算法学习笔记之三(快速排序)
- ACM俱乐部密码
- 原创开源
- 个人感悟