Обновление Joomla, белый экран в Джумле и другие приключения
При покупке сайтов или в процессе веб-разработки приходится сталкиваться с разными системами управления контентом: WordPress, DLE, Livestreet, TYPO3, Vam Shop а также Joomla. Одно дело когда вам нужно просто наполнять проект контентом или сделать незначительные правки в шаблоне, но совсем иная ситуация, если приходится разбираться с проблемами в работе сайтов. Сейчас, после трехлетнего опыта с WordPress меня сложно чем-то там удивить, т.к. я более-менее понимаю логику работы CMS. А когда система вам не очень знакома, приходится тратить много времени на решение, казалось бы, простых задач по типу обновления DLE и тому подобных. Сегодняшний пост будет про Джумлу. Опытным пользователям, наверное, все рассказанное будет известно, другим может пригодиться.
Все началось с того, что с сайта на Joomla начал рассылаться спам. Хостер вынужден был отключить проект и уведомил о наличии проблем в файлах:
{HEX}base64.inject.unclassed.7 : ./templates/beez5/html/com_contact/contact/defines.php {HEX}base64.inject.unclassed.7 : ./templates/siteground-j16-18/html/com_content/categories/search.php {HEX}base64.inject.unclassed.7 : ./templates/atomic/css/blueprint/src/templates/footer.php {HEX}base64.inject.unclassed.7 : ./templates/atomic/blog.php |
В часть файлов в самом начале был встроен «левый вод», часть их просто создавалась заново и была пустая только с base64 кодом. Первые пришлось отредактировать, вторые просто удалить. Там был много разных «нормальных» названий по типу blog.php, default.php, general.php, разбросанных по разным директориям.
Кроме удаления зараженных файлов я решил обновить движок Joomla до более новой версии. На сайте была установлена версия Joomla 1.7.3. Судя по информации в сети, для нее есть 2 варианта апдейта — автоматическое и ручное обновление. Рассмотрю лишь основные этапы алгоритмов без детализации.
Автоматическое обновление Joomla 1.7.3 до Joomla 2.5.1
1. Первым делом, конечно, нужно сделать бэкап: копируете все файлы с ФТП на компьютер, а БД бэкапите через phpmyadmin.
2. Дальше нужно очистить кэш и отключить его. Сначала выбираете в меню «Сайт» — «Обслуживание» — «Очистить весь кэш». На странице выделяете файлы кэша и жмете по кнопке «Удалить».
Дабы выключить кэш заходите в меню «Сайт» — «Общие настройки». Там выбираете раздел (вкладку) «Система» и справа находите настройки кэша. Его нужно отключить.
3. Дальше заходите в раздел «Расширения» — «Менеджер расширения», где переходите во вкладку «Обновления».
Там требуется кликнуть сначала по иконке «Очистить кэша», а затем «Найти обновления». Первым делом нужно обновить дополнительные разрешения, поставив галочки напротив их названия и кликнуть по кнопке «Обновить». Только после этого обновляйте саму Joomla.
4. После обновления обязательно очистите кэш браузера.
Ручное обновление Joomla 1.7.3 до Joomla 2.5.1
Алгоритм ручного обновления аналогичен — я использовал именно его. Вся фишка в том, что на странице обновлений у меня были только модули, а самой Joomla не наблюдалось. Итак.
1. Делаем резервную копию сайта и БД.
2. Очищаем кэш на сайте и выключаем его (аналогично аналогичному пункту автоматического обновления).
3. С сайта Joomla (заходил на русский сайт Джумлы) скачиваете последнюю версию. Не смотря на то, что там есть уже Joomla 3 я все решил для начала обновиться с 1.7.3 до 2.5.1.
После этого на локальном компьютере распаковываете архив и заливаете поверху новые файлы на ФТП. На запрос «перезаписать ли старые файлы» — отвечаете «да» и ждете пока все скопируется.
4. Заходите в админку сайта — ваш_сайт/administrator/. Скорее всего, вас попросят удалить папку «installation». Дальше сможете зайти в админку. Дальше заходите в раздел «Расширения» — «Менеджер расширений». Там появится закладка База данных для ее обновления. Нужно обновить БД.
5. Очищаем кэш браузера.
6. Обновляем плагины. В рекомендациях по автоматическому обновлению Джумлы говорил, что плагины желательно обновить до самой системы. Но сам, если честно, я этого не делал. Ничто не мешает вам обновить их и после апдейта CMS.
Какой бы вариант обновления вы не выбрали, после очистки кэша и всего такого вам нужно будет проверить дабы сайт корректно отображался и все работало.
Ошибки и белый экран Joomla
Так сложилось, что обновиться без проблем у меня не получилось. В чем именно ошибка я так и не узнал — возможно, была проблема в файле htaccess из корневого каталога или же я не удалил кэш браузера полностью. Тем не менее пришлось «познакомиться» с «белым экраном» Джумлы и как с ним бороться.
Он может появиться в случае: некорректного обновления системы или плагинов, изменении настроек хостера, неправильно редактировании шаблона, ошибок в htaccess и т.п. Суть в том, что если он есть, значит на сайте имеется ошибка. И ваша задача ее найти.
Узнать ошибку можно с помощью одного из вариантов:
1. Просмотрев файл ошибок error.log или error_log на ФТП сайта.
2. Отредактировать файл настроек configuration.php, изменив значение:
$error_reporting = 'maximum'; |
3. Добавив в файл .htaccess:
php_value display_errors 1 |
4. Добавить в файл index.php сразу же после первой строки код:
ini_set('display_errors', TRUE); error_reporting(E_ALL); |
Дальше нужно будет проанализировать ошибку. Если видите, что проблема возникла с файлом плагина, то либо он не поддерживается либо содержит какой-то глюк. Отключите плагин и разберитесь в чем там проблема. Если ошибка в файлах самой системы Joomla, то можно перезаписать битый файл нормальным из установочного архива. По-моему, у меня в первый раз при обновлении закачались не все файлы, поэтому я залил их второй раз без ошибок.
Такие вот «откровения» про Joomla, надеюсь, статья вам пригодится.
Вот тебе огромный респект и уважуха, стал белый экран сайта, думал ну все кранты, спасибо огромное за статью
Ну я уже как полгода использую Live Street CMS. Никаких проблем слава богу не было. А да была проблема с директориями. Но ее решил скачав патч, залил поверх и все проблемы решились).