Перенос сайта на WordPress Multisite c локального сервера на хостинг и обратно – тема, которую считают очень сложной, хотя ничего сложного здесь нет. Сейчас вы в этом убедитесь. Надеюсь, что статья будет полезной для начинающих разработчиков на WordPress.
Что же нам нужно сделать?
Все тоже самое, что и при переносе обычного сайта на WordPress. Нас ожидают:
- 1. Перенос файлов сайта на хостинг
- 2. Перенос базы данных
- 3. Правка файла .htaccess
- 4. Правка файла wp-config.php
У меня есть сайт на 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’] );.
Надеюсь, что эта статья окажется полезной, ну а тем, у кого есть вопросы, предложения или советы, попрошу не пожалеть времени и написать комментарий. Спасибо!