С какими проблемами можно столкнуться после переноса сайта на Wordpress на новый хостинг?

Автор: Беляев Александр
Сайт Автора: wm-help.net
E-mail Автора: admin@wm-help.net
Дата написания: 21.04.2021

Переезд на другой хостинг – важный шаг в жизни любого сайта. Обычно, это несложный процесс, который включает в себя несколько этапов:

  • Бэкап файлов
  • Бэкап базы данных
  • Копирование и разархивирование файлов
  • Импорт базы данных
  • Изменение параметров доступа к БД в файле «wp-config.php» для сайта на Wordpress

В большинстве случаев всё проходит гладко, но иногда могут возникнуть проблемы, о которых мы расскажем в этой статье.

Отсутствие файла «.htaccess»

Сайт на Вордпрессе не будет работать, если после процесса переноса в корневой папке нет файла конфигурации сервера «.htaccess». Такое может быть, если вы архивировали не саму папку с сайтом, например, «public_html» или «www», а выделяли файлы и каталоги внутри папки. Хотя, так удобнее распаковывать архив, но если в файловом менеджере на хостинге присутствует функция скрытия системных файлов, то «.htaccess» не попадёт в архив.

Перед архивированием файлов сайта проверьте, есть ли такая галочка, например, в панели управления сайтами cPanel она находится в «Настройки – Показать скрытые файлы (dotfiles)»

Либо, можно вручную скопировать файл со старого на новый хостинг. Обратите внимание, что эта проблема актуальна только для хостингов с веб-сервером Apache или Lite Speed. Хостинги на nGinx используют другой конфигурационный файл.

Ошибка «Error establishing a database connection»

Большинство проблем при переносе сайта на новый хостинг связаны с ошибками базы данных. Сообщение в браузере «Error establishing a database connection» означает, что вы забыли изменить файл «wp-config.php» в корне сайта, или сделали что-то не так. В «wp-config.php», помимо всего прочего, прописаны: имя базы данных, префикс таблиц, логин и пароль пользователя БД MySQL.

На новом хостинге вы создаёте новую базу данных и нового пользователя. Эти данные нужно изменить в строчках кода:

  • define('DB_NAME', 'имя базы данных');
  • define('DB_USER', 'логин пользователя MySQL');
  • define('DB_PASSWORD', 'пароль');
  • define('DB_HOST', 'localhost');

В редких случаях требуется указать домен или IP-сервера баз данных, но в 99% подходит значение по умолчанию «localhost». Правильный сервер нужно уточнить в техподдержке.

Открылась страница с установкой WordPress

При входе на сайт, вместо него появляется приветствие Wordpress с предложением начать новую установку движка. Это означает, что CMS не смогла считать информацию о текущей установке. Скорее всего, что-то сделали не так во время импорта БД. Может быть, импортировали базу в уже существующую БД на сервере. Лучше всего создать новую БД и заново импортировать.

Попробуйте разные варианты экспорта/импорта базы данных: с помощью инструмента phpMyAdmin и встроенными функциями панели управления хостинга «Выгрузить/Загрузить». Быстрее будет обратиться в техподдержку хостинга. Любой нормальный хостинг поможет справиться с ошибкой или сами перенесут сайт так, что вам ничего не нужно будет делать, на этом ресурсе размещен список сервисов с грамотной технической поддержкой. Не стоит переживать, что технический специалист не сможет справиться с задачей, ведь у него уже есть опыт переноса сотен других сайтов на WP и других CMS.

Страница приветствия хостинга

Когда мы переносим домен на обслуживание к новому хостингу, при его открытии в браузере мы увидим стандартную заглушку, типа «Приветствуем, это новый сайт!». Если же такое приветствие продолжает красоваться даже после переноса файлов со старого хостинга, то это означает лишь одно – в корне сайта остался HTML-файл страницы заглушки.

Решение проблемы очень простое: просто удалите файл «index.html» в корне сайта. Чтобы впредь не сталкиваться с такой проблемой в дальнейшем, перед переносом файлов со старого хостинга рекомендуется очищать корневой каталог сайта на хостинге.

Ошибка «Forbidden. You don't have permission to access on this server»

