Перенести сайт на wordpress


Иногда может возникнуть ситуация, когда необходимо сайт, работающий на движке WordPress, перенести на новый домен. Т.е. суть данного действа заключается только в изменении имени домена, все содержимое же, равно как и структура ссылок, остается прежним. При этом не маловажный момент — сохранение показателей тИЦ и PR.

К данному вопросу необходимо подходить с полным пониманием дела, ибо обратное может быть чревато неприятными последствиями.

Процесс переноса можно условно разделить на 2 части:

  1. Перенос сайта, работающего на движке WordPress, на новый домен.
  2. Создание 301 редиректа со старого домена на новый.

Перенос сайта, работающего на движке WordPress, на новый домен

В самую первую очередь необходимо сделать 2 вещи:

  • скопировать все фтп-файлы со старого домена на новый;
  • обязательно создать резервную копию базы данных сайта, чтобы в случае чего можно было сделать откат.

Дальнейшие действия могут выполняться одним из трех нижеследующих способов.

Первый способ

Это самый простой способ, требующий от вас минимум действий.

  1. Зайдите в админ-панель вашего сайта на страницу «Настройки — Общие».
  2. В полях «Адрес WordPress» и «Адрес сайта» укажите URL нового домена и подтвердите изменения, нажав на кнопку «Сохранить изменения».
  3. Готово. В тот же момент WordPress переадресует вас на страницу входа в админ-интерфейс, но уже на новом домене.

Второй способ

  1. Откройте сохраненный sql-дамп базы данных в текстовом или PHP редакторе.
  2. Замените все вхождения старого адреса сайта на новый адрес, например, http://domain.ru заменить на http://newdomain.ru, и сохраните изменения.
  3. Загрузите дамп в базу данных на сервере, предварительно удалив из нее все имеющиеся таблицы.
  4. Готово. Сайт на WordPress работает по новому адресу.

Третий способ

  1. Зайдите в phpMyAdmin и выберите базу данных.
  2. Нажмите на вкладку «SQL» и поочередно выполните следующие 3 запроса, заменив http://domain.ru и http://newdomain.ru соответственно на старый и новый адреса сайта (обратите внимание, что в конце адреса не должно быть слеша):

  3. Готово. Теперь сайт будет открываться по новому адресу.

Создание 301 редиректа со старого домена на новый

Остается добиться того, чтобы при обращении к любой странице сайта по старому адресу посетитель автоматически перенаправлялся на ту же самую страницу в новом домене.

Для этого необходимо заменить содержимое файла .htaccess, находящегося в корне старого домена, на следующее (вместо newdomain.ru указывается новый домен):

На этом процедуру переноса WordPress-сайта на новый домен можно считать законченной.

Теперь несколько слов относительно сохранения показателей тИЦ и PR сайта.

Вышеуказанная директива кроме своего прямого назначения позволяет перенести на новый домен показатель Google PR, так что с ПиАром проблем возникнуть не должно.

Однако открытым для меня остается вопрос переноса показателя тИЦ Яндекса. Я прочитал по этому поводу достаточно информации, но так и не нашел однозначного решения. В основном рекомендуют на старом домене создать файл robots.txt с указанием параметра Host: newdomain.ru, на это не сработает из-за 301-го редиректа.

Я был бы признателен тому, кто разъяснит мне данный вопрос.

Добавлено 24.04.2010


Сам нашел ответ на свой вопрос. Чтобы при обращении к старому домену срабатывал 301-редирект, но за исключением файла robots.txt, в файле .htaccess старого домена нужно указать следующее:

А в файле robots.txt указать следующее:

dimox.name

Что мы будем использовать?

Несмотря на то что WordPress — это популярный движок и для него существует не только встроенная возможность переноса базы данных на другой сервер, но и огромное количество плагинов для этого, я не рекомендую их использовать. На своем опыте я убедился, что при использовании стандартного экспорта-импорта почему-то теряется множество картинок и потом нужно их восстанавливать. На losst еще до сих пор остались статьи с битыми картинками с тех времен. Мы будем делать все вручную с помощью таких инструментов:

  • ssh;
  • mysql;
  • rsync;

Этого будет вполне достаточно, если вы менее опытный пользователь, то сюда можно добавить еще два инструмента:

  • phpmyadmin;
  • клиент ftp;

Упор я делаю на VPS, рассчитывая на то, что у вас есть доступ к серверу по SSH. Но эта инструкция может быть использована чтобы выполнить перенос сайта на Wordpres на другой хостинг. Большинство современных хостингов дают доступ к ssh консоли хотя бы в html интерфейсе.

Подготовка к переносу WordPress

Первое на что нужно обратить внимание, и желательно, при регистрации хостинга, это DNS. Нам нужно чтобы пользователи ничего не заметили. А поэтому сервера имен не должны меняться. Лучше всего, если ваши сервера имен будут у регистратора доменных имен и он же будет управлять доменной зоной.


Если же вы используете сервера имен вашего хостинга, то при передаче управления на другой хостинг сайт будет недоступен несколько часов. Поэтому сервера имен передайте регистратору, даже если сейчас они у вашего хостинга, а пользователей направляйте на ip сервера с помощью A записи.

Перенос сайта WordPress

Сначала нам нужно перенести все файлы сайта на другой сервер. Конечно, вы можете использовать для этого FTP клиент, сначала скачать все файлы по одному с одного сервера, а потом загрузить по одному на другой. Но это сработает, только если у вас немного файлов. С сайтом в несколько гигабайт это может занять дни. Поэтому будем использовать более простой способ через SSH. Подключитесь к вашему серверу по SSH:

ssh root@address1

Перенести сайт на wordpress

Обычно для переноса сайтов рекомендуется использовать tar, но это тоже не вариант, если на вашем хостинге недостаточно места для создания архива, поэтому оптимальный ответ на вопрос как скопировать сайт wordpress — использовать rsync:

rsync -avz -e ssh /папка/с/файлами/сайта root@address2:/папка/для/файлов/сайта/


Перенести сайт на wordpress

Естественно, что папка для файлов сайта должна уже существовать. Дальше, на этом сервере нам нужно создать резервную копию базы данных, для наших целей этой команды будет вполне достаточно:

mysqldump -u root -p имя_базы > dump.sql

Если у вас большая база данных, то выполнение может занять несколько минут. Осталось передать базу на другой сервер, кладем ее в домашний каталог:

rsync -avz -e ssh dump.sql root@address2:~/

Если ваш сайт использует https, то нужно передать на новый сервер сертификаты, пока вы не подключите домен и не создадите новые:

rsync -avz -e ssh /путь/к/сертификату/site.pem root@address2:~/
rsync -avz -e ssh /путь/к/сертификату/site.key root@address2:~/

