Среда для Wordpress - PullRequest
       23

Среда для Wordpress

7 голосов
/ 26 июля 2011

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

Ответы [ 6 ]

3 голосов
/ 09 ноября 2011

Вообще говоря, приведенные выше «ответы» верны, есть альтернативы 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 сериализованные данные, содержащие длину символа исходного значения, больше не десериализуются с новым более длинным форматом.Некоторые основные авторы считают, что решение этой более поздней проблемы состоит в том, чтобы когда-либо настраивать промежуточные сайты с тем же количеством символов, что и у производственной учетной записи ...

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

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

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

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

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

2 голосов
/ 27 июля 2011

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

1 голос
/ 27 июля 2011

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

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

1 голос
/ 27 июля 2011

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

0 голосов
/ 21 августа 2015

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

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

0 голосов
/ 27 июля 2011

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...