WordPress: плагины для работы с облачным хранилищем

В одной из предыдущих публикаций мы уже писали о преимуществах, которые даёт интеграция нашего облачного хранилища с CMS. В комментариях к этой статье (а она была написана полтора года назад) были вопросы о том, существуют ли специализированные плагины для WordPress. На тот момент таких плагинов почти не было, а те, которые были, находились в весьма «сыром» состоянии. На сегодняшний день ситуация изменилась: появилось несколько интересных и полезных плагинов, о которых мы подробнее расскажем ниже.

Selectel Storage Upload

Плагин Selectel Storage Upload предназначен для синхронизации файлов, помещённых в медиабиблиотеку WordPress, с нашим облачным хранилищем. Зачем это нужно? Каждый медиафайл, загружаемый через стандартный интерфейс Worpdress, автоматически копируется в хранилище. Если медиафайлы на основном сервере будут по какой-то причине потеряны — их всегда можно будет лего восстановить. Наличие копий в хранилище также упрощает перенос сайта на другой хостинг.

Кроме того, плагин можно настроить так, что весь «тяжелый» контент, будет размещён только в хранилище, а не на основном сервере. Это позволяет существенно снизить нагрузку на сервер. Так как все файлы, помещённые в хранилище, будут раздаваться через CDN, пользователи будут получать их с географически ближайшего кэширующего сервера на максимальной скорости.

Плагин Selectel Storage Upload можно установить как через графический интерфейс WordPress (меню «Плагины«→ «Добавить новый»), так и вручную (скачать можно здесь).

По завершении установки Selectel Storage Upload будет добавлен в список доступных плагинов.

Чтобы плагин начал работать, его требуется активировать. Сразу же предупреждаем, что Selectel Storage Upload скорее всего не получится активировать с первого раза: будет выдано сообщение о том, что для нормального функционирования плагина требуется cURL версии 7.16.2+.

Исправить эту ошибку можно так: открываем конфигурационный файл php.ini(etc/php5/apache2/php.ini; в других инсталляциях его местнахождение может отличаться) и добавляем следующие строки:

;cUrl
extension=/usr/lib/php5/200121212/curl.so

Путь к файлу curl.so также может отличаться, и лучше уточнять его через поиск.
Внеся необходимые изменения, перезапустим веб-сервер:

$ sudo /etc/init.d/apache2 restart

После этого проблем с активацией быть не должно. Можно переходить к настройке плагина.

Войдём в хранилище под своей учётной записью и создадим контейнер, в котором будут храниться медиафайлы. Создадим также дополнительного пользователя, который будет иметь доступ только к этому контейнеру (это нужно сделать из соображений безопасности).

В меню WordPress выбираем пункт «Настройки» → «Selectel Upload». Откроется следующая страница:

selectel storage upload

