Перенос WordPress на новый домен
Эта инструкция поможет вам перенести ваш сайт на WordPress с одного домена на другой, включая перенос файлов и баз данных с применением скрипта Search Replace DB.
Перенос файлов и базы данных
Шаг 1: Бэкап и перенос файлов сайта
scp -r /var/www/old_site_directory user@new_server_ip:/var/www/new_site_directory
Шаг 2: Настройка прав доступа
sudo chown -R www-data:www-data /var/www/new_site_directory/
Шаг 3: Экспорт и перенос базы данных
mysqldump -u username -p db_name > db_name.sql
scp db_name.sql user@new_server_ip:/path/to/directory
Шаг 4: Создание и импорт базы данных на новом сервере
mysql -u root -p
CREATE DATABASE db_name;
CREATE USER 'new_user'@'localhost' IDENTIFIED BY 'your-strong-password';
GRANT ALL PRIVILEGES ON db_name.* TO 'new_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
mysql -u new_user -p db_name < db_name.sql
Использование Search Replace DB для обновления ссылок
Установка скрипта
- Скачайте последнюю версию Search Replace DB с GitHub репозитория.
- Распакуйте архив в корневой каталог вашего сайта.
Использование через веб-интерфейс
- Откройте в браузере папку со скриптом:
http://new_domain/Search-Replace-DB-master
- Введите данные для подключения к базе данных и выполните поиск и замену старого домена на новый.
Использование через командную строку
php srdb.cli.php -h dbhost -n dbname -u dbuser -p "dbpass" -s "old_domain.com" -r "new_domain.com"
Примеры использования CLI
php srdb.cli.php -h localhost -n wordpress_db -u root -p "" -s "http://www.old_domain.com" -r "http://new_domain.com"
Настройка и запуск HTTPS
Установите и настройте SSL сертификаты с помощью Certbot:
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
sudo certbot --nginx -d new_domain -d www.new_domain
Автоматизация обновления сертификатов
crontab -e
0 0 15 * * sudo certbot renew --quiet
Известные проблемы и их решения
- При возникновении ошибок "Mixed Content" добавьте в
wp-config.php
:if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') $_SERVER['HTTPS'] = 'on';