Linux运维最佳实践pdf下载
在linux网站服务器上搭建好 Subversion 后,就可以通过 SVN 客户端来部署和管理程序代码了。每次对线上的程序代码进行修改时,都会产生一个新的版本号,并且随时可以回到以前的版本或下载以前版本的程序代码。此外,当多个人同时修改后,SVN 能够自动合并修改,并提示可能的冲突让你手动解决。
下面来介绍服务器上的安装步骤:
1. 安装 Subversion
在 CentOS 上安装 Subversion 很容易,只要一条命令即可:
yum install subversion
在其他 Linux 发行版上,可以使用相应的包管理器来安装。例如 Ubuntu 上:
apt-get install subversion
2. 建立 SVN 仓库
LNMP 一键安装包安装完成后,网站文件默认存放在 /home/wwwroot 目录。我们可以在 /home 目录下新建一个文件夹 repo,用来放置 SVN 仓库。
mkdir -p /home/repo/wwwroot svnadmin create /home/repo/wwwroot
SVN 仓库建立完成后,在目录下会生成一些配置文件。我们接着修改这些配置文件。
3. 设置 SVN 账户及权限
首先修改 SVN 仓库的配置文件 /home/repo/wwwroot/conf/svnserve.conf 文件,修改以下项目:
[general] anon-access = none auth-access = write password-db = passwd authz-db = authz realm = wwwroot
然后建立账户,修改 /home/repo/wwwroot/conf/passwd 文件,添加账户和密码:
[general] [users] user1 = password1 user2 = password2 user3 = password3 user4 = password4 user5 = password5
接下来是基于路径的访问控制,修改 /home/repo/wwwroot/conf/authz 文件,指定账户的权限:
[groups] group1 = user1,user2 [/] # 根目录权限设置 user3 = rw # user3权限是:读写 user4 = r # user4权限是:只读 user5 = # user5没有任何权限 @group1 = rw # group1组权限是:读写
4. 设置自动更新网站程序目录
我们希望在通过 SVN 提交代码后,自动更新网站程序目录,方法是设置“钩子”。“钩子”是一段 Shell 脚本,在 SVN 发生某个事件后自动被执行一次。通过设置 post-commit 钩子,可以让 SVN 在接到我们新提交的代码后,自动更新网站程序目录中的文件。
添加 /home/repo/wwwroot/hooks/post-commit 文件:
#!/bin/shREPOS="$1"REV="$2"svn update /home/wwwroot --username user1 --password password1
别忘了设置为可执行:
chmod u+x /home/repo/wwwroot/hooks/post-commit
5. 启动 svnserve
SVN 可以通过 Apache 等 Web 服务器来提供服务,也可以独立提供服务,两者各有优缺点,这里我们选择独立运行。启动 svnserve 后,就可以通过网络远程访问到 SVN 仓库了。
svnserve -d -r /home/repo/wwwroot # 启动killall svnserve # 停止
也可以设置 svnserve 随系统启动,添加 /etc/init.d/svnserve 文件:
#!/bin/bash#chkconfig: 2345 70 40 #description: Starts the Subversion serve in daemon mode### BEGIN INIT INFO# Provides: svnserve# Required-Start: $all# Required-Stop: $all# Default-Start: 2 3 4 5# Default-Stop: 0 1 6# Short-Description: starts the svnserve# Description: starts the subversion serve in daemon mode### END INIT INFOsvnserve -d -r /home/repo/wwwroot
然后添加到系统启动项中:
chmod +x svnserve chkconfig --add svnserve
另外,别忘了在防火墙上开放 svnserve 使用的端口,默认是 3690 端口。
6. 签出到网站目录
SVN 仓库建立完成后,先初始签出到网站目录,以后就可以通过 svn update 来自动使网站目录中的文件和 SVN 仓库中的文件同步了。
svn checkout file:///home/repo/wwwroot /home/wwwroot --username user1 --password password1
7. 拒绝 Web 访问 .svn 目录
签出到网站目录后,网站目录下会生成一些 .svn 文件夹。这些文件夹中存放的是 SVN 系统使用的文件,我们不希望用户通过 Web 浏览到这些文件。通过修改服务器配置文件,我们可以做到:
Nginx:
在 nginx.conf 的 server 块中添加:
location ~ /\. { access_log off; log_not_found off; deny all; }
Apache:
在 httpd.conf 中添加:
<FilesMatch “.svn/.*” > Order Allow,Deny Deny from all
>
重新载入服务器配置文件,让设置生效即可。
8. 通过 SVN 客户端提交程序文件
使用刚才添加的账户和密码连接到 svn://【服务器地址】/ 就可以访问 SVN 仓库了。
Windows 上最流行的 SVN 客户端是 TurtoiseSVN。而对于 Mac 和 Linux,则通常使用 SVN 命令行客户端。关于这些客户端的使用方法,Sina App Engine 的文档中心有一个很不错的入门教程可以参考。
至此,我们完成了 SVN 服务的搭建。现在你可以通过 SVN 来更好地管理网站服务器上的程序文件了。
转载请注明:谷谷点程序 » linux下svn的配置方法