使用 SVN 进行网站的发布工具。
在 Linux 上安装 SVN 步骤:
安装 SVN
# yum install subversion
创建 SVN 仓库
# cd /opt
# mkdir svn
# svnadmin create /opt/svn/web
通过上述命令在服务器 /opt/svn 目录下创建了一个仓库 web。接下来需要修改仓库的配置文件。
配置 SVN 仓库
# cd /opt/svn/web
# ls
conf db format hooks locks README.txt
# ls
authz passwd svnserve.conf
conf 目录下存放 SVN 仓库相关配置文件。
1、修改 authz 文件
authz 是 SVN 认证文件,vim 打开
[groups]
admin = svn_admin
[/]
@admin = rw
在 [groups] 下增加 admin,在文件末尾增加 [/],换行增加 @admin=rw。@ 紧跟着用户组,等号右侧是读写权限。
2、修改 passwd 文件
passwd 是 SVN 账号密码文件,vim 打开
[users]
svn_admin = svn_password
在 [users] 下增加 svn_admin,等号右侧是该账号的密码
3、修改 svnserve.conf 文件
svnserve.conf 是该 SVN 仓库运行配置,vim 打开
[general]
anon-access = read
auth-access = write
authz-db = /opt/svn/web/conf/authz
password-db = /opt/svn/web/conf/passwd
在 [general] 下增加访问控制和 authz-db、password-db 文件路径。
启动 SVN 仓库
# svnserve -d -r /opt/svn/web/
启动 SVN 仓库之后,SVN server 即创建完成。
检查仓库运行
# netstat -anp | grep svn
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 15019/svnserve
检查端口可以发现 SVN serve 已经运行在端口 3690。
通过 telnet 127.0.0.1 3690 连接该端口可以收到类似这样的信息 ( success ( 2 2 ( ) ( edit-pipeline svndiff1 absent-entries commit-revprops depth log-revprops partial-replay ) ) )。
通过 curl http://127.0.0.1:3690 可以收到类似这样的信息 ( success ( 2 2 ( ) ( edit-pipeline svndiff1 absent-entries commit-revprops depth log-revprops partial-replay ) ) ) 。
checkout 仓库
通过 SVN TortoiseSVN 客户端 checkout 仓库 svn://127.0.0.1 验证账户并登录就可以正常使用 SVN 了。进一步可以了解如何使用 https 访问 SVN 服务。
后续在 Linux 上部署 SVN 更新脚本即可实现 SVN 管理站点发布上线。
开机启动 SVN 服务
一般来说,Linux 服务器重启情况比较少。但为了方便,可以 SVN 服务添加到开机启动项中。
在文件 /etc/rc.local 中增加一行 /usr/bin/svnserve -d -r /opt/svn/web/
不使用 /etc/init.d/svnserver 启动 SVN 服务是因为该命令默认启动时没有携带 -r 参数,即默认没有指定仓库路径。