В настоящее время я разрабатываю свой WordPress локально, фиксирую свой код в GitHub с помощью Git, а затем SSHing на моем сервере и выполняю «git pull» для обновления моего кода. Является ли это хорошим вариантом для развертывания кода на сайте WordPress (в этом случае у меня, очевидно, есть доступ к моему серверу с правами суперпользователя). Я знаю такие вещи, как Capistrano, но будет ли это излишним для развертывания на сайте WordPress? Как я могу максимально использовать Git / GitHub в этом случае?
deployment
git
github
Matt
источник
источник
Ответы:
Я использую Git для этого и считаю, что он работает очень хорошо. Несколько предложений:
.gitignore
файл..gitignore
файл, чтобы настройки WordPress для разработки не перезаписывали ваши рабочие.Подумайте о добавлении Git-
post-receive
хука, чтобы автоматически получать обновления в каталоге, который вы используете для публикации WordPress через ваш веб-сервер (например/var/www
). Это позволяет вам проверять только сами файлы, избегая любых метаданных git, попадающих в корневой каталог документа вашего веб-сервера, а также означает, что вы можете добавлять любые изменения разрешений в ловушку пост-получения, чтобы ваши разрешения всегда оставались согласованными. Пример приведен ниже:источник
unset GIT_INDEX_FILE
опечатки появляется обратный удар?Я очень рекомендую настроить Capistrano - это небольшая предварительная работа с первого раза, но после этого вы можете легко использовать ее для новых настроек.
Основными преимуществами являются
Я добавляю набор сценариев капистрано, чтобы показать вам, как я это настраиваю.
Capfile
deploy.rb
и, наконец, пример файла среды (если вы используете многоступенчатый гем, то вы можете иметь один из них для каждого этапа вашей среды, например, локальный, промежуточный, производственный)
конфиг / local.rb
Эти файлы могут не работать без настройки, и вам понадобятся некоторые базовые знания о Capistrano, но, надеюсь, это поможет некоторым людям.
Это был первый учебник, который я использовал для работы с Capistrano и WordPress: http://theme.fm/2011/08/tutorial-deploying-wordpress-with-capistrano-2082/
источник
git post-receive
крюк - это путь!Я фактически сделал презентацию WordCamp на эту тему. Вместо того, чтобы повторяться, вот скринкаст этого и вот очень простой сценарий развертывания, чтобы сопровождать то, что я обсуждал.
Короче говоря, я использую GitHub для размещения репо и использую webhook для развертывания изменений на основе git ref. Это позволяет вам использовать модель ветвления Git от Винсента Дриссена и предоставляет вам неограниченное количество веб-заголовков, промежуточных серверов, серверов тестирования и т. Д. С автоматическим развертыванием. Я также расскажу о том, как сохранить wp-config.php под контролем версий, одновременно поддерживая отдельные версии dev / production (путем переименования файлов и создания ссылок).
источник
Я знаю, что этот вопрос немного старше, однако, поскольку я не рассматривал это как ответ здесь, я хотел бы поделиться тем, что я обычно делаю для установок и развертываний на основе git на одном сайте, и он работает очень хорошо, в том числе с несколькими устройства, локации и с несколькими разработчиками (у всех есть свои собственные локальные репозитории, в которых они работают, как это принято в git).
Я могу искренне предложить следующую настройку:
Это также описано в (если вам нужен второй ресурс, чтобы обернуть его вокруг):
В основном это работает (по крайней мере с тремя репо):
Когда работа закончена, вы нажимаете на удаленный репозиторий, с которого вы клонировали. У голого репо есть крюки для синхронизации с живым репо (в вышеприведенных кодах, называемых простыми ).
В качестве конкретных настроек WordPress в репо у меня это
.gitignore
:Остальное вкл. конфигурацию плагина и темы я держу под контролем версии / конфигурации. Это позволяет мне легко отслеживать изменения и просматривать код перед его использованием. Я также могу легче объединяться с удаленными деревьями с моими собственными изменениями. Это особенно полезно против ядра Wordpress, которое доступно на Github .
Это работает очень хорошо для большинства моих потребностей WordPress. Безупречное репо не позволяет вам проталкивать противоречивые изменения. Он также синхронизируется с удаленной копией перед обновлением live-сайта. Это означает, что обновление живого сайта обычно происходит довольно быстро. Из-за хуков вы можете даже вызывать хуки обновления Wordpress впоследствии, если хотите.
Если вы еще не экспериментировали, насколько это можно улучшить с помощью хитов Github, но обычно они мне не нужны, так как код находится под локальным контролем версий, а не Github.
Чтобы настроить такую систему в первый раз, вам потребуется некоторое время, чтобы оценить, есть ли у вас все инструменты, доступные на вашем удаленном хосте:
Время установки в первый раз должно быть возможно в течение одного-двух часов, включая вся среда, и вы сначала публикуете push.
В зависимости от вашего хоста, вы также можете защитить
.git
каталог от веб-доступа. Вот пример.htaccess
кода, который даже делает это, поместив Wordpress внутри подкаталога, что оставляет место в репо, не публикуемое онлайн (полезно):Короче говоря, все, что не в общедоступном каталоге, не в сети. Внутри общедоступного каталога может быть, например, кодовая база wordpress, для чего
.htaccess
вам нужно:Это предотвращает прямой доступ к публике . Часть этого .htaccess -foo вы можете найти в общих чертах здесь: Запросы к .htaccess должны возвращать 404 вместо 403 . Для переменных среды вам необходимо проверить, работает ли это в вашей среде. Также вам нужно решить, поставить ли вы это под контроль версий или нет.
Если у вас больше контроля над хостингом, вы можете сделать больше вещей здесь (и по-другому / более оптимизировать), приведенные выше примеры предназначены для типичных сред общего хостинга (которые предлагают GIT, некоторые пользователи говорят, что вы можете легко установить его самостоятельно, как ну, я обычно прошу своих хостеров предоставить такие, потому что я предпочитаю, чтобы они позаботились о том, за что я им заплачу).
С отрицательной стороны, это имеет некоторые общие проблемы, также изложенные в других ответах. Одна вещь, которой я не горжусь, но то, что работает, - это дать хосту разработки возможность изменить свой файл хоста, чтобы сервер базы данных указывал на копию разработки. Таким образом, вы можете сохранить одну конфигурацию базы данных. Не очень круто ESP. из-за полномочий.
Автоматическое резервное копирование
Однако, как правило, мне здесь все равно, но вместо этого ежедневно выполняются резервные копии на удаленных системах, которые постепенно сохраняются в другом удаленном месте. Это просто и дешево и позволяет вам восстановить как установку Wordpress, так и загрузку файлов, базу данных и репозиторий git. Также с моими командами резервного копирования у меня может быть не все в порядке, но они работают для меня:
То, что я предлагаю, это то, что вы держите процессы вокруг вашей установки Wordpress вне Wordpress. Они должны работать на конкретной системе, так что вы обычно не имеют их внутри приложения (например , приложение может пойти вниз , но вам нужно , чтобы они продолжают работать).
Включено для совместной работы
Еще одним приятным преимуществом является то, что ваш сайт уже включен для совместной работы. Благодаря дополнительному репо, вы не можете делать много ошибок, и вы даже можете делиться удаленными ветками, кроме главной или прямой ветки, со своими коллегами.
источник