Здесь всё просто и понятно. Указываем реквизиты доступа (имя и пароль созданного нами пользователя), а также имя контейнера для медиафайлов. Путь к медиафайлам на локальной машине, а также URL авторизации в хранилище устанавливаются по умолчанию.
Как уже было сказано выше, можно настроить плагин так, что все загружаемые файлы будут сразу же помещаться в хранилище, минуя медиабиблиотеку, и находиться только там. Для этого нужно установить флажок «Хранить файлы только в Selectel Storage».
К контейнеру, где будут храниться медиафайлы, должен быть обязательно прикреплён домен. В поле «Полный URL-путь к файлам» нужно будет указать адрес этого домена (например, http://uploads.example.com).
Можно раздавать файлы и без прикрепления домена. В поле «Полный URL-путь к файлам» в этом случае нужно будет указать адрес вида http://xxx.selcdn.com/имя контейнера.

Плагин W3 Total Cache: раздача статики через CDN

Для ускорения и оптимизации работы сайтов на Wordpress существует целый ряд специализированных плагинов, самым известным из которых является W3 Total Cache.

Подробно описывать процедуры установки и настройки этого плагина в этой статье мы не будем: в Интернете опубликовано немало детальных инструкций (см., например, здесь). Мы расскажем о том, как с помощью W3 Total Cache и нашего облачного хранилища организовать раздачу статики через CDN.

Установим плагин в соответствии с инструкцией по ссылке выше. Затем проверим конфигурационные файлы. В файле wp-config.php обязательно должны присутствовать следующие строки (если их нет, то их нужно будет добавить вручную):

/** Enable W3 Total Cache */
define('WP_CACHE', true); // Added by W3 Total Cache

Файл .htaccess должен выглядеть так (соответствующие изменения в случае необходимости нужно будет опять же внести вручную):

#BEGIN W3TC Browser Cache
<IfModule mod_deflate.c>
    <IfModule mod_headers.c>
        Header append Vary User-Agent env=!dont-vary
    </IfModule>
    <IfModule mod_filter.c>
        AddOutputFilterByType DEFLATE text/css text/x-component application/x-j$
    <IfModule mod_mime.c>
        # DEFLATE by extension
        AddOutputFilter DEFLATE js css htm html xml
    </IfModule>
    </IfModule>
</IfModule>
# END W3TC Browser Cache
# BEGIN W3TC CDN
<FilesMatch "\.(ttf|ttc|otf|eot|woff|font.css)$">
<IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin "*"
</IfModule>
# END W3TC CDN

Сохраним внесённые изменения и перейдём непосредственно к настройке плагина.
После установки W3 Total Cache в главном меню появится новый пункт — Performance. Выбираем Performance → General Settings; на открывшейся странице находим раздел CDN. К сожалению, пока что W3 Total Сache невозможно «подружить» с любым облачным сервисом на базе OpenStack Swift, поэтому мы будет взаимодействовать с нашим хранилищем по протоколу FTP.
Устанавливаем флажок Enabled и выбираем в списке CDN Type пункт Self Hosted/File Transfer Protocole Upload:

w3tc1

Затем выбираем в меню пункт Performance → CDN. Откроется страница настроек. Обратим внимание на поле Configuration:

w3tc 2

В поле FTP hostname указываем ftp.selcdn.ru, в полях FTP Username и FTP Password — имя пользователя и пароль (не забываем о том, что для работы с FTP лучше создать отдельного пользователя с ограниченными правами доступа). В поле FTP path укажем имя контейнера, в котором будут храниться статические файлы сайта; перед именем нужно поставить слэш (например, /mysite).
В поле «Replace your hostname with:» указываем каноническое имя, которое будет отображаться в адресах загружаемых файлов вместо «***.selcdn.com».
При загрузке сайта ссылки на изображение будут содержать CNAME, а не фактический домен.
Чтобы сайт работал ещё быстрее, можно указать несколько CNAME-записей, каждая их которых будет закреплена за определённым типом контента.

Установив нужные настройки, нажмём на кнопку Save All Settings.

Внутри указанного контейнера будет автоматически создана папка /wp-content/upload, куда и будет складываться весь статичный контент.

Плагин UpdraftPlus: резервное копирование в облако

UpdraftPlus — простой и удобный в обращении плагин для создания резервных копий сайтов на Wordpress, поддерживающий протокол OpenStack Swift.
Прежде чем устанавливать этот плагин, нужно выполнить ряд подготовительных действий:

  • создадим в хранилище контейнер, в который будут помещаться резервные копии;
  • создадим специального пользователя, который будет иметь доступ только к этому контейнеру;
  • на сервере создадим в директории wp-content папку для временного хранения резервных копий, доступную для записи.

Теперь установим UpdraftPlus (меню «Плагины» → «Добавить новый»). После активации плагина в меню WordPress будет добавлен пункт «Резервные копии Updraft Plus».
Выберем этот пункт и перейдём на вкладку «Настройки». Найдём раздел «Поместить вашу резервную копию в удалённое хранилище». В выпадающем списке «Выберите ваше удаленное хранилище» выбираем OpenStack Swift.

Далее укажем реквизиты доступа к хранилищу:

wp3

В поле «URI для авторизации» указываем https://auth.selcdn.ru . В поле «Арендатор» (именно так в русской версии плагина передаётся термин tenant) указываем номер учётной записи. Далее укажем в соответствующих полях имя созданного нами пользователя и его пароль.
В поле «Контейнер» указываем имя контейнера, в котором будут храниться резервные копии.
Заполнив все поля, нажмём на кнопку «Проверить настройки OpenStack». В случае успешной проверки будет выведено сообщение о том, что плагин получил доступ к контейнеру и может создавать в нём файлы.

Далее перейдём в раздел «Расширенные/отладочные настройки» и нажмём на ссылку «Показать экспертные настройки». Найдём там поле «Директория резеврного копирования» и впишем в него имя созданной ранее папки для временного хранения резервных копий.
Вот и всё . Плагин сконфигурирован для работы с хранилищем. На вкладке «Настройки» также можно указать, какие именно файлы следует включать в резервную копию и с какой периодичностью нужно осуществлять резервное копирование.
Установив все необходимые параметры, нажмём на кнопку «Сохранить настройки» и перейдём на вкладку «Текущий статус»:

wp4

Чтобы запустить процесс резеврного копирования, достаточно нажать на кнопку «Создать РК сейчас».
Операция восстановление данных из резервной копии также выполняется предельно просто — путём нажатия на соответствующую кнопку.

Заключение

Работая над этой статьёй, мы просмотрели довольно много плагинов для WordPress, но в обзор из включать не стали: в большинстве своём они находятся в весьма «сыром» состоянии и вряд ли могут быть рекомендованы к использованию. А число плагинов, которые можно настроить для работы с любымоблачным хранилищем на базе OpenStack Swift, крайне невелико.Так что разработчикам плагинов для WordPress ещё есть над чем потрудиться.

Многие из вас имеют опыт разработки и администрирования сайтов на Wordpress. Может быть, вы знаете ещё какие-нибудь интересные плагины, поддерживающие протокол OpenStack Swift? Будем очень признательны, если вы расскажете о них в комментариях.

Что еще почитать по теме

T-Rex 30 марта 2021

Что такое SMTP-протокол и как он устроен?

SMTP (Simple Mail Transfer Protocol) — протокол передачи почты. Он был представлен еще в 1982 году, но не теряет актуальности до сих пор. В статье разбираемся, какие задачи решает протокол и как он ра…
T-Rex 30 марта 2021
Владимир Туров 1 сентября 2020

Дело совершенно секретного iPod

Это был обычный серый день в конце 2005 года. Я сидел на рабочем месте и писал код для следующей версии iPod. Вдруг без стука ворвался директор ПО для iPod, начальник моего начальника, и закрыл дверь.
Владимир Туров 1 сентября 2020
T-Rex 21 августа 2020

TrendForce: цены на SSD упадут

Эксперты DRAMeXchange предсказывают значительное падение цен на оперативную память и твердотельные накопители в ближайшее время. Причина — сокращение спроса на чипы для NAND и DRAM.
T-Rex 21 августа 2020

Новое в блоге

Михаил Фомин 24 июня 2022

Docker Swarm VS Kubernetes — как бизнес выбирает оркестраторы

Рассказываем, для каких задач бизнесу больше подойдет Docker Swarm, а когда следует выбрать Kubernetes.
Михаил Фомин 24 июня 2022
Ульяна Малышева 30 сентября 2022

«Нулевой» локальный диск. Как мы запустили облако только с сетевыми дисками и приручили Ceph

Чем хороши сетевые диски и почему именно Ceph, рассказал директор по развитию ядра облачной платформы Иван Романько.
Ульяна Малышева 30 сентября 2022
Валентин Тимофеев 30 сентября 2022

Как проходит онбординг сотрудников ИТО? Что нужно, чтобы выйти на смену в дата-центр

Рассказываем, как обучаем новых сотрудников, какие задачи и испытания проходят инженеры прежде, чем выйти на свою первую смену.
Валентин Тимофеев 30 сентября 2022
T-Rex 28 сентября 2022

Книги по SQL: что почитать новичкам и специалистам

Собрали 6 книг, которые помогут на старте изучения SQL и при углублении в тему.
T-Rex 28 сентября 2022