阿里云服务器环境(PHP+Nginx+MySQL)
我在百度翻了个遍,按照前辈们的方法一样一样的敲,在客户端总是打不开,我特么的郁闷了一晚上。
如:"svn: Can't connect to host '*.*.*.*': 由于连接方在一段时间后没有正确答复或连接"
......(这里省略数亿个“草泥马”的复制&黏贴)
【废话不多说,将我总结的集完美与帅气于一身的方法分享如下】
1. 打开终端(Xshell / SecureCRT / 其他)
2. 远程安装 subversion
yum install subversion
3. 输入rpm -ql subversion 查看安装位置
我们知道 svn 在 bin 目录下生成了几个二进制文件,输入 svn --help 可以查看 svn 的使用方法,如图:
4. 创建 svn 版本库目录
mkdir -p /var/svn
5. 创建版本库
svnadmin create /var/svn/project
6. 进入 conf 目录
cd var/svn/project/conf
authz (文件是权限控制文件)
passwd (帐号密码文件)
svnserve.conf svn (服务配置文件)
7. 设置帐号密码
vi passwd
在 [users] 块中添加用户和密码,格式:帐号 = 密码
[users] hahaha = hahaha bbb = bbb ccc = ccc
8. 设置权限
vi authz
清空代码复制以下代码:
[groups] develop = hahaha,bbb,ccc [/] @develop = rw
意思是版本库的根目录 admin 对其有读写权限,w 只有读权限。
9. 修改 svnserve.conf 文件
vi svnserve.conf
清空里面的所有代码,复制黏贴以下代码:
[general] anon-access = read auth-access = write password-db = passwd authz-db = authz
注:每行代码前面一定不要有空格,每行全部顶置。
10. 最重要的一步,默认情况下防火墙 3690 端口是没有对外开放的,因此我们要修改配置文件:
vi /etc/sysconfig/iptables
在中间的位置复制如下代码(如果有就跳过):
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3690 -j ACCEPT
重启一下防火墙
service iptables restart
11. 启动 svn 服务
svnserve -d -r /var/svn
12. 进入网站根目录,输入以下指令
svn checkout file:///var/svn/project ./
输入指令查询是否成功创建 svn 版本文件
ls -a
如果出现 . .. .svn 的话,就说明创建成功
13. 将网站目录文件添加到 svn 版本库里面:
svn add * svn commit -m "[随便你写什么日志]"
14. 修改 hooks 文件 post-commit(设置了服务器自动更新提交的文件,告别 svn up 手动指令更新)
cd var/svn/project/hooks
cp post-commit.tmpl post-commit
chmod 755 post-commit
vi post-commit
在最后加上 (/data/wwwroot 以你网站根目录为准)
#!/bin/sh export LANG=en_US.UTF-8 /usr/bin/svn up /data/wwwroot --username hahaha --password hahaha --no-auth-cache --non-interactive
15. 在 windows 上的 TortoiseSVN 客户端测试:
先创建一个文件夹,然后鼠标右键点击文件夹,选择 SVN checkout
填写 svn 的地址,如下图:
输入帐号&密码,如下图:
done!