Перенос wordpress
Заметка для переноса сайта на WordPress на другой сервер. В целом схема подходит для чего угодно. Описание будет для MySQL, если PostgreSQL, MariaDB или SQLite, то там синтаксис отличается, но суть одна.
Делаем дамп нужной базы данных:
mysqldump -u [пользователь] -p [имя_базы] > backup.sql
Устанавливаем MySQL на нужный сервер:
apt install mysql-server
Далее задаем root пароль и прочие параметры:
sudo mysql_secure_installation
Запускаем и проверяем статус:
systemctl start mysql
systemctl status mysql
Входим и создаем новую базу данных:
sudo mysql -u root -p
mysql -u root -p -e "CREATE DATABASE new_db_name;"
mysql -u root -p -e "CREATE USER 'new_user'@'localhost' IDENTIFIED BY 'new_password';"
mysql -u root -p -e "GRANT ALL PRIVILEGES ON new_db_name.* TO 'new_user'@'localhost';"
mysql -u root -p -e "FLUSH PRIVILEGES;"
EXIT;
Веб-сервер у нас nginx. Устанавливаем:
apt install nginx -y
Создаем папку и устанавливаем права:
mkdir -p /var/www/wordpressfiles
chown -R www-data:www-data /var/www/wordpressfiles
chmod -R 755 /var/www/wordpressfiles
После создания конфига активируем и проверяем:
ln -s /etc/nginx/sites-available/wordpressfiles /etc/nginx/sites-enabled/
nginx -t
systemctl restart nginx
Импортируем бекап базы данных:
mysql -u new_user -p new_db_name < /path/base.sql
Если возникнет ошибка, то дадим права:
chown mysql:mysql /path/base.sql
chmod 644 /path/base.sql
Проверим:
mysql -u new_user -p
USE new_db_name;
SHOW TABLES;
Теперь настроим wp-config.php для доступа к базе, если данные изменились:
define('DB_NAME', 'new_db_name');
define('DB_USER', 'new_user');
define('DB_PASSWORD', 'new_password');
define('DB_HOST', 'localhost'); // или IP сервера с базой
Если нужно поменять домен сайта, то необходимо внести изменения в таблицу MySQL:
mysql -u new_user -p new_db_name -e "UPDATE wp_options SET option_value='http://newsite.com' WHERE option_name='siteurl' OR option_name='home';"
В целом всё. Если коротко, упрощенно.