В предыдущем руководстве я демонстрировал, как установить WordPress на сервере Linux. В этой публикации я покажу, как создать резервную копию вашего сайта WordPress и восстановить его без использования плагинов. Для этого вам потребуется доступ к вашему виртуальному частному серверу (VPS) или выделенному серверу через SSH, а также базовые навыки работы с командами Linux. Если вы используете общий хостинг, мне жаль, но эта информация не будет полезна для вас.
Содержание статьи
- 1 Создание резервной копии WordPress без использования плагинов
- 2 Создание резервной копии базы данных WordPress
- 3 Создание резервной копии файлов WordPress в корневом каталоге сайта.
- 4 Восстановление данных и файлов WordPress на аналогичном сервере.
- 5 Восстановление базы данных на платформе WordPress.
- 6 Восстановление данных WordPress
- 7 Передача файлов резервной копии на ваш электронный адрес.
- 8 Установка Heirloom Mailx.
- 9 Конфигурация Gmail в роли внешнего SMTP-сервера для отправки электронной почты.
- 10 Способы преодоления лимита на размер вложений в Gmail
- 11 Автоматизация процедуры.
- 12 Перенос вашего сайта WordPress на другой сервер.
- 13 Что нужно учесть перед тем, как удалить VPS
- 14 Заключение
Создание резервной копии WordPress без использования плагинов
Вы, возможно, слышали, что установка большого количества плагинов на ваш сайт WordPress может привести к его замедлению. Однако есть отличные новости для тех, кто использует виртуальный частный или выделенный сервер для хостинга WordPress. С помощью команд Linux и MySQL вы можете автоматизировать процесс создания резервных копий вашего сайта, что позволит вам избавиться от плагина для резервного копирования. И самое приятное — этот метод абсолютно бесплатен!
Для того чтобы осуществить резервное копирование сайта на WordPress, нужно сохранить копию базы данных и всех файлов, находящихся в директории webroot. Вначале я расскажу, как выполнить резервное копирование базы данных.
Создание резервной копии базы данных WordPress
Данная команда подходит как для MySQL, так и для MariaDB. Для тех, кто не в курсе, MariaDB является альтернативой MySQL. Это подразумевает, что 99% команд в MariaDB аналогичны тем, что используются в MySQL. Я настоятельно советую рассмотреть возможность перехода на MariaDB, если вы сейчас используете MySQL в качестве своей базы данных.
Чтобы определить, используете ли вы MariaDB или MySQL, выполните следующую команду в терминале:
mysql --version
mysql Ver 15.1 Distrib 10.3.22-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
Я использую MariaDB. Альтернативный способ выяснить, установлен ли у вас MySQL или MariaDB, — это подключиться к серверу базы данных через клиент MySQL.
sudo mysql - u root
После авторизации вам будет показано приветственное сообщение.
Добро пожаловать в мониторинг MariaDB. Команды заканчиваются на ; или \g. Ваш идентификатор подключения MariaDB 102 Версия сервера: 10.3.22-MariaDB-0ubuntu0.19.10.1-log Ubuntu 19.10 Авторские права (c) 2000, 2018, Oracle, MariaDB Corporation Ab и другие. Наберите 'help;' или '\h' для получения справки. Наберите '\c', чтобы очистить текущее выражение ввода.
Пожалуйста, предоставьте текст, который вы хотите, чтобы я перефразировал.
После этого необходимо активировать двоичное логирование, изменив файл конфигурации /etc/mysql/my. cnf или /etc/my. cnf, в зависимости от используемого дистрибутива Linux.
sudo nano /etc/mysql/my. cnf
sudo nano /etc/my. cnf
Вставьте следующий текст в раздел [mysqld].
log-bin=mysql-bin
[mysqld] user = mysql pid-file = /var/run/mysqld/mysqld. pid socket = /var/run/mysqld/mysqld. sock port = 3306 basedir = /usr datadir = /var/lib/mysql tmpdir = /tmp lc-messages-dir = /usr/share/mysql skip-external-locking log-bin=mysql-bin #
Сохраните файл и закройте его. После этого перезапустите сервер базы данных.
sudo systemctl restart mysql
sudo systemctl restart mariadb
Теперь примените команду mysqldump для создания резервной копии всей базы данных WordPress в формате. sql.
Вы можете уменьшить размер файла резервной копии, чтобы он не занимал много пространства.
sudo mysqldump - u root wordpress | gzip > wordpress. sql.gz
Создание резервной копии файлов WordPress в корневом каталоге сайта.
Файлы вашей установки WordPress, включая темы, плагины и загруженные изображения, располагаются в корневом каталоге веб-сайта. Путь к этому каталогу может быть, например, /var/www/html/ или /usr/share/nginx/html/, в зависимости от настроек вашего веб-сервера.
Для создания резервной копии файлов WordPress мы воспользуемся командной строкой и утилитой под названием tar, что является сокращением от tape archive. Введите в командной строке следующую команду.
sudo tar - cpvzf filename. tar.gz /var/www/html/
В данной команде представлено 5 вариантов, где:
- -c обозначает, что будет создан архивный файл.
- -p указывает на необходимость сохранения прав доступа к файлам, которые архивируются.
- -v : выводить детальную информацию.
- -z указывает на то, что архивный файл будет сжат с помощью gzip.
- -f обозначает файл.
filename. tar.gz — это название архивного файла, а путь /var/www/html/ указывает на то, что все файлы и папки в корневом каталоге веб-сервера будут упакованы и сжаты. Учтите, что ваш веб-корень может иметь другое местоположение, поэтому следует ознакомиться с конфигурацией вашего веб-сервера.
Восстановление данных и файлов WordPress на аналогичном сервере.
Теперь вы обладаете информацией о создании резервной копии вашей базы данных и файлов WordPress, но это не имеет смысла, если вы не умеете их восстанавливать.
Восстановление базы данных на платформе WordPress.
Допустим, ваш сайт на WordPress подвергся атаке из-за уязвимости в плагине. Если у вас имеется резервная копия базы данных, вы сможете быстро вернуть его к исходному состоянию. Введите следующую команду для импорта сохраненной ранее резервной копии базы данных в сервер MySQL или MariaDB.
sudo mysql - u root wordpress < wordpress. sql
После этого вам следует зайти на свой сервер базы данных и убедиться, что все ваши базы данных были успешно импортированы.
Восстановление данных WordPress
Сначала распакуйте архив.
tar - xzvf filename. tar.gz
Далее перенесите файлы WordPress в папку, которая служит корнем вашего веб-сайта. Предположим, что корневая директория вашего сайта находится по пути /var/www/html/.
sudo cp var/www/html/* /var/www/html/ - R
Передача файлов резервной копии на ваш электронный адрес.
Чтобы отправить файл резервной копии базы данных и файл резервной копии WordPress на свой электронный адрес, следуйте этим инструкциям.
Сначала необходимо установить heirloom mailx. Этот почтовый клиент является отличным инструментом для работы с электронной почтой. Он поддерживает вложения и позволяет отправлять письма через внешние SMTP-серверы, такие как Gmail.В данном примере мы будем отправлять файл резервной копии базы данных и файлы резервной копии WordPress в качестве вложений, используя Gmail в качестве SMTP-сервера.
Установка Heirloom Mailx.
На сервере CentOS или RHEL введите следующую команду:
sudo yum install - y mailx
На системе Fedora:
sudo dnf install - y mailx
На системе Debian или Ubuntu:
sudo apt-get install - y heirloom-mailx
Конфигурация Gmail в роли внешнего SMTP-сервера для отправки электронной почты.
Отредактируйте файл mailrc на серверах CentOS, RHEL или Fedora.
sudo vi /etc/mail.rc
на платформе Debian/Ubuntu
vi ~/.mail.rc
Добавьте следующий текст в файл.
set smtp-use-starttls set ssl-verify=ignore set smtp=smtp://smtp. gmail.com:587 set smtp-auth=login set smtp-auth-user=user-account@gmai.com установите smtp-auth-password=user-passwordустановить изuser-account@gmail.com(Ваш_Имя)"
Замените текст, выделенный зеленым, на информацию вашей учетной записи Gmail.После этого сохраните изменения и закройте файл. Теперь мы готовы отправлять электронные письма с помощью команды mail следующим образом:
Содержимое письма, которое будет отправлено через команду mail, следует после echo.
- -v включает детализированный режим, который покажет ваш статус подключения к Gmail.
- -a обозначает добавление вложения. Вы можете применить эту опцию несколько раз, чтобы прикрепить несколько файлов к вашему письму.
- -s указывает на тему.
- Финальный аргумент — это адрес электронной почты адресата, например, [email protected]. Кстати, вы можете отправить письмо себе. Это значит, что адрес отправителя и адрес получателя могут совпадать. Кроме того, есть возможность указать несколько адресов электронной почты для получения письма.
Серверы CentOS, RHEL и Fedora требуют добавления новой строки в файл mail.rc. Сначала загрузите три файла на ваш сервер и переместите их в папку. certs вашего домашнего каталога. Если вы используете Firefox на Linux, эти файлы также можно найти в соответствующей директории.~/.mozilla/firefox/.стандартный
После этого внесите следующую строку в файл /etc/mail.rc.
set nss-config-dir=/home//.certs/
Сохраните файл и закройте его. Теперь у вас есть возможность отправлять письма, используя Gmail в качестве промежуточного сервиса.
Способы преодоления лимита на размер вложений в Gmail
Gmail устанавливает лимит на общий размер вложений, которые может отправить пользователь, равный 25 МБ, в то время как учетная запись Gmail может принимать файлы размером до 34 МБ. Несмотря на то что ваша база данных может не расти слишком стремительно, файлы WordPress обычно увеличиваются достаточно быстро. Если размер вашего архивного файла превышает 25 МБ, вы можете разделить его на несколько частей и отправлять их по отдельности.
Деление документа
Для достижения этой цели мы воспользуемся командой split. Вот её синтаксис:
разделить - b 5M - d filename. tar.gz
Эта команда предназначена для разбиения файла filename. tar.gz на части размером по 5 мегабайт. Вы можете установить значение меньше 5M, однако оно должно быть не меньше 25M. Это название будет добавлено к каждому из разделенных файлов.
К примеру, если я введу такую команду:
split - b 5M - d linuxbabe. tar.gz wordpress
Мне станут доступны следующие файлы.
-rw-rw-r-- 1 user user 15M Nov 21 01:57 linuxbabe. tar.gz - rw-rw-r-- 1 user user 5.0M Nov 21 13:46 wordpress00 - rw-rw-r-- 1 user user 5.0M Nov 21 13:46 wordpress01 - rw-rw-r-- 1 user user 4.5M Nov 21 13:46 wordpress02
Архив linuxbabe. tar.gz разбит на три части. Например, если размер вашего архива составляет 40 мегабайт, вы можете воспользоваться следующей командой:
split - b 25M - d filename. tar.gz wordpress
Чтобы получить файл объемом 25 МБ и еще один размером 15 МБ, вам следует отправить эти два файла на свою учетную запись Gmail.Однако вам придется воспользоваться командой mail дважды для отправки каждого файла отдельно, так как одновременно отправить оба файла в одном вложении не получится.
Как соединить их в одно целое.
При восстановлении вашего сайта нужно объединить разъединенные файлы. Для этой задачи можно воспользоваться командой cat.
cat wordpress00 wordpress01 > wordpress. tar.gz
Автоматизация процедуры.
Да, вы вполне можете автоматизировать указанные процессы. Кто же не ценит автоматизацию? Мы настроим cron для планирования задач по резервному копированию. Установите его, используя следующие команды:
Для серверов на базе Debian или Ubuntu:
sudo apt-get install cron
sudo yum install crontabs
Для операционной системы Fedora:
sudo dnf install crontabs
Если вы применяете systemd, то его необходимо активировать после завершения установки.
sudo systemd start crond
Активируйте автозапуск при старте операционной системы.
sudo systemd enable crond
Организация процесса создания резервных копий задач.
Впишите данную команду в консоли:
crontab - e
Это приведет к открытию таблицы cron, в которую мы внесем задачи. К примеру, если необходимо выполнять резервное копирование базы данных ежедневно в 4 часа утра, добавьте следующий текст.
0 4 * * * mysqldump - u root - pвашпароль --all-databases --master-data | gzip > backup. sql.gz
Запись "0 4 * * *" указывает на выполнение задачи каждый день в 4:00. Пожалуйста, замените текст, выделенный зеленым, на пароль вашего пользователя в базе данных.
После этого мы подготовим резервную копию файлов WordPress в корневой директории веб-сервера. Вставьте следующий текст в новую строку.
5 4 * * * tar - cpzf filename. tar.gz /var/www/html/
Если корневой каталог вашего веб-сервера отличается от /var/www/html/, например, является /usr/share/nginx/html, необходимо внести соответствующие изменения. Таким образом, мы создаем резервные копии файлов WordPress ежедневно в 4:05. Затем нужно отправить эти копии в качестве вложений на наш электронный адрес.
Указанная команда будет выполнять резервное копирование нашей базы данных и файлов каждый день в 4:10. Я разделяю три задачи с интервалом в 5 минут. Если вы хотите, чтобы они выполнялись подряд, вы можете поступить следующим образом.
Двойной амперсанд (&&) указывает на выполнение следующей команды только в случае успешного завершения предыдущей. Это позволит избежать ожидания в течение 5 минут. Однако подобный подход может сделать ваш файл crontab менее аккуратным.
Чтобы освободить место на сервере, вы можете удалить резервную копию базы данных и файловую резервную копию после их отправки на электронную почту.
15 4 * * * rm backup. sql.gz filename. tar.gz
или просто воспользоваться командой rm, используя &&.
Чтобы ваша cron-задача выполнялась каждый час, можно использовать следующий подход:
или каждые два часа
Перенос вашего сайта WordPress на другой сервер.
Если восстановление выполняется на вашем исходном сервере, то задача завершена. Ваш сайт WordPress теперь функционирует корректно, как и раньше. Однако, если вы переносите сайт с оригинального сервера на новый, следуйте приведённым ниже указаниям.
- Сначала необходимо настроить стек LAMP или LEMP на вашем новом сервере.
- После этого необходимо скопировать файл виртуального хоста Apache или Nginx, а также файл SSL-сертификата на новый сервер. Не забудьте проверить файл виртуального хоста и перезапустить веб-сервер.
- Затем перенесите файлы WordPress в папку корневого веб-сервера на новом сервере.
- Затем необходимо создать новую пустую базу данных в MySQL или MariaDB на вашем новом сервере, как указано ниже.
Перейдите в корневую папку веб-сервера и найдите файл конфигурации WordPress по умолчанию.
sudo nano /var/www/html/wp-config.php
Этот процесс позволит вам открыть файл wp-config.php, в котором вы сможете обнаружить имя пользователя базы данных, созданное при первой установке WordPress, а также пароль этого пользователя, как указано ниже:
/** Имя базы данных для WordPress */ define('DB_NAME', 'имя-базы-данныхИмя пользователя для базы данных MySQL: define('DB_USER', 'имя-пользователя-базы-данныхПароль для базы данных MySQL задается следующим образом: define('DB_PASSWORD', 'пароль-пользователя');
Теперь подключитесь к серверу базы данных, используя следующую команду:
sudo mysql - u root
Сформируйте базу данных.
create database database-name;
Дайте пользователю все права доступа к базе данных WordPress.
grant all privileges on database-nameКонечно! database-username@localhost был идентифицирован с помощью 'user-password';
Отмените права доступа к базе данных.
flush privileges;
Покиньте сервер базы данных.
exit;
Теперь переместите резервный SQL-файл на новый сервер и выполните восстановление базы данных.
sudo mysql - u root wordpress < wordpress. sql
Вы успешно переместили свой сайт WordPress на другой сервер. Обновите запись DNS, и вскоре ваш сайт WordPress будет функционировать корректно!
Что нужно учесть перед тем, как удалить VPS
Перед тем как удалить VPS, который мне больше не требуется, я обычно выполняю определённые шаги. Это позволяет мне избежать потери важного программного обеспечения или данных, не проведя их миграцию.
- Перечень сертификатов TLS Let’s Encrypt на VPS можно получить с помощью команды sudo certbot certificates.
- Перечень активных сервисов на VPS можно получить с помощью команды sudo netstat - lnptu.
- Чтобы проверить использование дискового пространства, воспользуйтесь командой
sudo ncdu /. Убедитесь, что у вас установлена утилита ncdu: выполните команду
sudo apt install ncdu.
- Проверка существующих Cron-задач на VPS осуществляется командой sudo crontab - l.
- Проверяю свой домашний каталог на наличие файлов.
Заключение
Поздравляю! Вы успешно создали резервную копию своего сайта на WordPress, используя команды Linux. Примечательно, что вы можете автоматизировать процесс резервного копирования без необходимости приобретения плагина для WordPress. Более того, ваш сайт будет работать быстрее, так как вы избавились от плагина.
Поздравляю! Вы успешно создали резервную копию своего сайта на WordPress, используя команды Linux. Примечательно, что вы можете автоматизировать процесс резервного копирования без необходимости приобретения плагина для WordPress. Более того, ваш сайт будет работать быстрее, так как вы избавились от плагина.

