Как правило, лучше всего помещать файлы конфигурации в систему управления версиями, если они хранят важную информацию.
Если вы говорите здесь ASP.NET сайтов, я бы определенно разместил конфигурациюфайл в SVN.Вы можете воспроизвести несколько хитростей в файлах конфигурации ASP.NET, используя inheritInChildApplications
и allowOverride
(см. Как: заблокировать параметры конфигурации ASP.NET ), что может позволить вам использовать локальную отладочную версию для использованияотличны от окончательной рабочей версии, несмотря на использование одного и того же файла конфигурации: просто подключите веб-сайт в качестве подкаталога в локальной отладочной IIS и заблокируйте несколько разделов, которые вы хотите переопределить.И, конечно, вы можете просто включить два конфигурационных ключа для особо сложных битов и проверить код, который нужно загрузить.
В общем, хорошая практика делать развертывание что угодно из SVN процесс включает в себя как можно меньше ручных шагов.Это повышает вероятность того, что вы будете делать это правильно в условиях нехватки времени, и это облегчает аварийное восстановление при загрузке (скажем, когда ваш центр обработки данных вызывает утечку, и вы хотите установить веб-сайт на какой-то временный ящик, пока не получитеэти резервные копии отсортированы).В идеале для запуска и запуска веб-сайта должно быть достаточно svn извлечения или экспорта с максимально возможной компиляцией.Я включил даже двоичные dll-зависимости непосредственно в svn (такие как компрессоры javascript и все такое), чтобы он работал без необходимости установки множества пользовательских библиотек на сервере и компилировался на компьютере разработчика с помощью только msbuild.
Для PHP принцип тот же.Однако вам понадобятся разные хитрости.Например, вы можете написать файл конфигурации так, чтобы он проверял некоторую глобальную переменную системной среды, а затем переопределял выбранные настройки, если это dev-машина.Например, у меня есть настройка, подобная этой, где я проверяю IP-адрес;все dev-машины находятся в определенном IP-блоке;если машина не находится в этом IP-блоке, она считается рабочей машиной (которая не включает различные опции трассировки и т. д.).Вы также можете проверить имя хоста или просто любую старую переменную среды, которую все разработчики согласны установить на своих машинах разработки.