Среда разработки и производства на PHP - PullRequest
12 голосов
/ 01 января 2009

Я хотел бы настроить две среды для моего нового сайта, написанного на PHP. Один - разрабатывать новые версии и тестировать их. И вторая постановка, где будет доступна моя актуальная стабильная версия сайта.

Сайт на PHP будет состоять из множества PHP и других файлов (JS, изображений и т. Д.). Поэтому я думаю, как наилучшим образом подготовить эту среду, чтобы упростить управление исходным кодом, быстро скопировать веб-сайт из среды разработки в производственную среду и сделать версию разработки доступной для людей в Интернете, чтобы они могли видеть фактический прогресс работы и предлагать изменения или сообщать об ошибках.

Не могли бы вы дать мне несколько советов, куда идти с этой отправной точки? Есть ли книги об этом (с практической точки зрения?) Или у вас есть опыт или советы, на что следует обращать внимание и что важно, чтобы этот процесс был легким и полезным для меня и других людей, вовлеченных в разработку нового проекта?

Ответы [ 4 ]

13 голосов
/ 01 января 2009

Для начала используйте следующие три:

  1. SVN - это даст вам контроль источника и позволит вам отслеживать изменения. Возможно, вы захотите использовать GUI (черепаха популярна), чтобы облегчить процесс обучения.

  2. RSYNC - это позволит вам упростить синхронизацию между локальным и удаленным узлом с помощью одной команды. RSYNC использует механизм синхронизации для синхронизации, что означает, что добавочная синхронизация происходит в считанные секунды. Во время интенсивного программирования я буду иногда синхронизировать 4-5 раз в час, выталкивая небольшие изменения очень быстро, просто потому, что могу легко.

  3. MySQLDump - это позволит вам импортировать / экспортировать данные с вашего рабочего сайта. Обычно я делаю это один раз в неделю, чтобы получать производственные данные на своих локальных серверах, которые не только дают мне локальную резервную копию, но и позволяют мне работать с производственными данными в локальной тестовой среде.

Эти три в одиночку сэкономят вам много времени в долгосрочной перспективе и позволят вам масштабироваться. Позже вы сможете изучить инструменты автоматизированной сборки, платформы модульного тестирования, структуру документации XML и тому подобное для создания некоторых серьезных продуктов.

6 голосов
/ 01 января 2009

Я работаю с такой установкой, поэтому могу дать вам несколько советов, как это сделать. Я занимаюсь этим уже некоторое время, прорабатывая изгибы здесь и там, и чувствую, что это установка, которую я могу честно сказать, довольно чертовски продуктивна.

Небольшое примечание: я работаю на OSX, поэтому конкретные используемые приложения могут немного отличаться от вас, если вы являетесь пользователем Linux / Windows.

Я запускаю производственный «сервер» на своем Mac, используя MAMP (www.mamp.info), чтобы легко снабдить меня сервером Apache с PHP и MySQL. Вы можете использовать аналогичный инструмент, такой как XAMPP, или установить все вручную, это действительно ваше дело.

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

Я использую Subversion (или, вкратце, SVN) для своих нужд управления версиями, с дополнительным бонусом, который я могу легко добавить в список «ловушек» для автоматического обновления моего производственного онлайн-сервера всякий раз, когда я отправляю свою обновленную версию на сервер SVN. SVN также позволяет вам легко работать с несколькими людьми в одном проекте. Для получения дополнительной информации о SVN и о том, как его использовать, я предлагаю отличную (и бесплатную) онлайн-книгу, найденную здесь: http://svnbook.red -bean.com /

Короче говоря: я работаю локально с MAMP, предоставляя мне локальный «рабочий» сервер. После этого я тестирую онлайн в расположении staging.abc.com, чтобы убедиться, что все работает хорошо, и , чтобы возможно позволить другим увидеть проект (в случае, если вы хотите, чтобы ваш клиент видел, что происходит, для пример), и после этого я фактически публикую проект, поместив его в фактический домен.

Есть еще много вещей, которые можно сделать, чтобы оптимизировать рабочий процесс, но это должно помочь вам начать работу.

Надеюсь, это поможет!

-Dave

3 голосов
/ 01 января 2009

Я предпочитаю, чтобы разработка происходила на локальной коробке разработчика, если это возможно. Если другие разработчики вовлечены, вы, вероятно, захотите настроить свой контроль версий так, чтобы и схема базы данных, и javascript, css, и код php могли быть легко извлечены и настроены в личном ящике разработчика (при условии, что они имеют правильную LAMP / Настройка WAMP)

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

После того, как ваш тестовый веб-сайт подтвердит свою работу, необходимо экспортировать код из вашего контроля версий в то место, где находится действующий веб-сайт. С svn вы действительно можете просто обновить живой код с помощью svn update, указав ревизию или тег, который указывает текущую живую версию.

Я бы порекомендовал сохранить некоторые настройки, такие как db access / username / pass, в отдельном включенном файле, который не контролируется версией. Оставьте это в другом месте, позвольте разработчикам подключить права доступа к своей локальной базе данных на своем ПК. На вашем сервере подключите все необходимое для доступа к базе данных. Это должен быть действительно тривиальный код (определяющий несколько переменных), поэтому отсутствие контроля версий не должно иметь большого значения. Если хотите, вы можете управлять версией шаблонной версии, но я бы не стал помещать реальную информацию базы данных в систему управления версиями.

0 голосов
/ 13 октября 2013

Вот хорошее начало, если вы хотите использовать MAMP или WAMP для локальной разработки, а затем отправить его на github, а затем обновить ваш действующий сайт с github: http://www.mybringback.com/bringers/14509/git-local-and-shared-server-development-environment-with-ssh-setup/

Надеюсь, это поможет.

...