Лечил сайт знакомым сегодня (вернее, вчерашнюю ночь и сегодня днем), еще на Joomla 1.0.15. Сам его делал им лет кажется 8 назад, до сих пор работает, все нормально. Гос организация, ничего менять не хотят, сидит при нем тихая женщина и новости ставит. Все работало, как ни странно, отлично, но стал дико тормозить с августа примерно. Посмотрел тестром tools.pingdom.com, главная грузится около 3 сек, все внутренние - по 24-26 сек, причем это именно задержка, после этого таймаута все грузится очень быстро. Сайт, конечно за эти годы очень нагружен. Сначала грешил на это, почистил архивы, повыкидал старые-старые материалы (у них все хранилось с 2006 года), посмотрел базу, вычистил дикие по размеру таблицы со статистикой. Оптимизировал таблицы. Посмотрел темплейты, выкинул кое-какие мало нужные явовские скриптики, отключил несколько устаревших модулей. Почистил кеши. Не помогло никак, совсем никак, те же 25 сек задержки.
Попросил их админа прислать мне логи, желательно апачевские и php-шные. Он прислал, сказал - уже почти месяц постоянно лезет ошибка, не может запуститься какой-то файл php. Полез по адресу - оказалось, в папочке com_poll (в компонентах). Смотрю - файл есть, кажется sitedata.php назывался. Нашел чистую копию этой Joomla (сам же когда-то оставлял им в виде бекапа) - а там в соответствующей папке такого файла (и еще трех, там же) быть не должно. Скачиваю - антивирус ругается. Ну, все ясно. Отключаю антивирус, скачиваю, открываю - незнакомый код и куча "чего-то" закодированного base64. Три остальные - примерно тоже. Полез дальше - нашел такие же лишние файлы еще в двух папках - com_banners и com_content. В них примерно то же самое, и вообще довольно много кода (один из них hostdata.php). Посмотрел код, почитал в инете - ну точно, PHP-Shell, и в коде указание на биржу размещения то ли рекламы, то ли ссылок trustlink.ru, обращение к их базе, подгрузка каких-то клиентов, установка параметров прокрутки каких-то объявлений и др. Основной файл td.php. Повеселило наличие тут же jpg файлов, неизвестных мне, которые, при открытии в
Notepad++ оказались файлами стилей
. Дата у всех этих файлов - 07.2014. Убил все это, и сайт перестал запускаться,
белый экран. Поставил обратно - запустилось. Опытным путем понял, что дело как раз в наличии этого файла td.php.
Понял, что дело еще и в темплейтах. Полез смотреть index.php - все в порядке, лишнего кода нет (сам их делал когда-то). template ....xml тоже в порядке. Думал-думал, и для порядка полез посмотреть в папку CSS (в темплейтах)... и опс
- там стоит лишний файл. Должны быть файлики CSS и index.html, а там еще какой то index.php. Открыл его - а там опять, куча кода в base64. Что там- так и не понял, декодировать сходу не удалось, только видно, что ссылок много. Что интересно дата 03.2011 (!). Убил, сайт сразу стал нормально грузиться, так что видимо как раз этот файлик подгружал. Убил опять td.php - сайт опять пропал, включая админку. Поставил обратно - ожил. Полез искать в настройках, и в файле global.php нашел аккуратно врезанную строчку с вызовом этого файла. Что интересно, дата у global.php тоже старая, поэтому не обратил на него внимания сразу. Убил строчку - все встало на места, сайт летает, загрузка всех страниц полторы - две секунды.
Так вот я замечательно провел прошедший день
Пишу, потому как вдруг кому-нибудь пригодится