Сегодня я попробовал перенести свой локальный сайт с локального на виртуальный хостинг.
Задача для меня была новой и казалась изначально сложной. Но, просмотрев несколько туториалов и изучив особенности переезда с Дарвина (вариант МАМРа) на виртуальный хостинг я принялся за дело.
Для удобства восприятия информации поделю пост на три условных фазы.
Фаза 1 "Домен и хостинг".
Итак, для первой фазы нам потребуется домен нашего будущего сайта и хостинг для размещения того-же сайта в сети Интернет. В моем случае с wordpress дввижком, мне понадобился хостинг с возможностью создания базы данных. Есть масса хостинг-провайдеров которые предлагают тарифные пакеты с бонусным бесплатным доменным именем. Особо пристально на этом я акцентироваться не буду. Когда обе составляющие (домен и хостинг) у нас уже есть, нужно создать у себя на хостинге сайт, то-есть привязать домен в админ-панели к хостингу. Теперь у нас есть сайт, при запросе на который в броузере у нас будут вылетать разного рода ошибки о правах доступа. Это хорошо, т.к. домен теперь активен и можно переходить ко второй фазе.
Фаза 2 "Перенос с локального на виртуальный хостинг".
Повторюсь, в даном случае я переносил сайт построенный на движке woedpress. Каких зменений потерпит процесс переезда в других вариантах, я не знаю. Но, осмелюсь предположить, что алгоритмы этого переезда у всех одинкаовые.
Итак, первое что нам нужно, войти в меню phpMyAdmin используя свой софт для локального хостинга, в моем случае это МАМР. Далее нужно выбрать нужную нам базу данных (в моем случае это "dbwordpress") и перейти по меню базы на вкладку "Экспорт". Обязательно отметте следующие пункты в блоке "Структура":
- Добавить DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT
- Добавить AUTO_INCREMENT
- Заключить названия таблиц и полей в косые кавычки
Дамп нужно сохранить в архиве на локальном диске (я сохранил как wordpress.gzip).
Далее нужно войти в админ панель виртуального хостинга и создать там базу данных. Навигация по внутреннему меню в основном отличается у всех хостеров, потому конкретных указаний я написать не могу. Но, если в общем, то нужно найти блок что-то типа "Базы данных" и воспользоваться мастером создания бд (такая функция есть точно у всех). С помощью мастера база создается очень просто: вводим желаемое имя базы данных, далее вводим логин и пароль пользователя бд, и после добавляем его к нашей базе. Обязательно запоминаем или записываем имя базы данных, логин и пароль пользователя бд, это нам понадобится на завершающих этапах переезда.
Теперь, нужно импортировать дамп нашей локальной базы данных. Для этого зайдем в phpMyadmin нашего виртуального хостинга. Выберем нашу базу данных в колонке слева и перейдем во вкладку "Импорт". Выбираем наш архив с дампом (у меня это wordpress.gzip) и жмем кнопку ОК. После этого наша база данных будет перенесена на виртуальный хостинг.
Далее нам нужно заменить в базе данных абсолютно все наши старые локальные линки на новые, где:
http://localhost:888 - ссылка на хост МАМРа
http://mynewdomain.com - ссылка нашего домена
Не стоит сразу впадать в панику. Все делается очень просто и быстро.
Войдем в меню phpMyadmin во вкладку "SQL" и в области ввода введем следующие команды (запросы):
Заменяем адрес (url) блога в настройках:
UPDATE wp_options SET option_value = REPLACE(option_value, 'http://localhost:888', 'http://mynewdomain.com') WHERE option_name = 'home' OR option_name = 'siteurl'; |
Заменяем адрес (url) каждого поста:
UPDATE wp_posts SET guid = REPLACE(guid, 'http://localhost:888','http://mynewdomain.com'); |
Заменяем адрес (url) во всех постах:
UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://localhost:888', 'http://mynewdomain.com'); |
Теперь нужно перенести файлы нашего сайта с локального диска на виртуальный хостинг. Для этого нужно воспользоваться подручным FTP клиентом. Так как FTP у меня встроен в Coda, я воспользуюсь им. Все настройки для входа в FTP зону отдельно взятого хостинга можно найти непосредственно у себя в админпанели или уточнить в службе потдержки.
Итак, переносить нужно в корневую директорию нашего сайта, называется которая чаще всего www или public_html. Перенос не занимает много времени и сил. Главное корректно настроить FTP клиент и не напутать сайтами, если их имеется несколько.
Следующим, и возможно завершающим шагом нужно "привязать" базу данных к движку. Для этого нужно отредактировать файл wp-config.php, который находится уже на нашем виртуальном хостинге. Файл обязательно править в специальном редакторе, но ни в коем случае не в штатном блокноте, так как он "режет" кодировки и могут возникнуть ошибки в работе движка. Но, тут опять таки мне помогла Coda со своим изобилием функций.
Итак, нам нужно заменить следующие поля:
- Имя базы данных;
- Имя пользователя MySQL;
- Пароль пользователя MySQL;
Все данные по это му шагу нужно было записать или запомнить на стадии создания базы данных.
Сохранив файл wp-config.php на нашем виртуальном хостинге можно проверить результат переезда.
В большинстве случаев на этом все заканчивается и пользователь получает свой сайт в полноценном рабочем состоянии, таким каким он был на локальном хостинге. Но, не в моем случае.
Фаза 3 "Исправление ошибок".
Так получилось, что движок wordpress не находил путей к базе данных. Хотя я и указал корректный логин, пароль и название базы данных, но результат оказался не таким как ожидалось.
В итоге, пролистав несколько форумных веток, я нашел решение этой проблемы.
Суть в том, что отдельные хостеры в своих настройках прописывают собственные условия для работы с базами данных. Например в моем случае с любимым Петерхостом мне пришлось заменить в файле wp-config.php выражение
define('DB_HOST', 'localhost');
следующим
define('DB_HOST', 'mysql.номер сайта.основной домен.сервер.ru');
Так что если возникает ошибка типа Error establishing a database connection то советую обратится к своему хостеру за розяснениями по корректному указанию пути к базе данных.
Вот и все. Теперь я вижу как работает результат моей своеобраозной препарации непосредственно в Интернет, и научился чему-то новому. Дальше я хочу научится вносить изменения в сайт посредством дампа локальной версии. Но это чуть погодя..
Похожие публикации в блоге: