每当我管理的基于PHP的活动站点需要进行紧急代码更改时,我就会脱机更改代码,在本地服务器上测试它,然后在高兴时通过FTP将更新的文件上传到生产服务器。
这显然有效,但我发现当我在繁忙的站点上这样做时,如果有人在我上传的同时访问浏览器中的文件,他们将收到PHP解析错误。我认为这是因为在他们试图访问FTP的时候,通过FTP上传还没有完成。
我等不及一个安静的时间上传我的新文件,因为网站是繁忙的24/7,所以我如何避免这一点?某些FTP服务器是否比其他服务器处理得更好,还是我要以错误的方式部署到生产服务器?
CENTOS 6.6,Apache,ProFTPd/PureFTPd,PHP 5.3
发布于 2015-06-02 16:29:35
您可以通过将所有应用程序上载到另一个目录来实现这一点。您的公共目录可以与当前发布的应用程序链接到目录中。当您上传所有应用程序文件时,只需切换符号链接即可。
例如,您的一些apache/nginx主机配置在
/var/awesome-app/public_html
将您的应用程序存储在其他地方,例如您的家庭dir。将应用程序上载到单独的发布目录中,如下所示:
~/awesome-app/releases/1
~/awesome-app/releases/2
~/awesome-app/releases/3
...
~/awesome-app/releases/<RELEASE_NUMBER>从应用程序创建指向主机的路径的符号链接。当您设置环境时,应该只调用该命令一次:
ln -s ~/awesome-app/current /var/awesome-app/public_html
上传应用程序之后,创建(替换)符号链接到当前版本。每个版本都应该调用此命令。
ln -sf ~/awesome-app/releases/4 ~/awesome-app/current
您可能还需要查看软件部署。
发布于 2015-06-02 15:50:34
您可以制作应用程序的两个后端(副本,例如上游的nginx ),并单独更新它(禁用当前更新的后端)。
https://stackoverflow.com/questions/30600669
复制相似问题