多服务器部署代码
在没有版本控制的年代,程序员用ftp来部署代码,后来我们用了svn,git来部署代码,既然说到了svn,就说一个这方面的漏洞。项目正式上线后为了及时修改bug,我们并不会从svn仓库导出一份干净的代码(没有.svn文件),而是直接svn up,这样就会导致.svn泄露文件信息,一个简单粗暴有效的做法就是把所有的代码文件移动到非web目录,laravel就是这么做的。另一个使用非常广泛的框架 thinkphp 也在入口文件建议了。但是很多使用thinkphp的项目忽略了这点建议。
thinkphp的建议
/**
* 应用目录设置
* 安全期间,建议安装调试完成后移动到非WEB目录
*/
define('APP_PATH', './Application/');
if (! is_file(APP_PATH . 'User/Conf/config.php'))
{
header('Location: ./install.php');
exit();
}
-------分割线------
说偏了,现在来说多服务器部署代码。
但凡能上线的项目都会用到多个服务器。这时候如果在每个服务器都用svn up那简直是恶梦。程序员的工作就是让复杂的事情简单化,让简单的事情自动化,这时候就需要用到rsync
,这样的工具,分享一个我在实际项目中使用的例子。