Перенести сайт на WordPress на локальный сервер
Цель переноса
В моём случае цель переноса — это проверка резервной копии. Если удастся восстановить в минимально-работающем состоянии сайт на локальном сервере, значит резервные копии сайта на хостинге консистентные. И после их загрузки на локальный компьютер можно не беспокоится что если что-то случиться с хостингом, то ваш сайт пропадёт.
Здесь я не рассматриваю полный перенос сайта, то есть сайт на локальном сервере это просто копия для личного использования. Я не настраиваю https, не даю доступ к сайту из вне, сайт остаётся доступным только для моей локальной сети.
Забираем с хостинга файлы и базу данных
Сайт на WordPress состоит из файлов и базы данных, именно их и нужно перенести. А для начала нужно их забрать от вашего хостинга. Я работал только с хостингом reg.ru. На нём бэкапы создаются автоматически раз в сутки. Их нужно найти и скачать:
- дамп базы данных сайта;
- файлы сайта.
На разных хостингах это делается по разному. Поэтому, как это сделать, лучше уточнить у техподдержки вашего хостинга.
Скаченные архивы распаковываем на локальном компьютере и заливаем на сервер в уже распакованном виде.
Подготавливаем локальный сервер
В этой статье я буду переносить сайт на локальный сервер с операционной системой Debian 12. Установим необходимые пакеты:
# apt install -y nginx php-fpm php-mysql php-curl php-gd \
php-intl php-mbstring php-soap php-xml php-xmlrpc php-zip mariadb-server curl
Загрузим каталог с файлами в каталог /var/www/, это я проделываю с помощью SFTP. Затем изменим владельца каталога на www-data:
# chown -R www-data:www-data /var/www/<каталог с файлами>/
Создадим конфиг для сайта:
# nano /etc/nginx/sites-available/wp-home
server {
listen 80;
listen [::]:80;
root /var/www/<каталог с файлами>;
index index.php index.html index.htm;
server_name wp-home.ru;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
}
location = /favicon.ico { log_not_found off; access_log off; }
location = /robots.txt { log_not_found off; access_log off; allow all; }
location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
expires max;
log_not_found off;
}
}
Включим подготовленный конфиг, выключим конфиг по умолчанию, проверим конфигурацию и перезагрузим nginx:
# ln -s /etc/nginx/sites-available/wp-home /etc/nginx/sites-enabled/
# rm /etc/nginx/sites-enabled/default
# nginx -t
# systemctl reload nginx
Подготавливаем базу данных
Повышаем безопасность сервера mysql:
# mysql_secure_installation
Enter current password for root (enter for none): (оставляем пустым)
Switch to unix_socket authentication [Y/n] (нажимаем Enter)
Change the root password? [Y/n] (нажимаем Enter)
New password: (придумываем пароль)
Re-enter new password: (повторяем пароль)
Remove anonymous users? [Y/n] (нажимаем Enter)
Disallow root login remotely? [Y/n] (нажимаем Enter)
Remove test database and access to it? [Y/n] (нажимаем Enter)
Reload privilege tables now? [Y/n] (нажимаем Enter)
Создаём базу данных для WordPres:
# mariadb
> CREATE DATABASE wp1 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
> GRANT ALL ON wp1.* TO 'wp_user1'@'localhost' IDENTIFIED BY 'pass1';
> FLUSH PRIVILEGES;
> exit
- Здесь я создаю базу wp1 и даю к ней доступ пользователю wp_user1 с паролем pass1. Вы можете изменить эти значения.
На локальном компьютере открываем дамп скачанной базы данных любым текстовым редактором. На Windows, например, можно использовать Notepad++. Затем в тексте ищем и заменяем старый домен (например: https://sysadminium.ru) на новый домен (например: http://wp-home.ru). Подготовленный дамп базы данных кидаем на сервер.
А затем загружаем в базу данных:
# mysql wp1 < /home/alex/db.sql
- wp1 — это имя базы данных, в которую мы загружаем дамп.
- db.sql — это имя дампа базы данных, у вас оно может быть другим.
Редактируем конфиг WordPress
Вначале получим новые ключи для этого экземпляра WordPress:
# curl -s https://api.wordpress.org/secret-key/1.1/salt/
define('AUTH_KEY', '-cnVks63bC]HD%|08eL#tJu(|gh+3#z}*g]_UQoiS@zk!MEar>5xe,g$PbCT8xq;');
define('SECURE_AUTH_KEY', '9`HM?e;7+n8!&(ptv0ONFEZ=Ym;KRs41b*6k:@w-a@(X!<9F9t7a+ttSQw>l@6w|');
define('LOGGED_IN_KEY', 'um4G|;(qI;CKvrU%k=.&R5JKw%;UK_.|<|Y+&:39kqn;K~n=4qQNF^KmR=!}QOpT');
define('NONCE_KEY', 'dKvnl_dY&!U=5x>]5|qFG| v&!iYi^!3JFlMwHfEp]GQ?31]N+Z-+p~M+4b&&<a-');
define('AUTH_SALT', '!y7_1;3sY~wlbTTA3[yiberXY`5+i%|2kArQW|{nok|~F-E0}1K@;@~MM~xd;JZ2');
define('SECURE_AUTH_SALT', 'n|le>;^cH.qbu:yz0/J `|q3+>ul2/goE2,SGj1| k}+4J&<x^m`7q#6Iv4loG7f');
define('LOGGED_IN_SALT', 'z6>z*?TYVK*!5rNh@+8CJCo,WWl=->pO~|Ta-7_@ey8/DDM(NIBNV719@.ur.W$8');
define('NONCE_SALT', '+/8,<^#- NEN`;5&!a+We;C:OOE][t$vI)^q:ETRNMTA-1xH~c$0:q=zOeN`<j.w');
Теперь отредактируем конфиг WordPress:
# nano /var/www/<каталог с файлами>/wp-config.php
define('DB_NAME', 'wp1');
define('DB_USER', 'wp_user1');
define('DB_PASSWORD', 'pass1');
define('AUTH_KEY', '-cnVks63bC]HD%|08eL#tJu(|gh+3#z}*g]_UQoiS@zk!MEar>5xe,g$PbCT8xq;');
define('SECURE_AUTH_KEY', '9`HM?e;7+n8!&(ptv0ONFEZ=Ym;KRs41b*6k:@w-a@(X!<9F9t7a+ttSQw>l@6w|');
define('LOGGED_IN_KEY', 'um4G|;(qI;CKvrU%k=.&R5JKw%;UK_.|<|Y+&:39kqn;K~n=4qQNF^KmR=!}QOpT');
define('NONCE_KEY', 'dKvnl_dY&!U=5x>]5|qFG| v&!iYi^!3JFlMwHfEp]GQ?31]N+Z-+p~M+4b&&<a-');
define('AUTH_SALT', '!y7_1;3sY~wlbTTA3[yiberXY`5+i%|2kArQW|{nok|~F-E0}1K@;@~MM~xd;JZ2');
define('SECURE_AUTH_SALT', 'n|le>;^cH.qbu:yz0/J `|q3+>ul2/goE2,SGj1| k}+4J&<x^m`7q#6Iv4loG7f');
define('LOGGED_IN_SALT', 'z6>z*?TYVK*!5rNh@+8CJCo,WWl=->pO~|Ta-7_@ey8/DDM(NIBNV719@.ur.W$8');
define('NONCE_SALT', '+/8,<^#- NEN`;5&!a+We;C:OOE][t$vI)^q:ETRNMTA-1xH~c$0:q=zOeN`<j.w');
- Я указал только те опции, которые необходимо изменить.
- Если вы меняли имя базы данных, имя пользователя или пароль, то указываете свои данные.
Дополнительные действия
Теперь прописываем на своем локальном компьютере в файл hosts адрес к вашему локальному серверу. Например на windows это файл: C:\Windows\System32\drivers\etc\hosts. Здесь нужно прописать следующую строку:
192.168.0.25 wp-home.ru
192.168.0.25— это ip адрес моего локального сервера,wp-home.ru— название сайта на локальном сервере.
Открываем сайт http://wp-home.ru в браузере и видим свой перенесенный сайт на локальном сервере.
Переходим в админку, для этого используем следующий адрес: http://wp-home.ru/wp-login.php. Вводим свой пароль и логин, как от рабочего сайта. Затем выключаем ненужные плагины.
Также мне пришлось немного восстановить внешний вид сайта. Например, у меня слетело меню сайта, пришлось указать область его отображения. И слетело изображение заголовка и надпись заголовка (Blog Title), это легко восстанавливается.
После проделанного - статьи открываются, все рисунки и ссылки работают. Резервная копия сайта проверена. Дополнительно, вы можете поэкспериментировать с локальной версией сайта.
Если понравилась статья, подпишись на мой канал в VK или Telegram .