Я пошел с небольшим изменением на Rowlf's и jamietelin
ответить.
Создать 3 файла:
index.html
<meta http-equiv="refresh" content="0;url=/index_update.php" />
index.php
<?php // do all your normal stuff ?>
index_update.php
<?php
$file = "index.html";
$time = 60 * 10 - (time() - filemtime($file));
# this is on the first install
if (filemtime($file) != filectime($file))
$time = 0;
if ($time > 0) {
die("Data was already updated in the 10 minutes. Please wait another " . ($time) . " seconds.");
}
ob_start();
require "index.php";
$data = ob_get_contents();
$fp = fopen($file, "w");
fwrite($fp, $data);
fclose($fp);
header("Location: /");
А потом кронхоб:
*/15 * * * * curl http://example.com/index_update.php
Итак, если кто-то споткнется на странице после производственного нажатия, он просто прозрачно создаст для вас новый index.html, иначе ваш cronjob будет делать это каждые 15 минут.
Просто убедитесь, что index.html доступен для записи на вашем сервере Apache. Если это звучит страшно, то просто заставьте ваш cronjob запускать php index_update.php
от имени другого пользователя с правами на запись в index.html . У вас не будет доступа ко всей среде apache.
Надеюсь, это поможет, комментарии приветствуются.