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

Перенос сайта на WordPress Multisite c локального сервера на хостинг и обратно – тема, которую считают очень сложной, хотя ничего сложного здесь нет. Сейчас вы в этом убедитесь. Надеюсь, что статья будет полезной для начинающих разработчиков на WordPress.

Что же нам нужно сделать?
Все тоже самое, что и при переносе обычного сайта на WordPress. Нас ожидают:

У меня есть сайт на WordPress Multisite с поддоменами на локальном сервере Open Server, доступный по url адресам http://localhost/seattle и http://en.localhost/seattle, который я собираюсь перенести на хостинг с доменом https://seattle.by/wordress и поддоменом https://en.seattle/wordpress.

Тут сделаем паузу, чтобы я объяснил вам как настраиваются поддомены для того, чтобы сайт на WordPress Multisite начал работать.
На локальном сервере Open Server для того, чтобы сайт и по url с доменом, и по url с поддоменом обращался к одним и тем же файлам, в настройках Open Server во вкладке алиасы добавим алиас *.localhost => localhost
На хостинге для этого необходимо в cPanel создать поддомен seattleby.com и в качестве корня документа указать указать /public_html.

1. Перенос файлов сайта на хостинг

Копирование файлов можно сделать либо через ftp, либо через cPanel (закачать архив, а потом его распаковать), либо через консоль через ssh.

scp –rp seattle/ username@seattle.by:public_html/wordpress/

Консоль открыта в localhost.
seattle/ – каталог, в котором у меня установлен WordPress.
username – имя для домена seattle.by (совпадает с именем для входа через cPanel).
public_html/wordpress/ — путь от корня сайта до папки, в которую копируются файлы.
флаг r – рекурсивное копирование.
флаг p – сохраняет время модификаций файлов.
Затем нужно будет ввести пароль (как и в cPanel). При вводе его не будет видно.

2. Перенос базы данных

2.1. Экспорт базы данных

Экспорт базы данных можно осуществить либо плагином, либо через phpMyAdmin, либо через консоль.

mysqldump –u username -p database > dbbackup.sql

username – имя для входа в phpMyAdmin.
database – имя базы данных.
dbbackup.sql – путь куда будет экспортирована базы данных.
Затем нужно будет ввести пароль для входа в phpMyAdmin. При вводе его не будет видно.

2.2. Изменения в базе данных

Заменяем все старые домены на новые.
http://localhost/seattle меняем на https://seattle.by
http://en.localhost/seattle меняем на https://seattleby.com

Я сделаю изменения в консоли.

sed 's/http:\/\/en.localhost\/seattle/https:\/\/seattleby.com\/wordpress/g' backup.sql > dbbackup-2.sql
sed 's/http:\/\/localhost\/seattle/https:\/\/seattle.by\/wordpress/g' dbbackup-2.sql > dbbackup-3.sql

dbbackup-3.sql – нужный нам бэкап базы данных.

2.3. Импорт базы данных

Импортировать базу данных на seattle.by можно через консоль или через phpMyAdmin.
Импорт dbbackup-3.sql выполним через phpMyAdmin, т.к. в пункте 2.4 снова будем использовать phpMyAdmin.

2.4. Изменения в таблицах базы данных

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

таблица «wp_options»

таблица «wp_site»

таблица «wp_sitemeta»

таблица «wp_blogs»

таблица «wp#options»
где # – это номер блога (сайта), например, ‘_2’.

С базой данных закончили.

3. Правка файла .htaccess

В файле .htaccess (в cPanel или через ftp клиент, например, FileZilla) меняем RewriteBase. Вместо RewriteBase /seattle/ пишем RewriteBase /wordpress/, т.к. ранее WordPress был установлен в папку seattle, а сейчас он будет находиться в папке wordpress.

4. Правка файла wp-config.php

В wp-config.php изменения нужны в строках

define('DB_NAME', database);
define('DB_USER', 'root');
define('DB_PASSWORD', '');
define('DB_HOST', 'localhost');

define('DOMAIN_CURRENT_SITE', 'localhost');
define('PATH_CURRENT_SITE', '/seattle/');

Я дал исходный файл и думаю, что догадаться что на что здесь нужно поменять будет несложно.
Если не работает авторизация в административной панели, в wp-config.php нужно дописать define(‘COOKIE_DOMAIN’, $_SERVER[‘HTTP_HOST’] );.

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

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

Ваш адрес email не будет опубликован.