Настройка нескольких разработчиков с CodeIgniter, GIT и Apache на сервере разработки - PullRequest
2 голосов
/ 30 апреля 2011

Я пытаюсь использовать CodeIgniter, GIT и Apache 2 для разработки веб-приложения (PHP / MySQL) с несколькими веб-разработчиками.Чтобы создать среду, в которой у каждого разработчика есть свой собственный виртуальный сервер песочницы, я думаю, что для каждого разработчика должен быть создан виртуальный хост на Apache (изолированный портами), и у каждого разработчика есть ловушка, которая копирует их зафиксированный код в их веб-корень.(их виртуального хоста).Единственная проблема заключается в том, что в конечном итоге каждый разработчик отправит свой код на центральный сервер разработчика, и у каждого из этих кодов будет измененный файл конфигурации (файл index.php в CI) с различными путями для папок 'application' и 'system', что приведет ксерьезный конфликт.

Например: веб-корень dev1 и dev2 и файл index.php находятся в файлах 'home / dev1 / www / myapp / front-end /' и 'home / dev2 / www / myapp / front-end / 'соответственно и index.php будут указывать на' home / dev1 / www / myapp / back-end / application / 'и' home / dev2 / www / myapp / back-end / application / 'для пути к приложению соответственноно веб-корень главного сервера разработки и index.php находятся в «/ var / www», а index.php указывает на «/ data / myapp / application» для пути к приложению).

Как мне обойтиЭта проблема?Есть ли лучшее решение, чем маршрут, о котором я думаю?

Ответы [ 3 ]

2 голосов
/ 01 мая 2011

Используйте частные ветки разработки, где вы изменяете конфигурацию в качестве первого коммита там, чтобы соответствовать вашей конкретной среде.Теперь

git checkout shared_branch
git merge -s ours your_branch

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

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

0 голосов
/ 02 мая 2011

Спасибо за ваши ответы. Я вспомнил, что в Apache, CodeIgniter & GIT все по сути настраиваемо, и мне не нужно использовать настройки по умолчанию. Поэтому, чтобы обойти эту проблему, я просто переместил системную папку CI в папку приложения, переименовал папку приложения в «back-end», создал папку с именем «front-end» и переместил туда index.php, переместил «back-end» и 'front-end' в '/ data / myapp', обновленный index.php CI, чтобы он указывал на папки приложения и системы соответственно ('../back-end' и '../back-end/system' соответственно) обновил хук после обновления в главном / центральном репозитории GIT для выпуска кода в '/ data / myapp', обновил конфигурацию Apache на главном сервере dev для использования '/ data / myapp / front-end' в качестве корня документа (вместо этого по умолчанию «/ var / www») и создал виртуальный хост каждого разработчика в Apache для использования «home / USERNAME / www / myapp / front-end /» в качестве корня документа (своей рабочей локальной копии). Разработчики могут легко протестировать свой рабочий код, и их файл index.php не испортит файл index.php главного сервера разработки, поскольку теперь все относительно и вместе.

Я знаю, что мог бы сделать ловушку, чтобы игнорировать index.php (так как его содержание почти никогда не нужно менять) при коммите или push, и это было бы намного проще, но мне нужно было лучше организовать структуру каталогов CI / приложение и Apache в любом случае.

Еще раз спасибо, ребята!

0 голосов
/ 01 мая 2011

Сконфигурируйте index.php для использования ~ / some / path и заставьте разработчиков перемещать свои репозитории в свою домашнюю папку, таким образом вы переместили шов в локальную конфигурацию, а не в конфигурацию в проекте.

Или заставьте index.php запустить какой-нибудь скрипт, который узнает путь, проверив некоторую переменную среды или значение базы данных.

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