Промежуточная среда Wordpress


Я работаю в компании, которая делает сайты для фармацевтической промышленности, и нам часто нужно получить юридическое одобрение, прежде чем мы будем настаивать на каких-либо изменениях. Поэтому я хотел бы перенести большую часть нашей работы в среду CMS, в частности wordpress, но нам нужна возможность иметь промежуточную среду. Можно ли вместо публикации страницы опубликовать ее в промежуточной среде, которую кто-то может просматривать как со ссылкой на сайт. То есть в основном есть 2 сайта, один постановочный, один живой?

6 7

6 ответов:

Вообще говоря, приведенные выше "ответы" верны, есть альтернативы wordpress, которые имеют лучшую встроенную поддержку промежуточных сред и миграций сборки. Однако предлагаемые альтернативы не совсем равноценны заменителям платформы wordpress,поэтому я думаю, что лучше всего ответить на этот вопрос.

Wordpress изначально не поддерживает размещение одного и того же сайта на двух разных хостах. Ядро опирается на абсолютные URL-адреса, хранящиеся в базе данных и являются используется практически во всех аспектах основной логики. Это приводит к ряду лишних ошибок, таких как 500 или около того, связанных с доступом SSL, потому что они пытаются динамически изменять все схемы http:// на https:// на лету.

В результате, когда вы размещаете на dev.example.com и мигрировать в staging.example.com и снова к www.example.com вы должны делать очень тщательные операции поиска и замены при экспорте базы данных каждый раз, когда вы переключаете хосты. И это вызывает дополнительные проблемы, когда вы узнайте, что многие популярные плагины wordpress сериализуют url В значения в базе данных. Поэтому, когда вы ищете и заменяете dev.example.com с помощью staging.example.com сериализованные данные, которые содержали длину символа исходного значения, больше не десериализуются с новым более длинным форматом. Некоторые основные вкладчики считают, что решение этой более поздней проблемы заключается в том, чтобы только когда-либо настроить промежуточные сайты с тем же количеством символов, что и производственная учетная запись...

В том же духе они также предложите поменять местами сопоставления хостов и только когда-либо использовать production.com url на всех средах хостинга. В зависимости от ваших конкретных требований к использованию это, вероятно, не правильное решение, если вам нужно предоставить доступ к внешним клиентам, технически неграмотным пользователям (по сравнению с технически грамотными пользователями, конечно.)

Но сам wordpress имеет ряд отличных особенностей в остальном и является очень адаптивной и мощной платформой быстрого развития. В результате вы можете расширить ядро фреймворка, чтобы сделать многое из того, что вам от него нужно. Когда я столкнулся с этой ситуацией, мне пришлось разработать решение, которое было бы жизнеспособным при любых обстоятельствах. Традиционно эта проблема решается с помощью корневых относительных URL-адресов, они работают в кросс-хостинговых средах, и они не страдают от изменений схемы, изменения портов или практики замены поддоменов, которые являются общими для промежуточных миграций.

С этим плагином: http://wordpress.org/extend/plugins/root-relative-urls/ (предвзято? да, я написал это. плагин.) вы получаете корневые относительные URL-адреса, где это важно, и динамические хосты, где корневые относительные URL-адреса не работают (например, rss-каналы.) Все, что остается от переноса сайта на другие хосты,-это переместить wp-config.php-файл вне корня www (один уровень выше поддерживается изначально wordpress.) таким образом, вы можете поддерживать разные копии на разных серверах. Или же вы можете использовать базовые операторы if, чтобы различать хосты по имени сервера и определять ключевые константы wordpress на основе сервер. В конце концов ваш контент, код и данные будут легко переходить.

В качестве замечания по поводу того, что упомянутые Плагины требуют настройки доступа на запись в wp-config.php файл, очень плохая практика с точки зрения безопасности для производственных или общедоступных серверов. Возможно, вы можете удобно реализовать это в ограниченной промежуточной среде, но тогда вам нужно будет отключить и удалить плагин в производственных переходах.

Короче говоря, да, вы можете разместить wordpress в нескольких средах хоста. Давно рекламируемые решения очень специфичны для конкретного случая и ограничены в выборе из-за архитектуры ядра. Но структура достаточно гибкая, чтобы преодолеть основной дефицит. Это основное проектное решение, вероятно, изменится в какой-то момент в будущем, учитывая количество усилий, которые разработчики ядра постоянно тратят на преодоление каскадных проблем. Но есть и благочестивые защитники абсолютной религии урл, которые сохранят эту практику на время. бытие. Возможно, другая платформа, поддерживающая миграцию серверов изначально (выберите почти любую из них, потому что большинство из них делают это), была бы лучшим вариантом для вас сейчас.

Это возможно: посмотрите на этот GitHub Gist, чтобы увидеть пример того, как переключать среды с помощью вашего wp-config.PHP-файл. Кроме того, взгляните на wordpress.stackexchange, чтобы увидеть некоторые другие Qs об этом, которые дают вам более глубокий взгляд на материал, который вы должны рассмотреть.

Грег, Еще лучшей CMS с промежуточной средой была бы Silverstripe (silverstripe.org). эта cms позволяет просматривать весь промежуточный сайт.

Я думаю, что вы можете попробовать использовать некоторые плагины. Например (быстрый поиск на официальном WordPress плагине repo) wp-deploy или Dev и Staging Environment Plugin (возможно, устаревший).

Или в качестве альтернативы вы можете попробовать использовать другой wp-config.php файлы - один для производства и один для среды разработки и переключить их, проверив запрошенный url.

Если вам нужно использовать WP и нужно опубликовать только одну или несколько страниц из промежуточного сайта в живой, почему бы не реализовать вид тега на страницах, которые должны быть опубликованы (увидены посетителями живого сайта)? Простая настройка шаблонов для отображения помеченных или нет страниц, и все готово! Тогда вы можете использовать только один сайт и поддерживать как общедоступные, так и неутвержденные страницы на нем.

Вы также можете поддерживать локальную копию вашего сайта (этап) и иметь некоторый скрипт для загрузки его (в целом) на ваш сайт. хостинг-простая в автоматизации задача. В таком случае вы можете рассмотреть возможность рендеринга всего сайта в HTML-страницы и загрузки (простая rsync) этого HTMLs на хостинг - живой сайт будет трудно сломать, так как там не будет динамического скрипта!

Но, может быть, вам действительно не стоит выбирать WP? Существует множество CMS, поддерживающих схему "запись-утверждение-публикация".

Вы можете создать промежуточную среду WordPress всего за два клика с помощью этого плагина: https://de.wordpress.org/plugins/wp-staging/

Раскрытие: я являюсь автором этого плагина. Так что спрашивайте меня о чем угодно.