Если браузер сообщает подобную ошибку, то вероятно вы залили файлы не в ту папку на сервере. Убедитесь, что в файлы со старого хостинга распакованы в корневую папку, которая может называться «public_html», «www», «httpdocs» или по домену сайта, в зависимости от хостинга. Эта папка не обязательно будет совпадать с такой на старом хостинге. Точное название и расположение лучше уточнить в техподдержке.

Также убедитесь, что файлы сайта находятся сразу в этой папке, а не в подпапке. Такое может быть, если вы разархивировали архив со старого хостинга так, что образовалась подпапка, например, «public_html/www/файлы_сайта». Если так, то с помощью файлового менеджера на хостинге нужно перенести содержимое папки «www» на один уровень выше, т.е. в папку «public_html», а пустую папку «www» удалите.

Проблемы с импортом базы данных

В большинстве случаев работает простой экспорт БД в инструменте phpMyAdmin на старом хостинге и импорт - на новом. Но если различается версия или настройки серверных скриптов MySQL или mariaDB, то импорт закончится с многочисленными ошибками.

Ошибки бывают самые разные, и вариантов решения тут три:

  • Обратиться в техподдержку хостинга.
  • Гуглить каждую ошибку и пытаться исправить самостоятельно. Выгрузка базы данных – это текстовый файл, который можно править в обычном блокноте. Как правило, исправление одной ошибки сменяется новыми.
  • Экспортировать только данные и «натянуть» их на готовую структуру.

О последнем способе расскажем подробнее. Суть проблемы в том, что неправильно импортируется структура, скелет базы данных: описание таблиц и полей. Это отлично понимают те, кто сталкивался с разработкой баз данных на любом языке.

Для решения проблемы нужно всё удалить с нового хостинга и начать заново, но другим путём. Сначала установите чистый Wordpress такой же версии. В процессе новой установки обязательно установите такой же префикс таблиц, который был на старом хостинге. Текущий префикс прописан в файле «wp-config.php» в строке: «$table_prefix = 'префикс'».

Далее, установите все те плагины той же версии, которые есть на вашем сайте. Чтобы не искать прежние версии плагинов, достаточно скопировать папку «wp-content/plugins» на новый хостинг и активировать каждый плагин. Это необходимо для того, чтобы те плагины, которые создают новые таблицы, сделали это. Теперь у нас есть такая же структура БД, как на оригинальном сайте.

Не помешает пройтись глазами по структуре БД на старом и новом хостингах и сравнить, всё ли совпадает. Теперь нужно очистить данные таблиц, для этого выделите все таблицы и действие «Очистить», нажмите «Вперёд». В итоге получилась чистая структура без ошибок.

Старую БД нужно экспортировать особым образом в phpMyAdmin:

  • Поменяйте режим на «Обычный» чтобы отобразились все настройки
  • Снимите все галочки в колонке «Структура»
  • Если такой таблички нет, то установите переключатель «Только данные»

Важно, чтобы выгрузились только данные, без структуры таблиц и полей, т.к. они уже есть. Вот этот получившийся дамп базы данных импортируем на новом хостинге обычным способом во вкладке «Импорт».

Чтобы проверить работоспособность сайта на новом хостинге до изменения NS-записей домена, воспользуйтесь простым трюком:

  • В Windows найдите файл «C:\Windows\System32\drivers\etc\hosts»
  • Добавьте в конец файла строчку вида «IP_адрес_хостинга имя_домена» и сохраните
  • Нажмите «Win+R» и впишите команду «ipconfig /flushdns»

Теперь сайт будет открываться на вашем компьютере с нового хостинга. Потом не забудьте удалить эту строчку из файла «hosts».

Источник: https://wm-help.net/my-articles/article/wordpress-problems-21-04-2021.htmPage copy protected against web site content infringement by Copyscape
Перепечатка данной статьи разрешается только при письменном(e-mail) разрешении автора (Беляева Александра Дмитриевича) и при полном сохранении исходного вида статьи (ссылки, авторские реферальные ссылки, e-mail'ы, форматирование текста, ...), а так же указания точных данных об авторстве (данные автора + прямая [без редиректа и не закрытая от индексации] ссылка на статью).
В случае не выполнения данных правил, возможно применение «особых» мер, к нарушителям.