Перейти к содержимому

Переход на версии 5 PHP и MySQL

В отечественном интернете началась ползучая революция. Хостеры решили переезжать на пятые версии PHP и MySQL. Сами собой возникли проблемы, к которым большая часть вебмастеров не готова. То есть, те люди, которые в России называются вебмастерами, чаще всего являются администраторами, публикаторами, писателями - короче, кем угодно, но только не знатоками пхп-кода. Знатоки стоят денег… Соответственно и, свалившиеся вдруг на голову проблемы, они пытаются решить либо уговорами хостера помочь, либо - что совсем страшно - полным сносом сайта и операцией “начнём всё заново”. Данная статья написана как раз в помощь последним - горемыкам, которые вынуждены делать всё сами. Причем, автор этих строк тоже далеко не программист. И неделю назад оказался перед дилеммой, упомянутой выше. Сносить или помучиться? Выбрал второе.
Почему остановился на таком решении? За неделю до возникшей проблемы пришлось переустанавливать очередной сайт из-за проблем движка - выбранная год назад версия оказалась неимоверно сырой и отладка не представлялась возможной. Контент, собранный за год, казался совсем небольшим. Сайт и база данных были удалены начисто. Однако, ручное восстановление методом “копи-паст” оказалось не таким простым. Второй раз этот путь проходить не хотелось. И, вняв совету старших товарищей, в этот раз решил восстановить базу из дампа. Примечание - процедура, описанная ниже, актуальна только для удалённого хостинга.
Что же тут сложного - спросит профессионал? В ответ напомню - статья для “чайников”. Итак, сложности заключались в следующем. После переезда хостера на пятые версии PHP и MySQL, на сайте перестали отображаться некоторые блоки информации. При этом, сообщения об ошибках не выдавались. Если верить движку, всё работало в штатном режиме. Несколько суток ушли на поиски трабла и закончились ничем. Ранее похожие события происходили с наступлением нового года. В тех случаях помогала простая правка кода, относящегося к выводу дат публикаций. В этом сучае - не помогло.
Старшие товариши категорически настаивали на установке более новой версии движка. Минусы - сыроват, плюсы - защищен. Первое, что пришло в голову - попробовать сделать всё на локальном хостинге. С Денвером я когда-то работал вполне результативно, поэтому сразу сходил на известный сайт. Здесь возникла первая неожиданность. Денвер в связке с пятыми MySQL и PHP отсутствовал. То есть, по частям все модули были доступны. Но настроенной и апробированной системы по типу “всё в одном” не было. Напомню - мои знания скорее соответствуют уровню “пользователь Ворда”, чем “злой админ”. И перспектива установить “кривой” Денвер, а затем, на нём, восстанавливать ещё более “кривой” дамп, была совершенно неприемлема. А вся загвоздка заключалась именно в пятых PHP и MySQL.
Итак, к чему мы пришли после всех этих раздумий? К тому, что перебивать дамп будем сразу на удаленном хостинге, причем из версии движка трехлетней давности в новейшую. Старый движок с базой стоял на основной площадке “мой_сайт.ру”. Далее была создана площадка третьего уровня типа “тест.мой_сайт.ру”. Важно: на этом же хостинге! На эту площадку установлен новый движок с тестовой базой. В которой почти все таблицы были заполнены. Эту базу сохранил в виде файла “*.sql”. С основной площадки также слил дамп. Всё это сделал через “phpMyAdmin” панели управления на хостинге. И дальше работал только в нём.
Процедура сравнения двух баз данных заключалась в сравнении количества таблиц, их имен, а самое главное - количества ячеек в таблицах. Крайне важно, чтобы в старой версии БД ячеек или таблиц не было больше, чем в новой. Иначе в новой придётся создавать недостающие ячейки и таблицы. А это, фактически, означает переписывание движка. К счастью, никаких излишеств в старой базе не нашлось. Более того, все имена совпадали. Пришлось добавить в некоторые таблицы лишь пару новых ячеек.
Примечание: сравнение дампов гораздо удобнее проводить с помощью “phpMyAdmin”, чем в текстовых редакторах. Глазам гораздо проще анализировать картинку. На физическом уровне.
Следующий этап работы заключался в переносе информации из старой БД в новую. Здесь также использовался “phpMyAdmin” и вся работа проводилась на хостинге. Открывалась старая таблица - в одном окне браузера, новая - в другом. Ещё раз сравнивались имена, аттрибуты и прочие цифры-знаки. Старые данные экспортировались без сохранения структуры. И методом “копи-паст” вбивались в ту же таблицу в новой базе. Если не хватало ячеек - вылетало сообщение об ошибке. И тут же вносилась правка. Далее на новом сайте “тест.мой_сайт.ру” открывал соответствующую страницу и проверял содержание.
Первыми перенёс пользователей. Полтысячи человек без единой ошибки. При этом, в старой базе удалил несколько лишних ячеек - в новой они назывались иначе и просто лень стало править. Информация касалась чего-то малозначащего: типа почтового индекса, имени любимой собачки и прочего. Решил, что пользователи не заметят. А если заметят - напишут заново.
Далее перенес форум. И на этом этапе выяснилось следующее: данных так много, что импорт в новую таблицу не укладывается во время, отведённое хостером на выполнение операции. Пришлось разбивать эти данные на части и переносить так. Важно при этом не вырезать нечаянно лишнего. При “тупомоторных” операциях начинаешь путаться в данных уже через полчаса. Желательно держать перед носом листочек и делать на нём “аналоговые” метки. Простой шариковой ручкой. И не торопиться.
В общем, процедура “копировать - вставить” заняла часа три при размере старого дампа в 5 мегабайт. При этом, конечно, треть материала была отброшена за ненадобностью. Такая вот неожиданная польза произошла - а то всё руки не доходили почистить сайт. В конечном итоге, у меня появился сайт по адресу “тест.мой_сайт.ру”, полностью дублирующий проблемную площадку по адресу “мой_сайт.ру”. С одним отличием - на новом сайте всё отображалось правильно, ошибок не было и работал новый движок.
Осталось самое простое и приятное. Импортировал из БД новый дамп тестового сайта “тест.мой_сайт.ру”. Удалил старый движок с адреса “мой_сайт.ру”. Удалил из БД все таблицы старого движка. На основную площадку “мой_сайт.ру” установил по всем правилам новый движок. Экспортировал тот самый новый дамп. Нажал “F5″. И сказал сам себе: всё, теперь я крутой!
На выполнение описанной выше задачи мне понадобились: 5 часов времени, 6 чашек кофе, 6 сигарет “Кэптэн Блэк” и гениальный человек Саша Бурдин. Он не программист. Он обычный провинциальный гений. Благодаря ему, порталу Overdoze.Ru и человеку по имени Censored, вы и прочли эту статью. На вопросы с удовольствием отвечу.

Переход на версии 5 PHP и MySQL: 6 комментариев

  1. mysql-983456

    Если у меня на локальной машине четвертый Мускуль, ВордПресс третий поставится? Или уже лучше не париться и переустановить БД?

  2. admin

    Marusenyka, как таковой её здесь нет. Спрашивайте в комментариях. Будем отвечать. А потом из этих ответов и сделаем постепенно FAQ.

  3. Дексис

    Как поменять версии у себя на компе, локальном? Поставил себе мускуль 5, а вп показывает всё равно что стоит 4. Что делать?

  4. АТЛАНТИС

    О ,е! То что надо. Два месяца уже на локале бьюсь. Бросил к чёрту. Счас прочитал, чтото понятно, ещё не понял что. Сегодня начну опять мучить Мускуля. Добью его всё равно.

  5. dayinfо

    Предлагаем обмен ссылками и статьями с ресурсами близкой тематики.
    Электронная почта написана.

Обсуждение закрыто.