对不起,我的英文不够好,所以我不知道如何搜索。
作为标题,我想在更新新数据(如:源代码或数据库)时阻止网站。
我试图使index.html文件和上传到主机,但网站仍然访问index.php。我还尝试重命名或删除index.php文件。也不成功!
这就是我问你这个问题的原因。
总结:我如何阻止或停止用户访问网站时,我正在更新它?
从用户的角度来看,阻塞不是一种好方法。通常你想避免停机时间。
只需将最新版本的网站符号链接到您的live文件夹:
/var/www/myfancysite -> /var/data/myfancysite-20151010121212
在站点的新文件夹myfancysite-<datetime>
中执行新的签出,并复制DB。根据需要应用DB迁移,只需将符号链接切换到最后带有新时间戳的文件夹。在理想情况下,您将实现零停机时间。在上面,如果出现问题,您可以快速回滚到上一个版本:只需将符号链接恢复到以前的版本。
如果你仍然需要添加一些维护屏幕,只需将符号链接更改为带有临时站点的文件夹:
/var/www/myfancysite -> /var/data/myfancysite-maintenance
这可以是完全自动化的部署脚本以及,这样你就不必手动做像deploy <site>
和deploy rollback <site>
。
帮助完成这些任务的一些工具:
- http://deployer.org/
- https://github.com/Codegyre/Robo
在App/webroot中创建带有" maintenance "消息的index.html文件。
然后在你的AppController::beforeFilter方法中if($this->request->clientIp() != 'YOUR IP ADDRESS') {
$this->redirect('/index.html');
}
你的IP地址可以在本地主机::1或127.0.0.1,在远程主机上使用你的真实IP http://www.myipaddress.com/show-my-ip-address/
使用这种方法,您仍然可以访问web应用程序,但其他人将看到index.html页面。