Дальше нам останется выполнить еще несколько настроек на этом сервере, но сначала нужно развернуть все на другом. Я предполагаю, что сервер уже настроен, веб-сервер и система управления базами данных установлены и работают. Подключаемся к нему по SSH:

ssh root@address2

Сначала файлы. Утилита rsync сохранит владельца файла из предыдущего сервера или сделает им root. А нам нужно чтобы файлы сайта принадлежали тому пользователю, от имени которого запущен Nginx и php-fpm или Apache. Посмотрите группу и пользователя, от которых они запущены:


Перенести сайт на wordpress

Затем поменяйте текущего пользователя и группу всех файлов сайта на нужные с помощью утилиты chown:

chown -R losst:losst /путь/к/файлам/сайта/

Перенести сайт на wordpress

Флаг -R включает рекурсивную обработку всех файлов, первый параметр — пользователь, второй, через двоеточие — группа. Дальше мы готовы перейти к базе данных. Сначала нужно создать нашу базу и создать пользователя, с помощью которого WordPress будет к ней подключаться. Для этого войдите в интерфейс mysql:

mysql

> CREATE DATABASE имя_базы_данных;
> CREATE USER 'имя_пользователя'@'%' IDENTIFIED BY 'пароль';
> GRANT ALL PRIVILEGES ON 'имя_базы_данных' . * TO 'имя_пользователя'@'localhost';
> GRANT ALL PRIVILEGES ON 'имя_базы_данных' . * TO 'имя_пользователя'@'address1';
> FLUSH PRIVILEGES;

С помощью этих команд мы создаем новую базу, затем пользователя, даем ему права делать с ней все что он захочет, если он подключен с localhost или сервера с ip address1, а последней командой обновляем таблицу привилегий. Нам осталось только загрузить информацию в базу:

mysql -u root имя_базы_данных < dump.sql


В принципе, для создания базы, пользователя и ее разворачивания можно было использовать Phpmyadmin, но в консоли все проще. Дальше нам осталось отредактировать файл wp-config и указать новые параметры доступа к базе:

vi /путь/к/файлам/сайта/wp-config.php

