как временное решение прикрутил кеширование
в index.php в начало добавил
// раздел настроек, которые вы можете менять
$settings_cachedir = '/home/***/***/cache/';
$settings_cachetime = 3600; //время жизни кэша (1 час)
$thispage = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
$isCached = true;
//любой метод определения какой файл запросили
$filename = $_SERVER['SCRIPT_FILENAME']; // $_SERVER['SCRIPT_FILENAME'] $_SERVER['SCRIPT_NAME']
$filename = basename($filename);
$skipCache = array('delcache.php'); // добавляем имена файлов для игнора
if (in_array($filename, $skipCache))
$isCached = false;
if ($isCached)
{
$cachelink = $settings_cachedir.md5($thispage).".html";
if (file_exists($cachelink)) {
$cachelink_time = filemtime($cachelink);
if ((time() - $settings_cachetime) < $cachelink_time) {
readfile($cachelink);die();
}
}
}
ob_start();
дальше идёт стандартное содержимое index.php
// Main engine defines
define('DS', DIRECTORY_SEPARATOR);
define('ROOT', rtrim(dirname(__FILE__), '\\/'));
define('BACKEND', false);
define('MONSTRA_ACCESS', true);
// First check for installer then go
if (file_exists('install.php')) {
if (isset($_GET['install'])) {
if ($_GET['install'] == 'done') {
// Try to delete install file if not delete manually
@unlink('install.php');
// Redirect to main page
header('location: index.php');
}
} else {
include 'install.php';
}
} else {
// Load Engine init file
require_once ROOT. DS . 'engine'. DS . '_init.php';
// Check for maintenance mod
if ('on' == Option::get('maintenance_status')) {
// Set maintenance mode for all except admin and editor
if ((Session::exists('user_role')) and (Session::get('user_role') == 'admin' or Session::get('user_role') == 'editor')) {
// Monstra show this page :)
} else {
header('HTTP/1.1 503 Service Temporarily Unavailable');
header('Status: 503 Service Temporarily Unavailable');
header('Retry-After: 600');
die (Text::toHtml(Option::get('maintenance_message')));
}
}
// Frontend pre render
Action::run('frontend_pre_render');
// Load site template
require MINIFY . DS . 'theme.' . Site::theme() . '.' . Site::template() . '.template.php';
// Frontend pre render
Action::run('frontend_post_render');
// Flush (send) the output buffer and turn off output buffering
ob_end_flush();
}
после него
if ($isCached)
{
$fp = fopen($cachelink, 'w');
fwrite($fp, ob_get_contents());
fclose($fp);
}
ob_end_flush();
файл delcache.php можно добавить задание на авто очистку
<?php
function delete_f($file,$del=1) {
if(file_exists($file)) {
if(is_dir($file)) {
$handle=opendir($file);
while(false!==($file1=readdir($handle))) {
if($file1!='.' && $file1!='..') {
delete_f($file.'/'.$file1,$del);
}
}
closedir($handle);
if($del==1) {
@chmod($file,0777);
rmdir($file);
}
}
else {
@chmod($file,0777);
if(file_exists($file)) unlink($file);
}
}
else return false;
}
delete_f('/home/***/***/cache/',0);
?>