Как сделать backup WordPress.

Введение.

Продолжая разговор установки и обновления WordPress, необходимо уделить особое внимание созданию резервной копии WP. К этому вопросу требуется отнестись серьёзно. На рынке существует несколько плагинов резервирования и восстановления WordPress, которые можно успешно применять в работе. Модули плагинов backup/restore используют дополнительные ресурсы для подключения к Интернет и затрудняют контроль процессов Backup. В статье блога рассматривается ручной способ создания backup и возможности его автоматизации.

Порядок действий.

Основные действия при создании архива, выполняются из командной строки при ssh соединении с сервером, где работает WordPress. Для подключения к серверу WP подойдёт любая рабочая станция Linux. Весь процесс создания резервной копии и восстановления из архива состоит:

  • создание резервной копии базы данных WP
  • создание резервной копии папок и файлов WP
  • выполнение автоматизации backup
  • проверка архива и восстановление резервной копии
  • Стенд:
    • ALT Linux сервер, имя lin-wp; ip-10.0.2.8;
    • Альт Рабочая станция, имя: lin-kde, IP=10.0.2.33;
    • БД для WordPress имя: wp

Создание backup БД.

Выполнить инструкцию создания dump БД WordPress.

# cd /home
# mysqldump -uroot -pwordpress wp > wp_db.sql

В каталоге /home создаётся dump, wp_db.sql.

Backup папок и файлов WordPress.

Создание архива файлов WordPress в каталоге /home, по дате создания.

# cp -r /var/www/html/wordpress /home
# cd /home
# tar -cjf wp_`date +%d`_back.tar.bz2 wordpress
# ls 
# wp_16_back.tar.bz2

Автоматизация backup WordPress

Программа, bkwp, поможет автоматизировать процесс резервного копирования WP. Скрипт последовательно выполняет backup, создаёт dump БД, копирует файлы и каталоги во временную папку.

#!/bin/bash
TEMPDIR=/bkwp/
BACKUPDIR=/home/
mkdir -p $TEMPDIR
# Стор Apache2.
systemctl stop httpd2
# Стоп mysql
systemctl stop_mysqld
# dump MySQL.
mysqldump -uroot -pwordpress wp > $TEMPDIR/wp.sql
# Старт Apache2.
systemctl start httpd2
# Старт MySQL.
systemctl start mysqld
# Копировать каталоги и файлы WP.
cp -r /var/www/html/wordpress $TEMPDIR
# Сжать указав день создания.
tar -cjf $BACKUPDIR/wordpress_`date +%d`_back.tar.bz2 $TEMPDIR
# Удалить временный каталог
rm -rf /bkwp

Создаётся файл с указанием дня даты создания архива.

# ls
...
wordpress_19_back.tar.bz2

После распаковки архива, появляется папка wordpress и dump wp.sql.

# tar xvf wordpress_data_back.tar.bz2
# ls -l bkwp
...
drwxr-xr-x... wordpress
-rw-r--r--... wp.sql

Скрипт, bkwp, нужно поместить в /usr/local/bin, назначить crontab задачу по расписанию запуска, один раз в неделю.

# crontab -e
minute (0-59),
| hour (0-23),
| | day of the month (1-31),
| | | month of the year (1-12),
| | | | day of the week (0-6 with 0=Sunday).
| | | | | commands
00 00 * * 0 bkwp

Restore Backup.

Порядок действия при восстановлении резервной копии:

Перед восстановлением необходимо, создать «чистую» базу для WordPress, стендовое имя БД: wp

  • распаковать архив
  • удалить, если требуется, папку /var…/wordpress
  • скопировать каталог wordpress из архива в /var…/wordpress
  • восстановить БД
  • проверить БД
home]# tar xvf wordpress_data_back.tar.bz2
home]# rm -rf /var/www/html/wordpress
home]# cd bkwp
bkwp]# cp -r wordpress /var/www/html/wordpress
bkwp]# mysql -uroot -pwordpress wp < wp.sql
# mysqlcheck -uroot -pwordpress  --auto-repair --check --all-databases

Заключение.

К вопросу резервного копирования и восстановления надо подойти серьёзно. По мере наполнения сайта информацией, возрастает ответственность администратора за сохранность материала. На работу WordPress могут влиять различные факторы техногенного характера. Хорошая и проверенная резервная копия гарантирует надёжную работу сайта. Не ленитесь, смоделируйте на стенде технологический процесс Buckup/Restore, в дальнейшим это выручат при сбоях в работе оборудовании. Копии архивов храните на отдельных сетевых устройствах предприятия. Отслеживайте количество архивных копий, удаляйте старые, предупреждая этим от переполнение дисковую систему. Автоматизировать процесс удаления старых архивов WordPress, можно используя инструкцию delkb, прочитав эту статью.

