Это две части, давайте сначала разберемся с простой:
Мне нужно отобразить страницу «обновления»
Если вам нужно отключитьвесь сайт, сохраняя целостность транзакций и публикуя сообщение для пользователей с обновляемого сервера, тогда единственный практический способ сделать это - через авто-предварительную подготовку - это необходимо настроить заранее (примечание - я считаю, что это может бытьсделано с использованием файла .htaccess без перезапуска веб-сервера для новой конфигурации PHP):
<?php
if (file_exists($_SERVER['DOCUMENT_ROOT'] . '/maintenance.php')) {
include_once($_SERVER['DOCUMENT_ROOT'] . '/maintenance.php');
exit;
}
Затем просто вставьте файл maintenance.php в ваш webroot, и этот файл будет отображаться вместо ожидаемого файла.Обратите внимание, что он, вероятно, должен включать session_start () и автообновление, чтобы гарантировать, что сеанс не истек.Возможно, вы захотите расширить вышеприведенное, чтобы разрешить льготный период, когда POST будут обрабатываться, например, путем добавления второго php-файла.
С точки зрения развертывания на удаленных сайтах, я бы рекомендовал использовать rsync поверх ssh для копированияфайлы содержимого - которые должны вызываться через управляющий скрипт, который:
- Применяет файл (ы) блокировки, как показано выше
- запускает rsync для репликации файлов
- запускаетлюбой сценарий развертывания базы данных
- удаляет файл (ы) блокировки
Если у каждого сайта свои настройки, я бы порекомендовал либо управлять специфическими для сайта материалами через иерархию включенияпути или даже локальное поддержание полного изображения каждого сайта.
C.