Напильник для Эгеи
Как можно заметить, мой блог ведётся на бесплатном (для личных блогов) движке Эгея. Это отличный блого-движок, отличающийся своей простотой, элегантностью и дружелюбием к пользователю. Поэтому, после восстановления сбоя на сервере с моим сайтом, я опять решил настроить блог на Эгее. Правда, незадолго до сбоя я обновил систему до Debian 9, вычистив все упоминания о PHP5, остался только PHP7 (с FPM), но движок блога может работать как на пятом, так и на седьмом PHP.
Показать
Возможно, что из-за кривоватых настроек моего сервера Эгея из старого бэкапа сразу работать отказалась (нет баз, не известен пароль к базам и т. д.). Это было, вероятно, тяжкое наследие старой системы, я обновлял её через aptitude dist-upgrade.
Пришлось бэкапить MySQL-базы с наполнением блога, затем переустанавливать заново движок (скачал релиз 2.7, версию 3249), инсталлятор создал новые базы, поверх которых я вытащил из бэкапа мои блоговые статьи, комменты и прочее. Причём начальные таблицы в базе создаются с префиксом ’e2Blog’, нужно не забыть поменять на используемый мной префикс в файле system/defaut/config.php, строка
$_config['db_table_prefix'] = 'e2Blog';
Да, и user/settings.json желательно привести к такому виду
{ "db": {"server": "<узел>","user_name": "<имя>","passw": "<пароль>","name": "<база>"}, "timezone": {"offset": 10800,"is_dst": false}, "template": "plain", "language": "ru", "appearance": {"notes_per_page": 10}, "comments": {"default_on": true}, "site_title": "Блог ни о чём", "description": "Мысли, факты, цитаты, заметки.", "author": "Павел Гладилов", "user": {"email": "pavel@gladilov.org.ru"}, "notifications": {"new_comments": true} }
Затем выяснилось, что вместо статей открывается страница с ошибкой
Fatal error: Uncaught Error: Call to undefined function dl() in <файл> line <строка>
Пришлось погружать свои ручки в код движка... В результате просмотра кода было найдено решение — замена части кода в ядре движка system/core.php с
if (!extension_loaded('gd')) { if (!dl('gd.so')) { header('Content-type: image/gif'); return false; } }
на
if (!extension_loaded('gd')) { header('Content-type: image/gif'); return false; }
После этого блог заработал, но теперь пропала возможность быстрого сохранения в редакторе по комбинации клавиш Ctrl + Enter (в старых версиях — Ctrl + S) и при попытке движка сформировать или вызвать на редактирование страницу, на которой есть ссылки на несуществующие файлы картинок — открывалась страница с серым фоном и маленьким пустым квадратом посередине. Причём, если такая «кривая» страница открылась — то даже при устранении всех причин всё равно отображается ошибочная страница. Я думаю (но не проверял), что это связано с хранением сгенереных страниц (или их частей) в user/caches/*.psa. Возможно, мне повезло, что со временем истёк срок хранения кешированных «кривых» страниц, и они стали отображаться нормально. Или возникновение такой проблемы как-то связано с разными форматами таблиц старой и новой версии движка. А вообще эту проблему я обошёл с помощью прямой правки заметок в записях таблицы <префикс>Notes, затем там-же стал выставлять атрибут ’Null’ в поле «Uploads» и использовать полный путь к файлам картинок от корня.
В файле user/extras/header-pre.tmpl.php прописываю заголовок для блога — кнопки и .
В файле themes/<имя используемой темы>/templates/layout.tmpl.php рисую верхнее меню:
<?php if ($content['class'] == 'frontpage') { ?> <div id="e2-blog-description"><?= $content['blog']['description'] ?></div> <?php } ?> <br /> <table width="650"> <tbody> <tr> <td><a href="<ссылка1>"><img src="<картинка1>" style="vertical-align:middle!important" />& <пункт1></a></td> <td width="15"></td> <td><a href="<ссылка2>"><img src="<картинка2>" style="vertical-align:middle!important" />& <пункт2></a></td> <td width="15"></td> ... <td><a href="<ссылкаN>"><img src="<картинкаN>" style="vertical-align:middle!important" />& <пунктN></a></td> </tr> </tbody> </table> </div> </div>
Ну и тоже выплывшую при правке system/core.php проблему с невозможностью определить новую картинку для юзера решаю изменением в этом же файле определений DEFAULT_USERPIC_FILENAME и DEFAULT_USERPIC_PLACEHOLDER_FILENAME на путь к моей картинке.
define('DEFAULT_USERPIC_FILENAME','<soul.png>'); define('DEFAULT_USERPIC_PLACEHOLDER_FILENAME','<soul.png>');
Теперь мой блог выглядит приблизительно так:
Павел, добрый вечер. Про файл settings.ison на Эгее нашёл только у Вас. Мне нужно, что бы Эгея выводила одну страницу. Если я ставлю в {
«appearance»: {
«notes_per_page»: 1, (вместо 3)
«show_sharing_buttons»: false
},
settings.ison ломается,
после перезагрузки исчезает часть файла, которая отвечает за связь с базой и Эгея больше не работает.
Как быть?
Валерий, добрый день!
Трудно что-либо посоветовать, так как не я пилил движок блога, а используемый мной давно не правил (да и то это было скорее по необходимости, чтобы заработало)... Как паллиатив, могу посоветовать Вам попробовать вынести определения параметров связи с базой в начало json-файла, вдруг поможет. Но настоятельно советую обратиться к автору движка, ЕМНИП, он оказывает техподдержку своему детищу...
P. S. Ещё как вариант — проверить валидатором JSON-файл на наличие ошибок, вдруг синтаксис где-то нарушен, незаметная запятая потерялась...
Павел спасибо, я уже спрашивал Бирмана и он сказал, что виноват мой host, тем более, что на локалке эта проблема не возникает. Однако, на одном из моих сайтов это прошло нормально, а на другом нет.
Павел, Вы правильно навели меня на мысль проверить, что происходит с файлом settings.json при редактировании. Нашёл ошибки! Благодаря Вам, проблема решена.
От всей души поздравляю!