Как установить WordPress Linux.

Введение.

Ситуации, когда государственные структуры вынужденны, выполняя требования ФЗ, разделить сеть Интернет от локальной LAN становится привычным. Системным администраторам приходится разворачивать локальные репозитории-зеркала, создавая хранилища. При установке публичных платформ, например WordPress, следует учитывать отсутствие связи с Интернет. Ранние уже рассматривалась работа CMS Joomla и подробное описание её установки. Теперь поговорим про установку CMS WordPress в изолированном сетевом окружении, без интернета.

Подготовка.

Базовый сервер, на котором будет работать WP, развернут по инструкции размещённой на сайте. Установка WordPress проходит в два этапа.

  • терминальный — выполнение команд при ssh соединение с сервером
  • графический — используется браузер в качестве клиента настройки
  • Стенд:
    • ALT Linux сервер, имя lin-wp; ip-10.0.2.8;
    • Альт Рабочая станция, имя: lin-kde, IP=10.0.2.33;
    • БД для WordPress имя: wp

Действия с Apache2.

В работе WP, используется веб-сервер Apache2, базовую инструкцию по установке, можно посмотреть здесь. Для удобства изложения, приведём краткую нотацию по установке Apache2.

# apt-get update;apt-get install apache2

Нам потребуется сведения о пакете php для поддержки MySQL.

# apt-cache search apache2-mod_*.php
apache2-mod_php7 - The php7 HTML-... for use with Apache2
# apt-get install apache2-mod_php7

Список команд для управления Apache2, приводится ниже.

# systemctl start|enable|stop|restart|is-enables|status httpd2

Проверить работу вэб-службы, можно, создав запросу к серверу.

Вид: проверить работу сервера вэб-сервера Apache2
Вид1: проверка работы Apache2.

Действия с MySQL.

Также, будет нужен сервер баз данных MySQL — устойчив, имеет поддержку и хорошею историю эксплуатации. Основную инструкцию и описание, для развёртывания MySQL смотрите здесь. Внизу приводится краткая справка по установке.

# apt-get update;apt-get install MySQL-server
# systemctl start|enable|stop|restart|status mysql
# mysqladmin -u root password
# New password:wordpress
# Confirm new password:wordpress

Создаём новую, чистую, базу данных для WordPress.

# mysql -uroot -pwordpress
mysql> create database wp;
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| wp                 |
+--------------------+
mysql> quit

Установка с терминала.

Скачиваем текущею версию WordPress с сайта, распаковываем в /var/www/html сервера, переходим в каталог wordpress.

# ls
wordpress-X.X.X-ru_RU.zip
# unzip wordpress-X.X.X-ru_RU.zip
# ls
wordpress
# cd wordpress

В каталоге wordpress, переименовываем файл wp-config-simple.php в wp-config.php.

# mv wp-config-sample.php wp-config.php

Редактируем wp-config.php, как показано ниже.

# vim wp-config.php 
...
/ ** Параметры базы данных:..
/** Имя базы данных для WordPress */
define( 'DB_NAME', 'wp' );

/** Имя пользователя базы данных */
define( 'DB_USER', 'root' );

/** Пароль к базе данных */
define( 'DB_PASSWORD', 'wordpress' );

/** Имя сервера базы данных */
define( 'DB_HOST', 'localhost' );
...

Установка графическая.

Для графической установки WordPress, необходимо, на рабочей станции запустить браузер. В адресной строке указать адрес сервера, где установлен экземпляр CMS WordPress. Мастер развёртывания WP произведёт настройку и на «лету» задаст несколько вопросов.

Вид: графическая установка wordpress.
Вид2: графическая установка WP.
Вид: главная страница настроек WP.
Вид3: главная страница настроек WP.
Вид: установка WP успешна.
Вид4: установка WP прошла успешно.
Вид: приглашение регистрации WP.
Вид5: приглашение регистрации WP.

Другой, альтернативный, способ графической установки, предполагает не трогать wp-config-simple.php. Предлагается, временно, изменит права доступа на каталог, где установлен WP.

# chmod 777 wordpress

Запустить браузер, Вид2, выполнить шаги мастера установки.

