Переносим WordPress на другой хостинг или на новый домен без ошибок и неприятных последствий. Если вы уже сталкивались с этой задачей, и после не работают ссылки, или вместо страницы открывается белый экран, вы явно сделали что-то не так. Ниже будет подробная инструкция, как сделать всё правильно и избежать грубых ошибок.
Создаём резервную копию файлов сайтаДля создания бекапа (резервной копии) сайта на WordPress можно пойти несколькими путями
Про первый вариант ничего не скажу, не пользуюсь им, но если нужно сделать обзор, напишите в комментариях.
Ещё хочу добавить про плагины — они могут не до конца запаковать все файлы. Я, например, сталкивался с тем, что UpdraftPlus WordPress Backup Plugin не до конца сбекапил базу данных, пропустив кастомную таблицу (у неё префикс отличался от остальных). Поэтому, при переносе базы данных я рекомендую пользоваться старыми добрыми phpMyAdmin или Adminer.
Во втором случае, если ваш хостер предоставляет панель управления, в ней, наверняка, есть менеджер файлов. Тогда самым простым будет воспользоваться им для создания бекапа файлов сайта. Думаю, тут вы тоже сможете разобраться самостоятельно. Или, в крайнем случае, обратитесь за помощью в службу поддержки.
Как создать архив с файлами сайтаВо втором случае, допустим, ваш сайт располагается в директории /var/www/сайт
Авторизуетесь в вашем хостинге с помощью или иного другого файлового или консольного менеджера (например, putty) по , переходите в раздел /var/www/ вводите команду
Tar czvf backup.tar.gz сайт
где сайт — это директория, в которой содержится ваш сайт.
В результате, увидите файл backup.tag.gz . Его надо скачать, в нём содержится архив файлов вашего сайта
Также, хорошие хостеры позволяют создавать архивы с бекапами сайтов прямо из панели управления, вы можете уточнить про эту возможность в службе технической поддержки.
На худой конец, просто скопируйте файлы сайта к себе через ftp или , однако, этот вариант крайне неудобен и нежелателен, ибо долог.
Для создания бекапа mysql базы данных можно
Первый случай также не рассматриваю, ибо не пользуюсь. Если нужен обзор — напишите в комментариях.
На выходе на скачивание получаем файл wptest.sql.gz , где wptest
— название нашей базы данных.
Если у вас нет доступа к phpMyAdmin, вы можете создать дамп базы данных через консоль с помощью утилиты mysqldump
.
Допустим, для доступа к базе данных у нас такие параметры: логин: root , пароль: pass , название базы данных sheensay_database .
Авторизуемся на хостинг через ssh и в консоль записываем
Mysqldump sheensay_database -uroot -ppass | gzip > db.sql.gz
На выходе получится файл db.sql.gz , в котором содержится дамп(упакованный бекап) базы данных
Можно упростить создание бекапа базы данных, если использовать
Для создания бекапа достаточно 1 команды (если под рутом, добавляете ключ --allow-root):
Wp db export
А чтобы развернуть дамп из бекапа, можно использовать похожую команду:
Wp db import db.sql
где db.sql — имя дампа базы данных.
Сжать db.sql можно комадной:
Gzip db.sql
А распаковать обратно:
Gunzip db.sql.gz
Перенос с локального сервера на хостингИтак, мы имеем 2 файла с бекапами нашего сайта: backup.tar.gz — с файлами сайта, и wptest.tar.gz — с дампом базы данных. Если мы будем переносить наш сайт с денвера (или иного локального сервера) на хостинг, по сути, ничего не поменяется, разве что архив с файлами сайта нужно будет собрать штатным архиватором (тот же с помощью Shift + F1 на нужной папке с файлами прекрасно с этим справляется). Так же можно перенести сайт обратно на Денвер или любой другой хостинг, поэтому направление переноса не имеет значения.
На локальном хостинге (Денвере/Denwer, Open Server) не забывайте отключать плагины кеширования ( , W3 Total Cache, WP Rocket и подобные) и безопасности (Wordfence, All In One WP Security & Firewall и т.п.), они будут мешать работе. Если не получается отключить плагины через админку, удалите их директории вручную, это хоть и грубый, но весьма действенный метод.
Перенос файлов сайтаДля начала, перенесём файлы сайта. Если возможно, делаем это с помощью файлового менеджера: и закачиваем backup.tar.gz в нужную директорию.
Архив с файлами сайта нужно залить именно на тот уровень иерархии, с которого он создавался. В нашем случае, нужно заливать в /var/www/
Впрочем, при возникновении трудностей для исправления ситуации можно воспользоваться UNIX-командой
Распаковку производим с помощью команды
Tar xfvz backup.tar.gz
Если у вас VDS/VPS, после переноса файлов не забудьте установить правильных файлов и директорий, а также к ним.
Перенос базы данныхТеперь переходим в phpMyAdmin нового хостинга и импортируем дамп нашей базы данных
База данных на новом хостинге должна уже существовать и быть пустой, то есть готовой для принятия нашего дампа
Всё, импорт на этом почти завершён. Осталось подключить сайт к базе данных.
Для этого находим в корне сайта файл wp-config.php и записываем туда данные, предоставленные хостингом
Если во время переноса WordPress вам понадобится изменить домен, не лезьте в базу данных менять что-либо вручную, так как есть риск переломать сериализованные строки.
Лучше воспользуйтесь одним из нижеперечисленных вариантов:
Самый простой вариант — прописать домен в wp-config.php
Способ не идеальный (иногда некоторые плагины могут работают некорректно, пока не изменить домен и в базе данных тоже), но самый простой и быстрый.
Итак, находим в корне сайта, редактируем wp-config.php . Желательно найти define("WP_DEBUG", false); и прописать над или под ним:
define("WP_DEBUG", false);
// example.com заменяем на свой домен
define("WP_HOME", "http://example.com");
define("WP_SITEURL", "http://example.com");
Вариант для любителей — пользуемся
Для безопасного внесения изменений в базу данных WordPress можно воспользоваться
Утилитой можно воспользоваться не только для изменения имени домена в базе данных. Она может помочь при внесении других правок, при необходимости, сделав это аккуратно и сохранив структуру данных.
По окончанию работ директорию со скриптами лучше всего удалить для безопасности. Советую удалять не с помощью кнопки delete me , а вручную через FTP или .
Допустим, сайт перенесён с домена example.org на example.com
В.htaccess в корне сайта прописываем:
RewriteEngine on RewriteCond %{REQUEST_FILENAME} robots.txt$ RewriteRule ^([^/]+) $1 [L] RewriteCond %{HTTP_HOST} ^(www\.)?example\.org RewriteRule ^(.*)$ http://example.com/$1
А вот пример, когда к смене домена добавляется переезд с на :
RewriteEngine on RewriteCond %{REQUEST_FILENAME} robots.txt$ RewriteRule ^([^/]+) $1 [L] RewriteCond %{HTTP_HOST} ^(www\.)?example\.org RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^(.*)$ https://example.com/$1
Или универсальный вариант:
RewriteEngine On RewriteCond %{REQUEST_FILENAME} robots.txt$ RewriteRule ^([^/]+) $1 [L] RewriteCond %{HTTPS} off RewriteCond %{HTTP_HOST} ^www\. RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ RewriteRule ^ https://%1%{REQUEST_URI}
И последнее: в robots.txt в корне сайта прописываем (если файла не сущестувует, создаём):
User-agent: * Disallow: Host: example.com Sitemap: http://example.com/sitemap.xml
Около 17% веб сайтов построены на WordPress платформе. Эта CMS набирает популярность в кругах большинства разработчиков. Как же быть с уже существующими сайтами, на других движках или вообще без них? Значит ли это, что перенос сайта на wordpress платформу займет массу времени, усилий и денег? Или нужно вообще все начать заново?
Перенос сайта на WordPress на самом деле легче нежели вы можете представить. В этой статье мы рассмотрим процесс переезда сайта шаг за шагом, на реальном примере. Постараемся охватить и обсудить все существующие с этим проблемы.
Основные шагиВот главные моменты, которые нельзя упустить при миграции сайта на WordPress:
Это базовый план переноса сайта на новую платформу. Теперь рассмотрим каждый из этапов подробнее.
Начните с планаКлючевой момент успешного переезда сайта - оценка существующего веб проекта. Вам надо осмыслить, как импортировать и структурировать контент в WordPress. Основные моменты переноса сайтов не меняются, вся сложность в деталях, которые специфичны для каждого проекта.
Ниже список вопросов, которыми надо руководствоваться при оценке контента:
- Сколько контента должно быть импортировано? Количество страниц, изображений и т.д.
- Возможно, импортировать контент вручную? Или надо использовать инструмент?
- Если использовать инструмент, существует ли он?
- Можно ли организовать контент в «постах» и «страницах», или он отличается от стандартных типов?
- Нужно ли переносить дополнительные элементы контента (поля ввода, примеры, видео и т.д.)?
- Поменяется ли структура URL? Если да, то надо не забыть о редиректе со старых страниц на новые.
- Открыт ли контент для общего доступа? Или существуют страницы только для зарегистрированных пользователей?
Перед тем как перенести контент, нужно подготовить wordpress. Если Вы только экспериментируете, . В ином случае, надо это сделать на хостинге.
Когда WordPress установлен, можно действовать!
Настройка URL
Перейдите в Settings -> Permalinks для внесения изменений. В большинстве случаев, ссылки лучше хранить в виде названия поста.
Аккаунты пользователей
Если на вашем сайте были зарегистрированы пользователи, необходимо создать для них аккаунты в установленном wordpress. После окончания переноса сайта, будет хорошо сообщить пользователям об этом по email.
Необходимые плагины
Плагины подбираются под конкретные нужды сайта (контактная форма, слайдер контента, галерея, социальные закладки и т.д.). Вот официальная директория плагинов . Единственное, обратите внимание на организацию резервного копирования данных (backup).
Импорт контента в платформу WordPressЭто рутинная и ответственная работа!
Если ваш старый сайт использовал CMS, возможен вариант автоматического импорта контента. Пересмотрите список скриптов позволяющих сделать это . Следуйте инструкциям и сделайте это!
Если ваша старая CMS не в списке, или сайт самописный, с количеством страниц не более 100, тогда лучше всего сделать все вручную. Копируйте и вставляйте контент, записывая перенесенные url страниц.
Если в вашем распоряжении база данных с контентом в несколько тысяч, тогда придется позаботиться о специалисте. Или найти решение для автоматического импорта.
Перенос дизайна сайтаЕсли вам не так критичен новый дизайн, можно просто подобрать существующую тему. Или подкорректировать стандартную (заменить логотип, футер и поменять цветовую гамму).
В случае переноса раскрученного и узнаваемого пользователями сайта, лучше всего сохранить дизайн прежним.
Работаем с исходным кодомНа собственном опыте, лучше всего работать с исходным кодом в браузере. Если брать файлы с хостинга, можно сделать множество ошибок. В браузере мы видим сайт таким, каким видят его пользователи.
В Google Chrome это делается так: Меню -> Инструменты -> Исходный код, или нажатие правой кнопки мыши для вызова контекстного меню.
Создание темы Файл стилейПервым шагом в создании темы будет копирование существующих стилей в файл стилей wordpress темы: style.css
Для этого достаточно открыть этот файл для редактирования, поменять информацию о теме (закомментированная в начале файла), вставить стили со старого сайта.
НЕ забудьте о url картинок! Вероятнее всего они поменяются в связи с новой структурой папок. Поэтому внимательно следите за этим как в файле стилей, так и в теме соответственно.
Шапка (Header) сайтаСледующим шагом будет создание верхушки сайта. Здесь надо объединить структуру текущего html кода с кодом WordPress шаблона. В нашем примере, мы будем действовать так:
- Продублируем HTML структуру старого сайта
- Заменим статическое меню на WordPress меню
- Используем WordPress title тег и оставим wp_head крючок.
- Сделаем слияние других релевантных тегов из старой шапки сайта.
Рассмотрим код!
Старый HTML код шапки
Vegan Food Pyramid posters, postcards and wallpapers Vegan Food Pyramid
Новый код шапки (HEADER. PHP)
try{Typekit.load();}catch(e){}
Рассмотрим все что мы сделали!
Убедитесь что перенесли старый doctype . В ином случае, использование нового HTML5 doctype для кода старых спецификаций, может вызывать перебои в работе шаблона (особенно в старых браузерах).
Мета теги
Как правило переносятся все основные теги. Исключением в нашем случае является подключение файла стилей, которое вставляется автоматически с помощью wp_enqueue_style в файле functions.php
Скрипты
Со скриптами могут возникать трудности. Если скрипт подключен на каждую страницу сайта (например, главный файл скриптов или скрипт шрифта), тогда можно смело прописать его в header или footer темы. Если необходимо подключить только на определенной странице, тогда можно использовать условные теги . Лучим способом будет зарегистрировать все скрипты и добавить их с помощью wp_enqueue_script .
Вставьте внизу тега. WordPress использует это для подключения собственных скриптов и стилей темы. Также для установленных плагинов. Без wp_head, большинство фронт-энд плагинов не будут работать.
body_class
Заметьте применение нашего тега. WordPress использует его для предоставления серии полезных классов для тега. Эти классы вставляются в зависимости от типа страницы автоматически.
WordPress меню
Вывод WordPress меню, это одно из самых сложных заданий при переносе сайта на этот движок. В нашем примере, мы имеем меню с простой разметкой, которая использует active класс (сгенерированный с помощью PHP), для определения просматриваемой страницы. Функция wp_nav_menu очень гибкая и предоставляет множество встроенных решений для организации меню. В примере, мы взяли стили с active класса и поместили их в эквивалентный wordpress класс current-menu-item.
Подвал (Footer) сайтаКак правило в подвале сайта меньше всего изменяется. Все так, как в случае с шапкой сайта. Сделаем слияние HTML кода.
Старый HTML код футера
© 2013 VeganFoodPyramid.com
Новый код футера (FOOTER. PHP)
© VeganFoodPyramid.com
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); document.write(unescape("%3Cscript + gaJsHost + "google-analytics.com/ga.js" type="text/javascript"%3E%3C/script%3E")); try { var pageTracker = _gat._getTracker("UA-6992755-1"); pageTracker._trackPageview(); } catch(err) {}Некоторые из футеров сложно перенести на wordpress тему. Например, которые содержат меню и разные виджеты. Большинство из футеров простые, как в нашем примере. Главное не забудьте вставить тег перед тегом.
Главная страницаСделать работу можно разными способами. Главная страница яркий пример этому, так как она отличается от остальной структуры веб сайта. В нашем примере, мы полностью встроим главную страницу в шаблон WordPress. Любые изменения можно будет сделать позже.
Старый код главной страницы
Poster $30 each Buy Postcards $50 for 50
Includes free shipping worldwide
BuyНовый код главной страницы (/page-templates/front-page.php)
/images/Vegan-Food-Pyramid-New.jpg">