Перенос сайта wordpress на другой хостинг
Итак перед нами стоит задача: перенести сайт на движке WordPress на другой хостинг.
Решение этой задачи разобьем на 4 этапа.
1. Этап «экспортируем БД со старого хостинга»
Перенесем содержимое базы данных MySQL. В нем находится контент сайта и некоторые настройки WordPress.
Если есть установленный phpmyadmin, тогда заходим в него, выбираем вкладку «Экспорт«:
В настройках экспорта ничего не меняем, жмем «Ок» в нижней части экрана:
Сохраняем полученный файл у себя на компьютере. Только что, мы сделали «снимок» (или dump) нашей базы данных, с помощью него мы можем на любой установленной MySQL восстановить нашу базу данных со всем её содержимым.
Если на хостинге нет установленного phpmyadmin, то сделаем тоже самое в командной строке по ssh.
Подключаемся к хостингу по ssh, вводим данный нам логин/пароль, далее выполняем следующую команду:
1 |
# mysqldump -u имя_юзера -p --opt имя_БД > /var/www/vhosts/domain.ru/httpdocs/db_dump.sql |
Где
имя_юзера это логин для входа в базу данных
имя_БД имя вашей базы данных
/var/www/vhosts/domain.ru/httpdocs/db_dump.sql имя дамп-файла вашей БД, в директории из которой удобно будет забирать (в случае если на web сервере нет виртуального хостинга и ваш сайт там единственное что есть, тогда /var/www/db_dump.sql)
При нажатие Enter, вводим пароль для «имя_юзера» для данной базы данных.
Если вы не помните логин, пароль и имя базы данных, вы можете их посмотреть в файле «wp-config.php«, следующие строки напомнят вам их:
define(‘DB_NAME’, ‘имя_БД’);
define(‘DB_USER’, ‘имя_юзера’);
define(‘DB_PASSWORD’, ‘пароль’);
В случаем, если вы переносите сайт на другое доменное имя, необходимо в дампе БД заменить все упоминания старого домена на новый, иначе изображения в ваших записях будут ссылаться к старому хостингу и в некоторых настройках WordPress будет фигурировать старый домен.
Откройте db_dump.sql в любом текстовом редакторе и замените имя старого домена на новый.
Например с domain.narod.ru на domain.ru.
Если db_dump.sql находиться в www, сделать это можно с помощью консольного текстового редактора mcedit. Перейдем в директорию www, выполним команду:
1 |
# mcedit db_dump.sql |
Откроется окно редактора, нажимаем F4, в верхнем поле указываем что меняем, в нижнем на что:
жмем «Ок«, далее «All«, сохраняем F2, выходим F10.
2. Этап «импортируем БД на новый хостинг»
Если есть phpmyadmin, тогда заходим на вкладку «Импорт«, в блоке «Импортируемый файл» жмем «Выберите файл» и указываем на dump файл созданный на этапе 1.
Иногда в старых версиях phpmyadmin вкладки «Импорт» нет, тогда переходим на «SQL» в « Месторасположение текстового файла» жмем «Выберите файл«.
Если дамп файл вы создавали с помощью командной строки, скачать его можно с помощью любого браузера по адресу
http://доменное_имя/db_dump.sql или с помощью командой строки:
1 |
# wget доменное_имя/db_dump.sql |
В случае если phpmyadmin не установлен и на новом хостинге, то импортируем базу данным с помощью командой строки.
Подключаемся к новому хостингу по ssh, вводим данный нам логин/пароль, далее зайдем под root в MySQL:
1 |
# mysql -u root -p |
Создадим базу данных с именем «имя_БД».
1 |
# mysql> create database имя_БД; |
Создадим пользователя, где «имя_юзера» это логин пользователя в БД, «пароль» ваш пароль для входа в БД под именем_юзера.
1 |
mysql> grant usage on *.* to имя_юзера@s-engineer.ru identified by "пароль"; |
Назначим все привилегии для логина «имя_юзера» к базе «имя_БД»
1 |
mysql> grant all privileges on имя_БД.* to имя_юзера@s-engineer.ru; |
Загрузим на новый хостинг файл db_dump.sql по ftp, например используя Total commander.
И наконец импортируем базу данных из db_dump.sql
1 |
# mysql -u имя_юзера -p имя_БД < db_dump.sql |
Далее жмем Enter и вводим пароль.
3. Этап «перенос сайта»
Здесь все просто, с помощью протокола ftp копируем все содержимое директории www старого хостинга в директорию www нового. Это можно сделать с помощью Total Commander.
На директорию wp-content необходимо сменить пользователя, иначе вы не сможете из WordPress закачивать новые темы и плагины.
1 |
sudo chown -R login /var/www/wp-content |
Где login это ваш логин для входа по ssh на хостинг (не root).
4. Этап «настройка WordPress»
Откроем на новом хостинге файл wp-config.php
1 |
# mcedit wp-config.php |
Изменим строки на нужным нам значения:
1 2 3 |
define('DB_NAME', 'имя_БД'); define('DB_USER', 'имя_юзера'); define('DB_PASSWORD', 'пароль'); |
Также добавим следующие строки:
1 2 |
define('WP_HOME', 'http://доменное_имя_сайта'); define('WP_SITEURL', 'http://доменное_имя_сайта'); |
Все сайт на WordPress полностью перенесен на новый хостинг, осталось только его проверить.
Вам будет интересно:
Буду признателен если вы поделитесь данным постом
У меня при переносе worpdress с одного хостинга на другой выдало 500 Internal Server Error.
Подчистил файл .htaccess
все заработало
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ — [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
Спасибо, но есть методы попроще. Вот подробнее — https://x….ru , реально за 1 минуту можно перенести и разбираться в настройке не нужно!
Костя, если судить по вашей статье, то если на хостинге не будет панели управления и phpmyadmin, то вы сядете в лужу. На кнопочки тыкать и дети умеют, а вы перенесите на VDS хостинг.
Спасибо за полезную и интересную статью!
Спасибо вам Андрей, что читаете мой блог.
Спасибо за интересную и полезную статью!
Спасибо вам что были у меня в гостях!
Нет, Максим, не нужно. Те файлы и база данных, которые Вы заливаете на хостинг, содержат в себе все необходимое для корректной работы сайта.