Вид: шаг №1 графической установки WP.
Вид6: шаг №1 графической установки WP.
Вид: шаг №2 графической установки WP.
Вид7: шаг №2 графической установки WP.
Вид: шаг №3 графической установки WP.
Вид8: шаг №3 графической установки WP.
Вид9: шаг №4 графической установки WP.

После выполнения, необходимо вернуть права доступа на каталог.

# chmod 755 wordpress

Сайт установлен и готов к работе. Учебник по работе с WordPress читайте в полезных ссылках.

Обновление WP.

Как, говорилось ранние, WordPress находится в изолированной среде, без Интернета. При обслуживание сайта, периодически возникнет необходимость обновления WP и плагинов. Сделать это можно несколькими способами, рассмотрим один из них. В статье будут приведены примеры установки плагина, темы и обновления WP до новой версии. Прежде чем приступить к обновлению, требуется выполнить резервное копирование WordPress.

Отключение плагинов.

Прежде чем приступить к обновлению, нужно временно, деактивировать плагины. Плагины отключаем с помощью консоли администратора.

Вид: отключение плагинов WP.
Вид10: отключение плагинов WP.

Обновление папок.

Скачиваем свежее zip обновление с официального сайта, не забывая проверить наличие замочка в строке адреса и md5 архива. Переносим полученный архив, используя FTP, на сервер WordPress и распаковываем в каталог /home.

home]# unzip wordpress-X.X.X-ru_RU.zip

Удаляем папку wordpress в каталоге /var/www/html, копируем на её место, свежею версию WP.

home]# rm -rf /var/www/html/wordpress
home]# cp -R wordpress /var/www/html/

Тонкие настройки обновления.

Общая работа выполнена, но для корректной работы WP, необходимо из архива скопировать файлы содержащие информацию о настройках WP.

  • wp-config.php — файл конфигурации
  • wp-content — папки тем и плагинов
  • .htaccess — файл защиты
  • robots.txt — информация для поисковых роботов

Проверка БД.

После всех манипуляций проверяем работу БД WordPress.

# mysqlcheck -uroot -pwordpress  --auto-repair --check --all-databases

Обновление сайта.

В адресной строке браузера указываем URL сайта.

Вид: обновление сайта WP.
Вид11: адрес настроек WP.

Перед этим сообщением, может появится предупреждение, очистки таблиц. Это нормально, очищать таблицы будем при помощи плагина WP-Optimize, на примере его установки

Если возникли трудности с регистрацией после обновления, требуется очистить cookie браузера.

Установка темы.

Перейдём к установке темы, в качестве примера выберем тему Twenty Sixteen. Архив twentysixteen.x.x.zip, с помощью FTP, перемещаем в каталог /home сервера и распаковываем.

# home] unzip twentysixteen.2.6.zip

Копируем распакованную папку архива темы Twenty Sixteen в /var…/wp-content

# cp -R twentysixteen /var/www/html/wordpress/wp-content/themes

Остаётся войти в консоль управления WP и активировать новую тему.

Вид: установка новой темы WP.
Вид12: установка новой темы WP.

Установка плагина.

В качестве плагина будем использовать, WP-Optimize, модуль очистки таблиц от неиспользованных записей. По прошествии времени, БД накапливает достаточное количество старых статей, ссылок, меток и т.д неиспользованного материала.

Плагин распакуем и копируем в /var/www/html/wordpress.

home]# unzip wp-optimize.x.x.x.zip
home]# cp -R wp-optimize /var/www/html/wordpress/wp-content/plugins

Открываем консоль администратора, раздел плагин и активируем модуль WP-Optimize.

Вид: активация плагина WP-Optimize.
Вид13: активация плагина WP-Optimize.

Действия после обновления.

Сайт запустился и работает в штатном режиме, остаётся провести проверочные мероприятия:

  • обновить или проверить постоянные ссылки
  • проверить правила в файле .htaccess
  • проверить плагины и темы для новой версии
  • активировать плагины

Заключение.

В статье рассмотрены вопросы установки и обновления WordPress в изолированной от Интернет, локальной сети предприятия. Ситуация, когда приходится использовать коммуникационные платформы без доступа к Интернет довольно часты. Руководители и администраторы ИТ подразделений, обязаны организовать доступ сотрудников предприятия к информации при неблагоприятных условиях. Если работает локальная сеть, домен, электронная почта, специализированные программы, то должны быть доступны информационные сайты. Многие CMS созданы для успешной работы, при условии прямого доступа к Интернет. Ситуация меняется, подключение к Интернет может носить временный характер, от админов требуется умение учитывать реальные факторы влияющие на ИТ процессы и вовремя реагировать на них.

Полезные ссылки.