ОК, так что это довольно необычный вариант использования. Надеюсь, это не будет закрыто из-за отсутствия исследований — я провел исследование, я просто не могу найти кого-то еще, кто требовал этой установки.
У нас есть три сервера с одним и тем же сайтом WordPress — версия Live, бета-версия и версия Kiosk (ограниченная версия сайта, используемая для киоска iPad). Бета-сайт развернут из beta
на Github, а сайты Live и Kiosk развертываются из master
ветка. Любые различия в функциональности между сайтами контролируются переменными среды, за исключением того, что они совместно используют один и тот же код.
wp-content/uploads
папка используется всеми тремя версиями сайта с использованием смонтированной файловой системы Amazon EFS (не удалось использовать S3 из-за конфликтов плагинов). Вот где проблема приходит.
Серверы Live и Kiosk совместно используют одну и ту же базу данных RDS, поэтому их библиотеки мультимедиа всегда синхронизированы. Однако бета-сервер использует свою собственную отдельную базу данных для целей тестирования — и поскольку объекты медиабиблиотеки WP хранятся в БД, это приводит к следующим проблемам:
В этом нет ничего плохого; это просто как работает WordPress. Я обошел проблему, используя плагин «Добавить с сервера», который позволяет мне синхронизировать медиатеки вручную, но было бы неплохо автоматизировать это.
Поэтому я думаю, что будет работать любое из следующих решений:
wp-content/uploads
папка, которая также достаточно умна, чтобы игнорировать миниатюрные версии (к сожалению, плагин «Добавить с сервера» этого не делает, поэтому, когда я попробовал, я получил бесчисленные «миниатюры миниатюр», если это имеет смысл)Кто-нибудь работал с подобной средой раньше? Любые идеи относительно одного из моих предложенных решений, или, возможно, лучшего решения? Заранее спасибо.
Что касается сред разработки / постановки, я обычно использую rsync
в комбинации с crontab
или же Дженкинс и символическую ссылку скопированной папки мультимедиа на wp-content/uploads
каждый раз я строю постановку с дампом из производственной базы.
Это также даст вам возможность автоматически создавать резервные копии вашей папки db и media на другом сервере.
Я бы вообще советовал не обновлять живую БД, изменяя среду бета / разработки, так как это обычно не соответствует назначению этой среды.
Что касается синхронизации киоска и производства, плагин WPSiteSync выглядит многообещающе Я еще не пробовал его в производстве, но он должен соответствовать вашим требованиям.
Других решений пока нет …