Вступление
DigitalOcean Spaces - это сервис хранения объектов, который можно использовать для хранения больших объемов разнообразных неструктурированных данных. Сайты WordPress, которые часто включают в себя изображения и видео, могут быть хорошими кандидатами на решение для хранения объектов. Использование хранилища объектов для этих типов статических ресурсов может оптимизировать производительность сайта, освобождая пространство и ресурсы на ваших серверах. Для получения дополнительной информации о хранилище объектов и WordPress ознакомьтесь с нашим руководством поHow To Back Up a WordPress Site to Spaces.
В этом руководстве мы будем использовать плагин WordPress, который работает непосредственно с DigitalOcean Spaces, чтобы использовать его в качестве основного хранилища ресурсов. ПлагинDigitalOcean Spaces Sync направляет данные нашей медиа-библиотеки WordPress в Spaces и предоставляет вам различные варианты конфигурации в зависимости от ваших потребностей, оптимизируя процесс использования хранилища объектов с вашим экземпляром WordPress.
Предпосылки
В этом руководстве предполагается, что у вас есть экземпляр WordPress на сервере, а также пространство DigitalOcean. Если у вас нет этой настройки, вы можете выполнить следующее:
-
Один сервер Ubuntu 16.04, настроенный в соответствии с нашимиInitial Server Setup with Ubuntu 16.04 tutorial.
-
Стек LAMP установлен на вашем сервере, следуя нашему руководству поHow To Install Linux, Apache, MySQL, PHP (LAMP) stack on Ubuntu 16.04.
-
WordPress установлен на вашем сервере, следуя нашему руководству поHow To Install WordPress with LAMP on Ubuntu 16.04.
-
Ключ DigitalOcean Space и API, созданный следующим образомHow To Create a DigitalOcean Space and API Key.
-
WP-CLI установлен следующим образомthese instructions.
С этими необходимыми условиями мы готовы начать использовать этот плагин.
Изменение разрешений WordPress
На протяжении этого руководства мы будем работать с папкойwp-content/uploads
в нашем проекте WordPress, поэтому важно, чтобы эта папка существовала и имела правильные разрешения. Вы можете создать его с помощью командыmkdir
, используя флаг-p
, чтобы создать папку, если она не существует, и избежать выдачи ошибки, если она есть:
sudo mkdir -p /var/www/html/wp-content/uploads
Теперь вы можете установить разрешения для папки. Во-первых, установите право собственности на своего пользователя (здесь мы будем использоватьsammy, но обязательно использовать не rootsudo
пользователя), а групповое владение - для группыwww-data
:
sudo chown -R sammy:www-data /var/www/html/wp-content/uploads
Затем установите разрешения, которые предоставят веб-серверу доступ на запись в эту папку:
sudo chmod -R g+w /var/www/html/wp-content/uploads
Теперь мы сможем использовать наши плагины для создания хранилища в объектном хранилище для ресурсов в папкеwp-content/uploads
, а также для взаимодействия с нашими активами из интерфейса WordPress.
Установка DigitalOcean Spaces Sync
Первым шагом в использовании DigitalOcean Spaces Sync будет установка его в нашу папку WordPress. Мы можем перейти к папке плагинов в вашем каталоге WordPress:
cd /var/www/html/wp-content/plugins
Отсюда мы можем установить DigitalOcean Spaces Sync с помощью командыwp
:
wp plugin install do-spaces-sync
Чтобы активировать плагин, мы можем запустить:
wp plugin activate do-spaces-sync
Отсюда мы можем перейти к вкладке плагинов в левой части нашей панели администрирования WordPress:
Мы должны увидеть DigitalOcean Spaces Sync в нашем списке активированных плагинов:
Чтобы управлять настройками DigitalOcean Spaces Sync, мы можем перейти на вкладкуSettings и выбратьDigitalOcean Spaces Sync в меню:
DigitalOcean Spaces Sync теперь даст нам возможность настроить хранилище наших активов:
ПолеConnection Settings в верхней половине экрана запрашивает ключ доступа и секрет к Spaces. Затем он запросит нашContainer, который будет именем нашего пространства, иEndpoint.
Вы можете определить конечную точку вашего пространства на основе его URL. Например, если URL-адрес вашего пространстваhttps://example-name.nyc3.digitaloceanspaces.com
, тоexample-name
будет вашим ведром / контейнером, аnyc3.digitaloceanspaces.com
будет вашей конечной точкой.
В интерфейсе плагина разделEndpoint будет предварительно заполнен значением по умолчаниюhttps://ams3.digitaloceanspaces.com
. Вы должны изменить эту конечную точку, если ваше Пространство живет в другом регионе.
Далее вам будет предложено ввестиFile & Path Settings. В поле с пометкойFull URL-path to files вы можете ввести либо публичный домен хранилища, если ваши файлы будут храниться только в вашем пространстве, либо полный URL-путь, если вы будете хранить их в своем пространстве и на сервере.
Например, если ваш проект WordPress расположен в/var/www/html
, и вы хотите хранить файлы как на вашем сервере, так и в пространстве, тогда вы должны ввести:
-
http://your_server_ip/wp-content/uploads
в полеFull URL-path to files -
/var/www/html/wp-content/uploads
в полеLocal path
ПараметрыStorage prefix иFilemask предварительно заполнены, и их не нужно изменять, если вы не хотите указать определенные типы файлов для синхронизации.
Мы рассмотрим особенности хранения файлов на вашем сервере и на Space и только на вашем Space в следующих разделах.
Синхронизация и сохранение файлов в нескольких местах
DigitalOcean Spaces Sync предлагает возможность сохранять файлы на вашем сервере, а также синхронизировать их с вашим пространством. Эта утилита может быть полезна, если вам нужно хранить файлы на вашем сервере, но вы также хотели бы, чтобы резервные копии хранились в другом месте. Мы пройдем процесс синхронизации файла с нашим пространством, сохраняя его на нашем сервере. Для целей этого примера мы предположим, что у нас есть файл с именемsammy10x10.png
, который мы хотели бы сохранить в нашей медиа-библиотеке и в нашем пространстве.
Сначала перейдите на вкладкуSettings на административной панели WordPress и выберитеDigitalOcean Spaces Sync в меню представленных опций.
Затем в полеConnections Settings введите свой Spaces Key и Secret, а затем вашиContainer иEndpoint. Помните, что если URL вашего пространстваhttps://example-name.nyc3.digitaloceanspaces.com
, тоexample-name
будет вашимContainer, аnyc3.digitaloceanspaces.com
будет вашимEndpoint. Проверьте свои соединения, нажав кнопкуCheck the Connection в нижней части поляConnection Settings:
Теперь мы готовы заполнитьFile & Path Settings.
В полеFull URL-path to files мы можем ввести наш полный URL-путь, поскольку мы сохраняем наш файл на нашем сервере и в нашем пространстве. Здесь мы будем использовать IP-адрес нашего сервера, но если у вас есть домен, вы можете поменять IP-адрес вашего доменного имени. Подробнее о регистрации доменов в DigitalOcean см. В нашем руководстве поHow To Set Up a Host Name with DigitalOcean. В нашем случаеFull URL-path to files будетhttp://your_server_ip/wp-content/uploads
.
Затем мы заполним полеLocal path локальным путем к каталогуuploads
:/var/www/html/wp-content/uploads
.
Поскольку мы работаем с одним файлом, нам не нужно изменять разделыStorage prefix иFilemask. По мере увеличения размера и разнообразия вашей медиа-библиотеки WordPress вы можете изменить этот параметр, чтобы настроить таргетинг на отдельные типы файлов, используя подстановочные знаки и расширения, такие как*.png
в полеFilemask.
Ваш окончательныйFile & Path Settings будет выглядеть так:
Обязательно сохраните изменения конфигурации, нажав кнопкуSave Changes внизу экрана.
Теперь мы можем добавить наш файлsammy10x10.png
в нашу медиатеку WordPress. Мы будем использовать командуwp media import
, которая импортирует файл из нашего домашнего каталога в нашу медиатеку WordPress. В этом случае наш домашний каталог будет принадлежатьsammy, но в вашем случае это будет ваш некорневой пользовательsudo
. Когда мы перемещаем файл, мы будем использовать параметр--path
, чтобы указать местоположение нашего проекта WordPress:
wp media import --path=/var/www/html/ /home/sammy/sammy10x10.png
Посмотрев на наш интерфейс WordPress, мы должны теперь увидеть наш файл в нашемMedia Library. Мы можем перемещаться туда, следуя вкладкеMedia Library в левой части нашей административной панели WordPress:
Если мы перейдем на нашу страницу Spaces в панели управления DigitalOcean, мы также должны увидеть файл в нашем Space.
Наконец, мы можем перейти в нашу папкуwp-content/uploads
, где WordPress создаст подпапку с годом и месяцем. В этой папке мы должны увидеть наш файлsammy10x10.png
.
Хранение файлов на пространствах
Плагин DigitalOcean Spaces Sync имеет дополнительную опцию, которая позволит нам хранить файлы только на нашем Пространстве, если мы хотим оптимизировать пространство и ресурсы на нашем сервере. Мы будем работать с другим файлом,sammy-heart10x10.png
, и установим наши настройки синхронизации DigitalOcean Spaces так, чтобы этот файл хранился только в нашем пространстве.
Во-первых, давайте вернемся к главной странице конфигурации плагина:
Мы можем оставить информациюConnection Settings, но мы изменимFile & Path Settings. Во-первых, вFull URL-path to files мы напишем общедоступное хранилище. Опять же, мы будем использовать IP-адрес нашего сервера, но вы можете заменить его на домен, если он у вас есть:http://uploads.your_server_ip
Затем мы перейдем кSync Settings внизу страницы и щелкнем первое поле, что позволит нам «хранить файлы только в облаке и удалять после успешной загрузки». Ваш окончательныйFile & Path Settings будет выглядеть так:
Обязательно сохраните изменения, нажав кнопкуSave Changes внизу экрана.
Вернувшись в командную строку, мы переместимsammy-heart10x10.png
из домашнего каталога нашего пользователя в нашу медиатеку с помощьюwp media import
:
wp media import --path=/var/www/html/ /home/sammy/sammy-heart10x10.png
Если мы вернемся к нашему интерфейсу WordPress, мы не увидимsammy-heart10x10.png
илиsammy10x10.png
в нашемMedia Library. Затем, если мы вернемся в командную строку и перейдем в наш каталогwp-content/uploads
, мы должны увидеть, чтоsammy-heart10x10.png
отсутствует в нашей подпапке с меткой времени.
Наконец, если мы перейдем на страницу Spaces на панели управления DigitalOcean, мы должны увидеть оба файла, хранящиеся в нашем Space.
Заключение
Мы рассмотрели два различных варианта, которые вы можете использовать для хранения ваших медиафайлов WordPress в DigitalOcean Spaces с помощью синхронизации DigitalOcean Spaces. Этот плагин предлагает дополнительные параметры для настройки, о которых вы можете узнать больше, прочитав статью для разработчиков «https://medium.com/@kee_ross/sync-your-wordpress-media-with-digitalocean-spaces-b730eb7e19fc[Sync your WordPress медиа с DigitalOcean Spaces]. »
Если вам нужна более общая информация о работе с Spaces, ознакомьтесь с нашимintroduction to DigitalOcean Spaces и нашим руководством поbest practices for performance on Spaces.