Имеется старенькая система управления контентом, на которой трудятся несколько сайтов еще с 2011 года и вот потребовалось организовать копию одного из сайтов на домене kz.
Конечно, я предлагал сделать домен третьего уровня (kz.сайт.ru) и особо не парится с переносом сайта. Просто подключил ещё один домен к системе управления UMI-CMS 2.8.5, скопировал необходимые страницы, отредактировал часть текстов и радуйся.
Можно было бы конечно и сайт на домене kz подключить к системе управления, но в Казахстане такое законодательство, которое не позволяет сайты на домене kz размещать вне территории Казахстана.
Ошибки при установке системы
Первая проблема возникла на этапе установки на Казахстанский хостинг, о чем я здесь писал:
А дальше всё больше и больше проблем, и главная проблема это строгие настройки на хостинге, которые приходится как-то обходить 😁
Ошибки выгрузки данных
Вторая проблема: Попытка перенести сайт простым способом, через экспорт в формате UMI-DUMP 2.0 (Перенос сайта) ничего не дало, т.к. банально выгрузка не работала и файл не создавался.
Ошибки переноса данных
Третья проблема: Начал переносить по сути в ручную. На новом сайте наделал шаблоны данных или поправил текущие, что бы они соответствовали сайту источнику. Сделал выгрузку в CSV и в этой текстовой таблице исправил все идентификаторы на новые.
И здесь уже исправленный файл выгрузки не понравился новому сайту - то происходила загрузка, но максимум 150 страниц (надо перенести примерно 1 500 страниц), то сразу вылетала ошибка:
По началу думал, что ошибка в самом файле и десятки раз по-разному формировал файл, пытаясь найти ту самую ошибку, но результата это не дало.
Позже тот же файл попробовал на локальном сервере и он залетел вообще без каких либо проблем. Вывод напрашивается сам собой - на хостинге стоит ограничение. То ли на PHP, то ли на MySQL, но помня предыдущее общение, даже не стал обращаться к техподдержке. При этом в логах никаких ошибок нет.
Настройки сервера
Четвертая проблема: Прежде чем попытка с локальным сервером удалась, с ним так же возникла проблема. В модуле обмена данными невозможно было выбрать файл и мне постоянно выскакивала 500 ошибка. Проблему удалось решить только после того, как перелопатил все настройки PHP, Apache, разрешение на папки и прочее.
Оказалось, когда ставил UMI-CMS 24, то установку производил по IP адресу, а позже я решил, что лучше настрою доменное имя для этого сайта. После работать начал через доменное имя, но в качестве зеркала в UMI-CMS это доменное имя не указал. Вот и получал 500 ошибку.
Ошибки в работе макросов
Пятая проблема: Так как вся выгрузка без проблем залетела на новый сайт, хоть и на локальном сервере, то решил, что дальше буду делать сайт именно на нём, а потом просто перенесу файлы и дамп базы данных.
Так как все шаблоны данных были уже настроены на новом сайте, то с нового сайта просто перенес базу данных на локальный сервер и всё заработало и я начал потихоньку переносить шаблоны сайта.
Приступил к переносу шаблонов сайта, которые сделаны с помощью TPL, но возникла проблема - часть страницы просто не отображалось, а ошибок UMI-CMS не показывал, даже в логах. Хотя в настройках четко указано, что ошибки должны показываться.
В одном месте вместо результата отработки TPL макроса отображалось "0", а в другом месте вообще ничего. Было ощущение, что макросы не отрабатываются.
Помучавшись с шаблонами и так ничего не добившись, полез менять настройки PHP - PHP 8.3 работал как модуль Apache. Я поменял на FastCGI и ошибки PHP полезли, как из рога изобилия
Сразу оговорюсь. LAMP у меня настроен с помощью панели управления хостингом Fastpanel - очень даже удобно. Все настройки меняются в пару кликов.
И все ошибки, которые полезли, говорили о том, что в одном макросе (%system getOuterContent()%) я не правильно указал путь до шаблона, а другой в UMI-CMS просто убрали, заменив его на новый. Соответственно я прописал правильный путь в одном макросе, а другой заменил на новый - благо заменить нужно было только одно слово.
%catalog getObjectsList()% был заменен на %catalog getSmartCatalog()% - при этом все параметры макроса остались прежними.
Ошибки в работе самописных макросов
Шестая проблема: Перестали работать некоторые макросы, которые написаны либо мной, либо взяты с сайта WIKI от UMI-CMS. К примеру перестала работать функция, которая преобразовывала цену с такого вида 123456 на такой 123 456,00. Но, оказалось, всё просто - надо просто перенести код функции в новое расположение и всё заработало. Главное не забыть про файл permissions.custom.php, иначе будет работать только у админа 😁
Перенос файлов картинок и документов со старого сайта на новый
Седьмая проблема: Так как новый сайт содержит только часть информации со старого сайта, то и файлов картинок там меньше. Конечно проще было скопировать абсолютно все 10Gb накопившихся за 14 лет работы, но желание перенести только нужное пересилило меня.
И мне пришлось написать быстренько обработку в 1С (да, в 1С тоже можно написать обработки текстов и получить нужный результат), которая пробежится по CSV файлу выгрузки и вытащит все пути на файлы, а далее дело техники и в итоге осталось всего 300 Mb файлов.
Последний этап. Загрузка базы данных на хостинг.
Здесь всё прошло без каких либо проблем. Сначала делается дамп базы данных на локальном сервере с помощью phpMyAdmin, а потом с помощью этой же программы, но на хостинге провайдера загружается дамп в базу данных.
Главное не забыть потом поправить таблицу cms3_domains, где прописать доменное имя нового сайта.
В итоге получилось перенести сайт с UMI-CMS 2.8.5 2011 года выпуска на современную версию данной системы управления. И если бы не строгость хостинга, то сайт перенёсся гораздо быстрее. С другой стороны, абсолютная копия сайта на локальном сервере так же пригодится.