我想将新代码转移到我的新生产服务器。
我的开发服务器上有代码文件。
除了使用 FTP 从本地机器上传文件之外,还有其他方法将代码从一台服务器传输到另一台服务器。
我正在考虑将要传输的整个代码制作成 zip 文件,并将其放在 webroot 中。这样它就可以通过一些链接在互联网上访问http://www.mydomain.com/code.tar.gz 现在在另一台服务器上我只需运行命令
wget http://www.mydomain.com/code.tar.gz
这次转移会在几秒钟内完成吗?我可以知道这是正确的方法吗?
答案1
首先要注意的是,FTP 不是一个好主意。你绝对应该使用 SCP。
接下来,您要在创建文件时使用正确的权限。最简单的方法是以 root 用户身份(然后您可以以任何您喜欢的用户身份创建文件)。但您真的不想允许 root scp/ftp 访问。这意味着您将文件拉到服务器上 - 而不是推送它们。
我建议在您的开发系统上构建一个版本(以便您可以检查它是否已正确部署),然后使用 rsync 将图像克隆到服务器上。
您可以使用 scp 来移动备份映像 - 但您可能需要 root 权限才能正确解压。但是,如果您遇到问题,那么您唯一的办法就是再次重复整个过程 - rsync 仅复制已更改的文件。
答案2
最好的做法是使用 ANT 或构建脚本从您的 CVS/SVN/GIT/whatever 中导出,并附加一个特定的标签,这样下次您升级代码时,如果出现问题,您可以随时返回到原始代码库。
如果失败,请在干净的开发环境中使用 rsync。确保代码由同一用户拥有并以同一用户身份运行,然后执行以下操作:
ssh devserver cd /path/to/webroot rsync -e ssh -avzP * prodserver:/path/to/webroot/
答案3
作为您在新生产服务器中的首次干净部署,如果您具有 ssh 访问权限,请使用 RSYNC 或 SCP。请查看以下内容:使用 Rsync 和 SSH
正如 Glen 所说,最好的部署计划是使用 ANT 或构建自己的脚本来导出代码,如果在部署期间遇到任何问题,您可以回滚。