#git #apache2
#git #apache2
Вопрос:
Я пытаюсь использовать CodeIgniter, GIT и Apache 2 для разработки веб-приложения (PHP / MySQL) с парой веб-разработчиков. Чтобы настроить среду, в которой у каждого разработчика есть свой собственный маленький сервер виртуальной песочницы, я полагаю, что для каждого разработчика необходимо создать виртуальный хост на Apache (изолированный портами), и у каждого разработчика есть хук, который копирует их выделенный код в веб-корень (своего виртуального хоста). Единственная проблема в том, что в конечном итоге каждый разработчик отправит свой код на центральный сервер разработки, и каждый из их кодов будет иметь измененный конфигурационный файл (CI index.php файл) с разными путями для папок «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’ для пути к приложению).
Как мне обойти эту проблему? Есть ли лучшее решение, чем маршрут, о котором я думаю?
Ответ №1:
Используйте частные ветки разработки, где вы изменяете конфигурацию в качестве первого коммита в соответствии с вашей конкретной средой. Теперь
git checkout shared_branch
git merge -s ours your_branch
Последующие слияния не должны использовать стратегию ours, и ваша конфигурация будет такой, какая вам нужна для вашей ветки и какой она должна быть для центральной.
Надеюсь, это поможет
Ответ №2:
Спасибо за ваши ответы. Я вспомнил, что в Apache, CodeIgniter и GIT все по существу настраивается, и мне не нужно использовать конфигурации по умолчанию. Итак, чтобы обойти проблему, я просто переместил системную папку CI в папку приложения, переименовал папку приложения в ‘back-end’, создал папку с именем ‘front-end’ и переместил index.php туда перенесены ‘back-end’ и ‘front-end’ в ‘/data / myapp’, обновлены CI index.php чтобы указать на папки приложения и системы относительно (‘../back-end’ и ‘.. / back-end / system’ соответственно), обновил перехват после обновления в главном / центральном репозитории GIT, чтобы выпустить код в ‘/data / myapp’, обновил конфигурацию Apache на главном сервере разработки, чтобы использовать ‘/data / myapp / front-end’ в качестве корня документа (вместо стандартного ‘/ var / www’) и создал виртуальный хост каждого разработчика в Apache использовать ‘home/ USERNAME/www / myapp / front-end /’ в качестве корня своего документа (их рабочей локальной копии). Разработчики могут легко тестировать свой рабочий код и свои index.php файл не испортит работу основного сервера разработки index.php файл, поскольку теперь все относительно и вместе.
Я знаю, что мог бы сделать перехват для игнорирования index.php (поскольку его содержимое почти никогда не нужно менять) после фиксации или нажатия, и это было бы намного проще, но мне все равно нужно было лучше организовать структуру каталогов CI / app и Apache.
Еще раз спасибо, ребята!
Ответ №3:
Конфигурация index.php чтобы использовать ~/some / path и заставить разработчиков перемещать свои репозитории в свою домашнюю папку, таким образом, вы переместили seam в локальную конфигурацию, а не в конфигурацию в проекте.
Или сделайте index.php запустите некоторый скрипт, который узнает путь, проверяя некоторую переменную среды или значение базы данных.