define('DB_NAME', 'имя_базы_данных');
/** MySQL database username */
define('DB_USER', 'имя_пользователя');
/** MySQL database password */
define('DB_PASSWORD', пароль');
/** MySQL hostname */
define('DB_HOST', 'localhost');

Перенести сайт на wordpress

Если хотите использовать HTTPS, то укажите путь к переданным сертификатам в конфигурации Nginx или Apache. Вы уже знаете как перенести wordpress, осталось только протестировать. Теперь возвращаемся на ваш локальный компьютер и добавляем в файл /etc/hosts псевдоним вашего домена, который будет указывать на новый адрес. В Windows тоже есть этот файл, но только находится он по другому адресу:

vi /etc/hosts


address2 ваш_домен.ru

Перенести сайт на wordpress

Дальше открываем сайт в браузере, убеждаемся, что это именно новая версия и кэш DNS обновился, затем проверяем как все работает, если все хорошо, то можно перенаправлять A запись регистратора на этот, новый ip адрес:

Перенести сайт на wordpress

Доменная зона обновится не мгновенно, на это потребуется довольно много времени, до нескольких дней. Все это время некоторые пользователи будут обращаться к старому серверу чтобы он выдавал новые страницы нужно подключить сюда базу данных. Помните, мы разрешили подключаться к нашей базе от этого сервера, теперь просто укажите на старом сервере address1 в wp-config.php данные доступа и адрес сервера address2 вместо localhost. Готово. Теперь ваш сайт перенесен. Осталось дождаться полного обновления доменной зоны и можно выключать первый сервер. Не забудьте обновить SSL сертификаты, если их использовали.

Выводы

В этой статье мы рассмотрели как выполняется перенос сайта WordPress. Как видите, это довольно трудоемкий процесс, но если подойти к нему грамотно, то можно сделать все достаточно просто и без лишних проблем для пользователей и для себя. Надеюсь, эта информация была полезной для вас.


losst.ru

Подготовительная работа

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

Предварительные работы:

Предварительные работы

  • необходимо провести изучение всех элементов сайта, оценить имеющуюся навигацию для дальнейшего дублирования на новой платформе;
  • проверить контент, сделать аудит и выявить некачественные материалы;
  • выявить все недочеты, которые тормозили работу текущего ресурса или негативно влияли на его продвижение;
  • познакомиться с системой WordPress, если нет опыта работы с ней.

Установка WordPress

Все операции рекомендуется проводить на локальном сервере: это обеспечит беспрерывную работу площадки на хостинге, пока проходит конвертация всех элементов. Можно использовать популярную программу Open Server, которая имеет все необходимые инструменты для создания веб-ресурса, базы данных, работы с консолью и конверторами. Такая схема позволит безопасно перенести HTML сайт на WordPress.


На официальной страницу скачиваем движок, распаковываем и загружаем в «/domains/newsite», размещенную в директории программы Open Server. В контекстном меню, заходим в PhpMyAdmin для создания базы данных и пользователя. Вводиться логин – root, пароль отсутствует. Вход в интерфейс выполнен, необходимо перейти во вкладку «Пользователи» и добавить нового. Заполняются все необходимые поля, параметры входа и привилегии (устанавливаются все галочки).

После этого, информация базы данных переносится в соответствующие строки кода файла «wp-config-sample.php» корневой папки движка. Информация внесена, файл сохраняется и переименовывается в «wp-config.php». Далее осуществляется установка CMS: в браузере вводиться название локального домена – «newsite». Загрузиться скрипт установки платформы – все данные заполняются и подтверждаются. Все готово, для входа в консоль следует перейти по ссылке: «newsite/wp-login.php».

Тема и плагины

Текущий этап подразумевает установку и настройку всех необходимых плагинов, чтобы комфортно перенести HTML сайт на WordPress. Основные категории требуемых модулей:

Тема и плагины

  • имеющиеся формы могут некорректно перекочевать на платформу, лучше создать новые при помощи плагина Contact Form 7 или Gravity Forms;
  • при использовании всех необходимых SEO-данных в старой версии ресурса, их необходимо перенести, используя Yoast SEO или All in One SEO Pack. Во время переноса контента заполняются мета-теги и параметры оптимизации;
  • если предыдущий ресурс использовал несколько языковых версий, следует воспользоваться специализированными плагинами, к примеру, WPML;
  • поскольку CMS больше загружают сервер, нежели HTML – обязательно устанавливаются плагины кеширования и оптимизации медиафайлов WP Total Cache и Image Optimizer.

Касаемо темы – поиск следует начать с момента возникновения идеи переноса. Нужно подобрать максимально близкий по структуре, внешнему виду и необходимым функциям шаблон. Это облегчит дальнейшую конвертацию.

Перенос контента

Существует несколько методов, позволяющих импортировать материалы сайта. Самый простой, который в большей части подходит для небольших проектов – перенос контента вручную, скопировав HTML код статьи в редактор WordPress, добавляя SEO-данные в виджете соответствующего плагина. Такой способ может создать некоторые ошибки с отображением. Для исправления этого, рекомендуется применять пользовательские стили, вписав их в шаблон.

Как перенести HTML сайт на WordPress при большом количестве материала? Можно воспользоваться плагином HTML Import 2 или Import HTML Pages. В их возможности входит импорт контента с элементами форматирования. Адаптация оформления на низком уровне. Поэтому все правки осуществляются вручную.

Стоит отметить, что автоматический перенос материалов не совершенен, он позволяет сократить рутинную работу, но требует доработок по отображению данных. Третий вариант – предоставить работу специалисту, который имеет соответствующие средства и навыки по конвертации сайта на CMS.

Конвертация дизайна

Имеется несколько вариантов действий в такой ситуации. Наиболее простой заключается в создании нового шаблона, а не использование оформления с HTML версии. Этот способ подходит для проектов, в которых нужно кардинально менять внешний вид всех элементов и это не отразиться на поведении пользователей. Чаще всего данный метод выбирается вебмастерами малопосещаемых площадок.

Имеется несколько вариантов действий в такой ситуации. Наиболее простой заключается в создании нового шаблона, а не использование оформления с HTML версии. Этот способ подходит для проектов, в которых нужно кардинально менять внешний вид всех элементов и это не отразиться на поведении пользователей. Чаще всего данный метод выбирается вебмастерами малопосещаемых площадок.

Конвертация дизайна

Если аудитория сайта достаточно большая и постоянная (привыкла к оформлению), тогда придется серьезно поработать над конвертированием дизайна с HTML-страницы в шаблон движка. Можно воспользоваться сервисом Theme Matcher, который на основе старого макета сгенерирует файл темы для ВордПресс. Обычно результаты весьма удачны, требуются лишь незначительные доработки – но задача сохранения общей концепции и внешнего вида проекта выполнена.

Еще один способ – создание новой темы и работа с исходным кодом. В этом случае проводится детализированная обработка каждого элемента темы и исходного дизайна в HTML. Для проведения качественной работы нужны специальные знания. В ином случае необходимо воспользоваться услугами профессионалов (студий дизайна, фрилансеров).

C localhost на хостинг

Перенос HTML сайта на WordPress осуществлялся через локальный сервер, соответственно готовую площадку со всеми изменениями следует перенести на хостинг, где расположена HTML версия. В качестве примера будет использоваться cPanel и PhpMyAdmin.

Для начала, экспортируем базу данных на хостинг. Поскольку используется Open Server, в браузере переходим по следующей ссылке http://127.0.0.1/openserver/phpmyadmin, открывается интерфейс работы с базами данных. Переходим во вкладку «Экспорт» и выбираем файл, с именем, которое указывалось в «wp-config.php» при создании сайта. Вводятся все необходимые параметры:

  • Шаблон имени – @DATABASE@;
  • Кодировка – UTF8;
  • Сжатие – gzip.

После этого, с localhost копируем основную директорию, где находится новый вариант сайта и помещаем в архив. В панели хостинга необходимо создать базу данных. Указываются только надежные имя пользователя и пароль, отмечаются галочкой необходимые права и привилегии.

Используя PhpMyAdmin на хостинге, импортируется база данных, сохраненная с локального сервера. Пункт «Do not use AUTO_INCREMENT for zero values» должен быть отмечен. После этого проводится разархивация новых файлов в основную директорию сервера, чтобы площадка открывалась после ввода доменного имени в адресной строке.

Важно: непосредственно перед копированием новых файлов, следует удалить старые данные HTML-сайта.

Следующий этап: редактирование файла «wp-config.php». В него записываются новые данные пользователя и базы данных. Для констант WP_SITEURL и WP_HOME прописывается доменное имя.

Проверка сайта

Проверка сайта
Перенос HTML сайт на WordPress закончен и необходимо протестировать все элементы. Прежде всего проверяются элементы оформления, ошибки отображения контента, работоспособность кнопок и модулей. Необходимо убедиться в работоспособности всех ссылок, временные убрать. Плагин Broken Link Checker поможет справиться с проверкой на крупных сайтах, насчитывающих сотни статей.

wpcustom.ru

Подробнее, об этом уроке

Перед тем, как мы примемся за работу, давайте обозначим некоторые моменты. Во-первых, этот гайд был написан для новичков и будет наиболее полезен для простых веб-сайтов. Некоторые из вас, возможно, столкнутся с продвинутыми аспектами миграции на WordPress, но эта инструкция в этом вряд ли чем-то поможет. Если зависли на каком-нибудь моменте связанном с более продвинутым переносом, то опишите свою проблему в комментариях.

Цели

Данный урок призван помочь вам со следующим:

  • планирование эффективного перехода на WordPress;
  • проведение через технические моменты, связанные с переносом;
  • решение наиболее частых сложностей, связанных с переносом.

Предположения

Я надеюсь, что вы имеете начальное предоставление о работе с WordPress. Опыт работы с WordPress может быть полезным, но не является необходимым. Я также предполагаю, что у вас есть веб-сайт и дизайн, который вы хотите перенести на wordpress.

Первые шаги

Здесь описаны начальные шаги, которым рекомендуется следовать в процессе перехода на WordPress:

  1. Оцените веб-сайт. Внимательно просмотрите страницы на вашем существующем веб-сайте и определите тип контента (стандартные страницы, фотогалереи, страницы ресурсов и т.д.), обратите внимание на любую информацию, которую можно посчитать важной.
  2. Подготовьте среду. Настройте WordPress и приготовьтесь к импорту.
  3. Импортируйте контент. Перенесите и организуйте ваш контент через утилиту импорта, вручную (для небольшого количества контента, когда утилиты недоступны) или через настраиваемый процесс переноса.
  4. Перенесите дизайн. Встройте свой существующий дизайн в предустановленную тему WordPress.
  5. Проверьте веб-сайт и начинайте. Внимательно проверьте результат импорта, подправьте, где необходимо, установите редиректы URL и начинайте!

С этим планом в голове давайте начнём прорабатывать каждый шаг подробно.

Начните с плана

Ключом к успешному переносу является внимательная оценка вашего нынешнего сайта. Вам нужно понять как импортировать и структурировать контент в wordpress перед тем, как переносить его туда. В то время, как принципы переноса являются одинаковыми, детали часто различаются. Ниже приведены два списка вопросов, которые необходимо себе задать во время разработки плана.

Импортируемый контент

  • как много контента необходимо импортировать (количество страниц, изображений)
  • можно ли ваш контент перенести вручную, или вам необходима утилита
  • если вам необходима утилита, то существует ли она
  • может ли контент определен в обычные «посты» или «страницы», или необходима настройка
  • должен ли дополнительный контент располагаться на определенных страницах
  • изменится ли структура URL. Если да, то необходимо ли перенаправление со старых URL-адресов

Существующая функциональность

  • включает ли веб-сайт сторонние сервисы (данные и т. д.)
  • необходимо ли перенести формы (контактные формы, формы для заявлений и т. д.)
  • есть ли ограничения контента (например, только для зарегистрированных пользователей)
  • продает ли веб-сайт продукцию (виртуальную или реальную)
  • необходимо ли перенести отдельные администраторские настройки

Рабочий пример

Мой брат решил пожертвовать свой сайт для примера: его проект продает постеры и открытки компании вегетарианской еды. Он построил сайт на простом HTML, с вставками PHP базового уровня для шапки и нижнего колонтитула. Ниже представлен скринкаст, где я изменяю этот сайт, чтобы вы поняли процесс работы. Наслаждайтесь!

Установка WordPress

Перед тем, как импортировать контент, нам необходимо подготовить WordPress. Если вы просто экспериментируете или предпочитаете оффлайн разработку, начните с установки wordpress. Если же нет, то следующим шагом будет установка wordpress на сервер вашего хостинг-провайдера. Или вы можете использовать процесс переноса как отличную возможность перейти на новый хостинг.

После того, как wordpress настроен и запущен, вы можете начинать работу!

Для нашего примера, мы установили wordpress  на тот же хостинг, в директорию /wp для продолжения процесса переноса.

Настройки и плагины

С установленным wordpress нам остается сделать минимальные поправки:

  • Обновите постоянные ссылки. Кликните «Настройки->Постоянные ссылки» , чтобы внести изменения. В большинстве случаев я просто изменяю  постоянные ссылки на «postname».
  • Обновите пользователей. Я создал аккаунт андимистраторского уровня для себя и для любого администратора или редактора, что необходимы для клиентов и партнеров. Я также убираю дефолтное имя пользователя «admin», если оно существует.

В зависимости от целей проекта, нам может понадобится переустановить плагины. Здесь описаны основные категории плагинов.

  • Управление формами. Перенос форм так, как они есть может превратить все в хаос. Простое создание форм с нуля гораздо проще. Моим фаворитом является gravity forms. Другие варианты — это formidable и contact form 7.
  • Управление SEO. SEO — очень деликатное явление. Смысл моей работы заключается в создании контента для людей, а не для поисковых систем. Поэтому, существует адекватный подход к SEO, поддерживаемый экосистемой wordpress. И если на вашем старом сайте есть пользовательские мета-описания, необходимо их перенести без потерь. Для этого поможет wordpress SEO.
  • Множество языков. Если ваш сайт поддерживает несколько языков, у WordPress есть решение. Мой выбор — плагин WPML. Еще одним решением может стать qTranslate.
  • Безопасность. Безопасность на WordPress — это хорошо знакомая мне тема. Возрастающая популярность WordPress сделало его неплохой целью для различного рода атак. Сам WordPress редко является проблемой, в основном она кроется в плохо охраняемой хостинговой среде и устаревших или плохо разработанных плагинах. Для большинства своих проектов я использую регулируемые хостинги WordPress, которые предлагают неплохие стандарты безопасности. В ряде опций можно назвать WPEngine, ZippyKid, Pagely и Synthesis. В добавок в регулируемому хостингу обратите внимание на плагины безопасности, такие как Better WP Security или WordFence.
  • Бэкапы. Если вы выбрали управляемый хостинг, то бэкапы обычно включены. Если вы сами делаете бэкап или вы хотите дополнительный слой защиты для данных, то есть отличные варианты, как например, VaultPress, CodeGuard, BackupBuddy, BackWPup.

Импорт контента

Итак, мы запустили и настроили WordPress, теперь самое время перенести весь ваш контент.

Если у вашего старого сайта есть CMS, вам может быть доступна утилита. Начните искать скрип для переноса контента в Кодексе. Ели есть совпадение — здорово! Следуйте инструкциям и принимайтесь за работу. Если всё хорошо, то вы перенесёте свой сайт без каких-либо проблем.

Если вашей CMS нет в списке или у вас нет CMS и у вас менее 100 страниц, тогда пригодится ручной перенос. Копируйте и переносите контент, записывая старые URL.

Если у вас пользовательские CMS или база данных записей без инструмента переноса, а также большой объем контента, вы можете привлечь специалиста для переноса содержимого перед тем, как начать. Чем больше объем контента, тем выше вероятность человеческой ошибки и тем важнее автоматизация процесса.

В нашем случае, мы перенесли контент вручную и заменили существующую навигацию меню WordPress. Вы сможете посмотреть процесс в этом скринкасте.

Перенести дизайн

Теперь настало время перенести на WordPress наш дизайн. Если вы хотите обновить внешний вид сайта, тогда стоит приглядеться к множеству отличный тем WordPress в официальном хранилище и сторонних магазинах, например ThemeForest и Creative Market. В нашем случае, представим, что вы полностью довольны дизайном.

Оценка дизайна

Оцените исходный код будущего дизайна как можно лучше, перед тем как сражаться с переносом. Если код основан на таблице или более сложный, чем тот, с которым вам комфортно работать, то результат может не стоить затраченных усилий. Когда все возможно, не все практично.

Работа с исходным кодом

Следуя своему опыту, могу сказать, что наиболее простой способ переноса дизайна — это работа с исходным кодом в браузере. Хотя доступ в хостинговой среде может быть полезно (особенно при работе с изображениями и скачиваемыми файлами), однако способы построения веб-сайтов настолько различаются, что вам придется переделывать оригинальную архитектуру, чтобы добиться чего-либо полезного.

Прямая работа с исходным кодом сэкономит ваше время, покажет скрытые полезные функции и предоставит вам все, что нужно. Я пользуюсь браузером Google Chrome.

Создание пользовательской темы

Если вы в этом новичок, просмотрите информацию об использовании тем в Кодексе. Для процесса переноса вы можете создать новую тему WordPress с нуля, или изменить уже существующую тему, чтобы она соответствовала вашим вкусам. Я советую второй способ.

Большинство моих проектов переноса начались с последних версий предустановленных тем WordPress. Недавно я удалил исходную тему, чтобы создать мою тему, которую я буду использовать в нашем примере и, которую вы можете сами использовать. Давайте начнем работу!

Скачайте копию (zip) шаблона для переноса или продолжайте со своей темой, на выбор.

Стиль страницы.

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

  1. Откройте style.css.
  2. Замените детали в теме (имя, URL, описание и т. д.) на ваши собственные.
  3. Вставьте стили со старого сайта.

Заметка по поводу картинок

Если вы переносите стиль страницы, найдите и обновите любую информацию об изображениях. В общем, мне нравится держать все изображения в папке /images/ в директории темы. Чаще всего необходимо менять расположение изображений в оригинальной CSS, и я удостоверился, что поменял все ссылки и шаблоны соответственно.

Заголовок

Следующим шагом будет создание заголовка для нашей новой темы. Нашей целью будет совместить структуру текущего кода с шаблонами WordPress. Вот что нам стоит сделать:

  • Скопируйте HTML структуру старого сайта.
  • Замените статическое меню на меню, поддерживаемое WordPress.
  • Используйте тэг WordPress title и оставьте wp_head на месте.
  • Вставьте другие важные теги из старого заголовка.

Давайте взглянем на код!

Оригинальный HTML

<!DOCTYPE HTML>  <html>  <head>  <title>Vegan Food Pyramid posters, postcards and wallpapers</title>  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  <meta name="google-site-verification" content="PO3bWDpUEh4O6XXwnmfyfxrKRDf8JsRrNIcGdzv3POs" />  <link rel="stylesheet" type="text/css" href="style.css" media="screen" />  <link rel="shortcut icon" href="http://www.veganfoodpyramid.com/favicon.ico?v=2" />  <script type="text/javascript" src="//use.typekit.net/tty6xpj.js"></script>  <script type="text/javascript">try{Typekit.load();}catch(e){}</script>    </head>  <body>  <a href="http://veganfoodpyramid.com"><h1 id="logo">Vegan Food Pyramid</h1></a>  <ul class="menu">   <li><a class="active" href="http://veganfoodpyramid.com">Products</a></li>   <li><a href="http://veganfoodpyramid.com/wallpaper.php">Wallpaper</a></li>   <li><a href="http://veganfoodpyramid.com/about.php">About</a></li>    <li><a href="http://veganfoodpyramid.com/contact.php">Contact</a></li>  </ul>

Подогнанный заголовок (header.php)

<!DOCTYPE html>  <html>  <head>   <title><?php wp_title( '|', true, 'right' ); ?></title>   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />   <meta name="google-site-verification" content="PO3bWDpUEh4O6XXwnmfyfxrKRDf8JsRrNIcGdzv3POs" />   <link rel="shortcut icon" href="http://www.veganfoodpyramid.com/favicon.ico?v=2" />   <script type="text/javascript" src="//use.typekit.net/tty6xpj.js"></script>   <script type="text/javascript">try{Typekit.load();}catch(e){}</script>   <?php wp_head(); ?>  </head>    <body <?php body_class(); ?>>     <header>   <a href="http://veganfoodpyramid.com"><h1 id="logo">Vegan Food Pyramid</h1></a>   <?php wp_nav_menu( array(    'theme_location' => 'primary',   'container' => false,   'menu_class' => 'menu'   ) ); ?>   </header>

Объяснение

Одной из проблем переноса является определение того, стоит ли улучшать код по мере продвижения. У нашего проекта есть разделы, которые можно улучшить, но мы решили оставить все как есть. Большинство из вас  будет работать с переносом дизайна, который не был предназначен для улучшений.

Если время и возможности позволяют, я советую улучшить код. Или же свыкнитесь с мыслью, что с сайтом на WordPress внести изменения будет гораздо проще.

Давайте проработаем изменения, которые мы внесли.

  • Тип документа. Убедитесь, что вы перенесли тот же самый тип. В этом случае оригинальный html уже имеет доктайп HTML5 (относительно редкий случай на старых сайтах). Используя современный доктайп в коде, написанном для старого кода вы можете испортить шаблон.
  • Мета-теги. Я обычно переношу большую часть метатегов так, как они и есть , заменяя их в WordPress. Исключение в нашем случае составляет ссылка на файл стилей, вставляемая автоматически через wp_enqueue_style в файле functions.php.
  • Скрипты. Скрипты могут быть запутанными. Если скрипт находится на каждой странице (например, трекинговый скрипт, или скрипт шрифта), тогда необходимо разместить его в файле заголовка или нижнего колонтитула. Если необходимо, чтобы он появлялся лишь в отдельных местах, то подойдут теги условий. Лучше всего добавьте все скрипты в заголовок через wp_enqueue_script. Если вы готовы принять вызов, то я советую вам этот способ.
  • wp_head. Оставьте <?php wp_head ?> внизу тега </head> в файле header.php. WordPress также использует wp_head, чтобы расставить скрипты и файлы стилей, используемые в теме и в плагинах, что вы установили. Без wp_head большинство плагинов просто не будут работать.
  • Body_class. Обратите внимание на использование тега <?php body_class(); ?>. WordPress использует это, чтобы предоставить ряд полезных классов к тегу <body> пока вы присматриваете страницу. В нашем примере они не используются. Ваши должны иметь уникальные ID или классы на каждой странице, в этом случае вам нужно создать произвольные функции используя теги условий, чтобы добавить соответствующие классы для каждой страницы.
  • Меню WordPress. Переход на меню WordPress является одним им самых сложных задач в переносе. Он будет у нас довольно прямолинейный. У нас есть простое меню, которые использует класс active (сгенерированый через PHP), чтобы показать, какую страницу посещает пользователь. Функция wp_nav_menu очень гибкая и предлагает встроенную функциональность, чтобы обрабатывать текущее состояние элемента в меню. Я обновил условия в файле стилей на active и изменил их, чтобы они использовали эквивалент, сгенерированный wp_nav_menu, который является current-menu-item. Смотрите скринкаст о переносе контента, чтобы понять, как настраивать меню на нашем примере.

Вот и готова оболочка. Давайте приступил к следующему шагу.

Подвал

Перенос подвала обычно обходится без проблем. Как и в случае с шапкой, нам необходимо объединить части оригинального исходного кода. Давайте займемся этим.

Оригинальный HTML

<div id="footer"><p>© 2013 VeganFoodPyramid.com</p></div>    <script type="text/javascript">  var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");  document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));  </script>  <script type="text/javascript">  try {  var pageTracker = _gat._getTracker("UA-6992755-1");  pageTracker._trackPageview();  } catch(err) {}</script>    </body>  </html>

Подогнанный футер (footer.php)

<div id="footer"><p>© <?php echo date('Y'); ?> VeganFoodPyramid.com</p></div>    <script type="text/javascript">  var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");  document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));  </script>  <script type="text/javascript">  try {  var pageTracker = _gat._getTracker("UA-6992755-1");  pageTracker._trackPageview();  } catch(err) {}</script>    <?php wp_footer(); ?>    </body>  </html>

Объяснение

Некоторые подвалы сложно перенести (например, со сложными меню и виджетами), но в большинстве случаев это довольно просто. В нашем случае мы объединили HTML с нашим шаблоном подвала, оставляя обращение wp_footer. Мы также изменили ссылку на дату, чтобы использовать PHP и быть уверенными, что он обновляется каждый год.

Домашняя страница

Одна из проблем переноса — это то, что существует куча способов выполнить эту работу. Хорошим примером может служить домашняя страница, потому что она обычно наиболее отличается от остальной части сайта. Самый простой способ обычно самый верный. Я решил разместить весь контент с домашней страницы прямо в шаблоне. Изменять ее придется редко и это всегда можно будет сделать, изменяя шаблон.

Давайте посмотрим на код без заголовка и футера, который мы уже перенесли.

Оригинальный HTML

<div id="content">    <div id="poster">  <a href="http://veganfoodpyramid.com/images/Vegan-Food-Pyramid-New.jpg"><img class="product-img" src="http://veganfoodpyramid.com/images/Vegan-Food-Pyramid-New.jpg" /></a>  <div class="description">  <h2>Poster</h2>  <p>A 30×20-inch poster illustrating over 125 vegan food items as an alternative to the traditional food pyramid. This poster will catch people’s attention and serve as a suggestion for food ideas.</p>  <h3>$30 each</h3>  <p>Includes free shipping worldwide</p>  <a class="button" href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=2FKQT879CXYYG">Buy</a>  </div>  </div>    <div id="postcard">  <a href="http://veganfoodpyramid.com/images/Vegan-Food-Pyramid-New.jpg"><img class="product-img" src="http://veganfoodpyramid.com/images/postcard-splash.jpg" alt="Postcard Splash" /></a>  <div class="description">  <h2>Postcards</h2>  <p>Beautiful 4×6 postcards that can be mailed and shared with friends and family. Hand them out at events. Post them on walls. Share the vegan love!</p>  <h3>$50 for 50</h3>  <p>Includes free shipping worldwide</p>  <a class="button" href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=EN387WHNSSFMW">Buy</a>  </div>  </div>    </div> <!-- end content -->

Подогнанная главная страница

<?php  /**   * Template Name: Front Page Template   */    get_header(); ?>    <div id="content">     <div id="poster">   <a href="<?php echo get_stylesheet_directory_uri(); ?>/images/Vegan-Food-Pyramid-New.jpg"><img class="product-img" src="<?php echo get_stylesheet_directory_uri(); ?>/images/Vegan-Food-Pyramid-New.jpg" /></a>   <div class="description">   <h2>Poster</h2>   <p>A 30×20-inch poster illustrating over 125 vegan food items as an alternative to the traditional food pyramid. This poster will catch people’s attention and serve as a suggestion for food ideas.</p>   <h3>$30 each</h3>   <p>Includes free shipping worldwide</p>   <a class="button" href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=2FKQT879CXYYG">Buy</a>   </div>   </div>     <div id="postcard">   <a href="<?php echo get_stylesheet_directory_uri(); ?>/images/Vegan-Food-Pyramid-New.jpg"><img class="product-img" src="<?php echo get_stylesheet_directory_uri(); ?>/images/postcard-splash.jpg" alt="Postcard Splash" /></a>   <div class="description">   <h2>Postcards</h2>   <p>Beautiful 4×6 postcards that can be mailed and shared with friends and family. Hand them out at events. Post them on walls. Share the vegan love!</p>   <h3>$50 for 50</h3>   <p>Includes free shipping worldwide</p>   <a class="button" href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=EN387WHNSSFMW">Buy</a>   </div>   </div>    </div> <!-- end #content -->    <?php get_footer(); ?>

Объяснение

Шаблон front-page.php начинается и заканчивается ссылкой на заголовок и футер, которые я только что подготовил. Также я объединю туда оставшуюся часть HTML и мы используем функцию  get_stylesheet_directory_uri, которая автоматически генерирует ссылки к папке с изображениями в вашей новой теме.

Шаблон стандартной страницы

После того, как мы сделали заголовок и подвал, довольно легко будет сделать стандартный шаблон. Чтобы сэкономить время, мы направимся прямо к объединенным шаблонам.

Подогнанный шаблон (page.php)

<?php  /**   * The template for displaying all pages.   */    get_header(); ?>    <div id="content">     <?php while ( have_posts() ) : the_post(); ?>     <?php get_template_part( 'content', 'page' ); ?>     <?php endwhile; ?>    </div>    <?php get_footer(); ?>

Подогнанный шаблон (content-page.php)

<?php  /**   * The template used for displaying page content in page.php   */  ?>     <article <?php post_class(); ?>>   <?php the_content(); ?>   </article>

Объяснение

Здесь необходимо рассмотреть некоторые пункты:

  • Loop. Если вы новичок в WordPress или в программировании в общем, эта часть кода в #content может немного смутить. Loop — это код, используемый WordPress, чтобы показать содержимое поста. Необходимо убедится, что он присутствует, иначе сохраненный в WordPress контент не будет отображаться.
  • Get_template_part. Наш шаблон страницы использует удобную функцию get_template_part, которая отлично подходит для организации контента, особенно в сложных проектах. Наш веб сайт довольно мал, чтобы полагаться на нее, но я оставил ее, чтобы показать вам.
  • Post_class. Я также добавил ссылку на <article>, чтобы упростить дальнейшее изменение дизайна.

Полноформатный шаблон (full-width.php)

Хоть это и не показано в скринкасте, дизайн включает полноформатный шаблон чтобы использовать на странице «wallpaper», в то время, как стандартный шаблон страницы изменен до узких размеров.

Давайте посмотрим.

Подогнанный шаблон (full-width.php)

<?php  /**   * Template Name: Full-Width Template   */    get_header(); ?>    <div id="content" class="full-width">     <?php while ( have_posts() ) : the_post(); ?>     <?php get_template_part( 'content', 'page' ); ?>     <?php endwhile; ?>    </div>    <?php get_footer(); ?>

Объяснение

С созданным шаблоном, все, что нам остается — это привязать его к странице. Найдите «атрибуты страницы» при редактировании страницы, обычно под формой «опубликовать» и выберите «full-width template» из каскадного меню «шаблоны».

Дополнения

А теперь давайте возьмемся за некоторые «дополнения», которые иногда вызывают трудности при переходе на WordPress.

  • Breadcrumbs. Довольно часты на сайтах. Самый простой способ — воссоздать их с плагином. Мой любимый — это breadcrumbs NavXT. WordPress также предлагает бесплатные Breadcrumbs.
  • Виджеты. Если у дизайна, который вы переносите есть боковая панель, вы можете перенести ее так, как она есть, или интегрировать виджеты WordPress, чтобы иметь возможность динамически изменять боковую панель.
  • Запрещенный контент. В случае, если контент необходимо ограничить, WordPress предлагает базовую защиту паролем по умолчанию. Если вам нужен больший контроль — используйте плагин. Для базового управления пользователями и ограничения контента я рекомендую Members. Для более продвинутого контроля, особенно если вовлечены платежи, примите во внимание Membership, s2Member или wpmember.
  • Пользовательский тип постов. Некоторые переносы, особенно с большим количеством различного контента требуют пользовательского типа постов. Об этом вы можете узнать подробнее в Кодексе. Для их настройки я рекомендую использовать плагин. Два достойных выбора — это custom post type ui и types.

Проверьте сайт

После того, как вы закончили работу над темой, самое время для проверки. Просмотрите внимательно страницы на перенесенном сайте. Для больших сайтов, обратите внимание на на различные шаблоны.  Во время проверки обратите внимание на следующие вещи:

  1. Битые ссылки. Убедитесь, что все ссылки работают так, как должны. Если у вас всего пара страниц, то вы можете сделать это вручную. Для автоматической проверки используйте Integrity или Xenu’s link sleuth.
  2. Битые стили. Иногда по каким-либо причинам элементы вашего сайта могут быть нарушены при переносе. Внимательно сравните старый HTML с новым и убедитесь, что вы не пропустили важный код и что соответствующие элементы стиля были перенесены верно. Если что-нибудь пойдет не так, может понадобится быстрая перестройка дизайна.
  3. Нарушенная функциональность. Протестируйте любые функции, которые вы перенесли, такие как кнопки «приобрести сейчас», контактные формы, опции новостных рассылок, контент для пользователей, встроенные карты, медиа-плееры и так далее.
  4. Временные ссылки. В зависимости от того, как вы перенесли перенос, временные ссылки к подпапкам или тестовым доменам могут отображаться в вашем контента или теме. Вам нужно будет решить этот вопрос перед тем как запускать сайт. Используйте плагин Search and Replace, чтобы проверить и обновить ссылки в вашем контенте.

Настройка редиректов

Если структура ваших ссылок изменилась (а обычно это так, даже если и слегка), убедитесь, что пользователи перенаправлены со старых ссылок на новые. Для небольших объемов контента самый простой способ — это добавить их в файл .htaccess.

Откройте файл .htaccess в директории WordPress. Если вы не можете его найти, то настройте ваш FTP клиент на отображение скрытых файлов. Теперь создайте редиректы для старых страниц. Убедитесь, что вы разместили их после блока опций WordPress.

Вот переписанные опции для наших ссылок:

Redirect 301 /wallpaper.php http://veganfoodpyramid.com/wallpaper/  Redirect 301 /about.php http://veganfoodpyramid.com/about/  Redirect 301 /contact.php http://veganfoodpyramid.com/contact/  Redirect 301 /contactthanks.php http://veganfoodpyramid.com/contact/thanks/

Если изменение файла .htaccess не вариант или вам приходится иметь дело с множеством перенаправлений, тогда при смотритесь к Redirection.

Подсказка: если количество перенаправлений очень высоко, тогда присмотритесь к функции, которая привязывается к template_redirect, сравнивает сгенерированный список условий и использует функцию wp_redirect для перенаправления любых совпадений.

Конечная стадия

Конечная стадия переноса веб-сайта включает две задачи:

  1. Перенос WordPress из папки разработки в корневую директорию.
  2. Привязка домена со старого сервера на новый сервер WordPress.

Перенос WordPress

Если вы настроили WordPress в подпапке (как сделали мы), тогда запуск включает пару простых шагов.

Как только вы внесли изменения, немедленно проверьте битые ссылки, которые вы могли пропустить в конечном осмотре.

Направление на новый сервер

Если вы настраивали WordPress на новом сервере, то вы, возможно, использовали временный домен. Соответственно, вам следует убрать ссылки на временный домен перед тем как направляться на новый сервер.

Также, если вы планируете обновить названия серверов для вашего домена, тогда сперва решите все зависимости в текущих данных DNS. Я обычно запускаю сайт с доменом, обновляя А данные, оставляя названия серверов на месте.

Заключение

Вот и все! Успех переноса сайта на WordPress заключается в деталях и даже если этот урок непонятен для вас, у вас теперь есть хороший план процесса и представление о трудностях, с которыми вам придется столкнуться, а также идеи, как их разрешить. Если вы сталкиваетесь с трудностями в процессе, то делитесь ими в комментариях. А теперь не бойтесь переходить на WordPress!

Источник: http://www.smashingmagazine.com/2013/05/15/migrate-existing-website-to-wordpress/

walkpress.ws

Резервное копирование данных

С технической точки зрения нам предстоит сделать копии двух составляющих сайта:

  • Файловой системы
  • Базы данных

Каждый веб-разработчик должен заботиться о сохранности данных веб-сайта. Поэтому, как правило, после того как рабочая версия развёрнута на удалённом сервере, разработчик сайта настраивает резервное копирование данных или «бэкап» (от англ. «backup copy», резервная копия).

Иногда заботу о создании резервных копий проявляется хостинг-компания. Чаще всего это случается, когда вы пользуетесь услугой простого хостинга сайтов.

В чём главная цель разработчика при переносе сайта с одного сервера на другой? Ничего не потерять. То есть на новом месте сайт должен быть полностью идентичен тому же сайту на старом.

Перво-наперво, вы должны убедиться в том, что после создания резервной копии сайта на нём не будут производиться какие-либо изменения.

Самый простой путь — обратиться ко всем редакторам сайта с просьбой не вносить изменения в содержимое сайта на время переноса (допустим, на ближайшие полчаса). Если, например, вы ведёте блог на WordPress, то договариваться с кем-либо нет необходимости.

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

Режим обслуживания

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

Как принудительно перевести в него сайт?

Для этого необходимо в корне сайта создать файл под названием .maintenance и разместить в нём следующий PHP-код:

<?php $upgrading = time(); 

Результат:
Перенести сайт на wordpress

В принципе, этого будет достаточно для того, чтобы никто (кроме администратора сервера) не смог пользоваться сайтом.

Однако, если вы хотите сделать страницу более привлекательной, можете создать в папке wp-content файл maintenance.php, который будет загружаться вместо исходного текста. В нём вы можете сверстать какую угодно картинку для поджидающего окончания работ пользователя.

Также можно порекомендовать специальный плагин, которые можно использовать в тех же целях:
Перенести сайт на wordpress

Теперь, когда мы точно знаем, что никакие данные в течение процесса миграции изменены не будут, можем приступать к создании резервной копии базы данных.

Резервная копия базы данных

Способов создания резервной копии базы данных WordPress существует несколько:

  • При помощи плагинов WP-DB-Backup, WP Database Backup и прочих.
  • При помощи браузерной утилиты phpMyAdmin
  • При помощи консоли сервера
  • При помощи панели хостинга

С целью экономии места в посте не буду рассказывать про первые два способа, они достаточно тривиальны.

Если у вас есть доступ к консоли сервера, и вы умеете пользоваться терминалом — это заметно ускорит работу.

Прежде всего потому, что создании резервной копии выполняется одной единственной командой:

mysqldump -u[пользователь] -p[пароль] [имя_базы_данных] > [имя_файла_резервной_копии].sql 

По-хорошему будет заархивировать дамп базы на ходу:

mysqldump -u[пользователь] -p[пароль] [имя_базы_данных] | gzip >[имя_файла_резервной_копии].sql.gz 

Текстовые файлы, коим является дамп базы, архивируются наилучшим образом. Размер архива может быть значительно ниже размера дампа базы. Это важно при переносе, т.к. 100Мб перенести куда быстрее, чем 1Гб, например.

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

Однако, далеко не каждый хостинг предоставляет подобные возможности клиентам, поэтому если данный вариант присутствует — удобнее всего пользоваться им.

Резервная копия файлов

Файловая система WordPress обычно выглядит следующим образом (без поддиректорий и их содержимого):

├── index.php ├── license.txt ├── readme.html ├── wp-activate.php ├── wp-admin ├── wp-blog-header.php ├── wp-comments-post.php ├── wp-config-sample.php ├── wp-config.php ├── wp-content ├── wp-cron.php ├── wp-includes ├── wp-links-opml.php ├── wp-load.php ├── wp-login.php ├── wp-mail.php ├── wp-settings.php ├── wp-signup.php ├── wp-trackback.php └── xmlrpc.php 

В принципе, больше всего нас интересуют папка wp-content и конфигурационный файл wp-config.php.

Прежде всего потому, что все остальные папки и файлы у различных установок WordPress (в случае использования последней версии системы) не отличаются друг от друга.

Важно: самый быстрый способ переноса файлов — создание архива, перенос архива и последующая разархивация на конечном сервере.

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

Представьте себе перенос по FTP тысячи или даже нескольких тысяч маленьких файлов. Для переноса каждого из них требуется сначала установить, а потом разорвать соединение. В итоге процесс получается долгим и иногда случается что-либо потерять в пути. Тем более, когда файлы переносятся сначала на локальный компьютер, а потом уже — на новый удалённый сервер.

Используя для переноса архив, вы перемещаете всего 1 файл. Да, он много больше размером, но за счёт того, что требуется всего лишь одно соединение с сервером, перенос совершается быстрее. При текущих скоростях доступа к сети Интернет разница во времени может составлять десятки, сотни раз.

Настоятельно рекомендую для транспортировки большого скопления мелких файлов использовать архив в роли контейнера.

Так можно использовать консольные утилиты наподобие rsync, но для этого необходимо иметь навыки работы с консолью севера. Несколько обучающих материалов по теме на англ. — одна и вторая.

Восстановление данных

Итак, архив файлов сайта и дамп базы данных перенесены на новый сервер.

Воссоздание файловой структуры

Первым делом необходимо распаковать архив таким образом, чтобы полностью восстановить исходную структуру файлов и папок.

Перенести сайт на wordpress

Чтобы восстановить исходную структуру и не напортачить с папками, необходимо руководствоваться следующим правилом:

Распаковывать архив необходимо там же, где он был создан.

Например, если вы сжимали сайт при помощи консольного архиватора из корня сайта zip -r "full-backup.zip" *, то и распаковывать на новом сервере его необходимо также в корне сайта unzip full-backup.zip.

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

Не забудьте удалить архив с файловой структурой сайта с сервера, чтобы его не могли скачать посторонние.

Воссоздание базы данных

Прежде чем восстанавливать базу данных, необходимо убедиться, что на новом сервере уже создана соответствующая новая база данных.

Если же её ещё нет, то создать новую базы данных можно разными способами:

  • Через веб-интерфейс при помощи утилиты phpMyAdmin
  • Через панель управления хостингом
  • Через консоль сервера следующей командой:
    mysql -u[имя_пользователя] -p; # после ввода пароля вы войдете в режим командной строки MySQL mysql: CREATE DATABASE [имя_базы_данных] CHARACTER SET utf8 COLLATE utf8_general_ci; CHARACTER SET utf8 COLLATE utf8_general_ci; CHARACTER SET utf8 COLLATE utf8_general_ci; GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER ON[имя_базы_данных] .* TO [имя_пользователя]@localhost IDENTIFIED BY '[пароль]'; 

В результате мы должны иметь на руках:

  • Имя базы данных
  • Имя пользователя
  • Пароль

В некоторых случаях, когда база данных находится на другом сервере, нам необходимо ещё знать адрес хоста (обычно — localhost,  если на той же машине).

Используя эти данные мы должны импортировать наш дамп базы данных.

Опять-таки, сделать это мы можем теми же средствами.

В phpMyAdmin выбираем базу данных, вкладку «Импорт», выбираем файл дампа и отправляем форму запроса.

Перенести сайт на wordpress

Если вы работаете через консоль, используйте команду mysql -u[имя_пользователя] -p[пароль] [имя_базы_данных] < [дамп_базы_данных].sql.

В случае, если дамп базы данных был заархивинован: gunzip < [дамп_базы_данных].sql.gz |mysql -u[имя_пользователя] -p[пароль] [имя_базы_данных].

Не забудьте удалить дамп базы данных с сервера или перенести его в безопасное место, в случае, если он там был.

Настройка файла конфигурации

Теперь необходимо открыть в редакторе файл wp-config.php и установить соответствующие настройки для соединения с новой базой данных:

Перенести сайт на wordpress

Не забудьте удалить файл .maintenance из корневой папки сайта.

Остаётся только проверить работоспособность сайта!

habr.com


You May Also Like

About the Author: admind

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.