CakePHP 2.6.7:如何在更新时阻止网站访问

时间:2015-09-30 10:34:21

标签: php cakephp

很抱歉我的英语不够好所以我不知道如何搜索它。

作为标题,我想在更新新数据时阻止网站(例如:源代码或数据库)。

我尝试制作index.html文件并上传到主机但网站仍然可以访问index.php。 我也尝试重命名或删除index.php文件。也不成功!

这就是为什么我提出这个问题的原因。

摘要:如何在更新时阻止或停止用户访问网站?

2 个答案:

答案 0 :(得分:2)

从用户的角度来看,阻止不是一个好方法。通常你想避免停工。

只需symlink您网站的最新版本到您的实时文件夹:

/var/www/myfancysite -> /var/data/myfancysite-20151010121212

在网站的 new 文件夹myfancysite-<datetime>中进行全新结帐,并制作数据库的副本。根据需要应用数据库迁移,只需将符号链接切换到末尾带有新时间戳的文件夹。在理想情况下,您的停机时间为零。在最重要的情况下,如果出现问题,您可以快速回滚到上一版本:只需将符号链接恢复到以前的版本。

如果您仍需要添加一些维护屏幕,只需将符号链接更改为包含临时站点的文件夹:

/var/www/myfancysite -> /var/data/myfancysite-maintenance

使用部署脚本也可以完全自动化,这样您就不必像deploy <site>deploy rollback <site>那样手动完成。

一些有助于完成这些任务的工具:

答案 1 :(得分:1)

使用“维护”消息在App / webroot中创建index.html文件。

然后在你的AppController :: beforeFilter方法

if($this->request->clientIp() != 'YOUR IP ADDRESS') {
    $this->redirect('/index.html');
}

您的IP地址可以在localhost :: 1 127.0.0.1 上,在远程主机上使用您的真实IP http://www.myipaddress.com/show-my-ip-address/

使用这种方法,您仍然可以访问您的Web应用程序,但其他人都会看到index.html页面。