零、介绍
每天定时备份是通过ftp打包和同步的方式,这些都是比较粗的备份,没法恢复到指定时间的文件,所以需要用到svn控制版本。
(请不要问我为什么不用git)
一、现有项目文件加入版本控制
因为项目已经在线上运行了,所以得先把运行中的文件导入到版本库,形成第一个版本。这里会遇到一个问题就是import导入的文件不会有版本号,只是在库里面,所以又要checkout回www目录(这个过程是很奇怪的)。这里解决办法是,不通过import方式导入,而是通过add方式。
1.把svn版本库中的空目录检出到www目录
#svn checkout svn://xxx.xxx.xxx.xxx/website www
2.在www目录下查询svn控制状态
#svn status
3.把www目录查询到的带问号(?)的文件和文件夹加入到svn库中
#svn add index.html
#svn commit index.html -m '这里写注释'
二、排除不需要加入版本库的文件和文件夹
网站程序的缓存文件夹和附件文件夹因为太大,所以我不把他放到svn里面,只是用ftp备份。在svn里面具体操作如下(在www目录下):
#svn propset svn:ignore 'caches <回车> upload' .
#svn commit . -m 'set ignore'
以上部分,我的网站根目录下有两个文件夹caches和upload不需要上传,设置了忽略。(请注意后面那个句点)
三、设置httpd屏蔽访问.svn文件
因为之前的乌云上有报漏洞关于.svn文件泄露导致网站被攻击的情况,所以还是需要把网站目录下的.svn访问权限给屏蔽。
通过 httpd 的 Location 匹配限定访问:
<Location ~ "/\.svn/"> Order deny,allow Deny from all </Location>
参考:http://httpd.apache.org/docs/2.4/mod/core.html#location
本文详细介绍了如何使用Subversion (SVN) 对已上线的网站项目进行版本控制,包括将现有项目加入版本库、排除特定文件夹、设置HTTPD屏蔽.svn访问等关键步骤。
1万+

被折叠的 条评论
为什么被折叠?



