部署时显示维护页面

时间:2014-11-25 02:52:40

标签: git github ssh

我在GitHub上有一个与https://www.deployhq.com/

上的帐户相关联的存储库

在部署HQ中我使用SSH连接到我的服务器,因此我可以在部署开始时和部署结束时发送SSH命令。

我想向我的服务器发送命令,强制在访问应用程序时显示维护页面,同时进行部署。然后,一旦部署完成,我想发送另一个命令来取消强制显示的维护页面。

我对SSH的了解非常有限,所以我需要很多帮助。在谷歌搜索并没有真正发现任何事情。

更新

我正在使用带有SSH和cPanel的GoDaddy VPS的CentOS 6。

我已经有一个维护页面,它位于directorytoupdate / maintenance / index.php

现在,我正在使用.HTACCESS将应用程序定向到维护页面。

# MAINTENANCE-PAGE REDIRECT
#<IfModule mod_rewrite.c>
  #RewriteEngine on
  #RewriteCond %{REMOTE_ADDR} !^123\.456\.789\.000
  #RewriteCond %{REQUEST_URI} !/maintenance/index.php/$ [NC]
  #RewriteCond %{REQUEST_URI} !\.(jpg|jpeg|jpg) [NC]
  #RewriteRule .* /maintenance/index.php/ [R=302,L]
#</IfModule>

我根据我想要启用或禁用维护模式来评论/取消评论。我猜我们可以在更新的开始和结束时重新编写.htaccess文件。

1 个答案:

答案 0 :(得分:0)

使用.htaccess文件进行重定向,一个简单的解决方案可能是复制和删除htaccess文件的bash脚本。我对CPanel的了解有限,但我认为默认目录结构是/home/(user)/public_html。所以你要在你的主目录中创建一个名为begin-maintenance.sh的文件:

#!/bin/bash
cp ~/public_html/website_directory/.htaccess ~/b.htaccess
cp ~/m.htaccess ~/public_html/website_directory/.htaccess

要使用此功能,您需要更改路径以反映适合您网站的路径,并将htaccess维护行放入文件名m.htaccess。该脚本将首先备份您现有的htaccess文件,然后使用维护文件覆盖它。反向脚本end-maintenance.sh

#!/bin/bash
cp ~/b.htaccess ~/public_html/website_directory/.htaccess

您需要使两个脚本都可执行 - 大多数ftp客户端都可以执行此操作 - 然后只需使用~/begin-maintenance.sh~/end-maintenance.sh从ssh脚本调用它们。