Symfony 1.4 лучшая практика конфигурирования производства и разработки
Я только начинаю с Symfony.
Я использую Git / github как способ управления моим проектом. Я установил два игнорирования для журнала и кеша, что нормально.
Теперь мне нужно настроить производственную площадку. На данный момент в этом небольшом проекте я занимаюсь разработкой и производством на одном и том же сервере, но с разными расположениями файлов и баз данных.
например
www.example.com/mysymfonyproject_dev/ < development area
&
www.example.com/mysymfonyproject/ < Live / Production site
На сервере его/homes/sites/example.com/www/mysymfonyproject_dev
& /home/sites/example.com/www/mysymfonyproject
Итак, теперь я клонировал свой проект в новую производственную папку.
Конечно, он игнорирует папки журнала и кэша, но теперь мне нужно изменитьdatabase.yml
файл, например, и возможно больше, чтобы заставить производственную зону работать.
Каков наилучший метод борьбы с этим?
Есть ли какой-то другой файл, к которому я должен добавить.gitignore
который может указать, какая версия этого сайта, например, разработка или производство.
ИЛИ Есть ли другой способ, которым я могу сделать это с помощью Git?
Что является лучшей практикой?
Как вы можете себе представить, я не хочу обновлять файл database.yml каждый раз, когда делаю git push на свой рабочий сайт.
ОБНОВИТЬ:
У меня есть среда разработки. То, что я ищу, - это пошаговое руководство по развертыванию в производство. Я мог бы использовать git для этого, но, например, как мне настроить окружение таким образом, чтобы все настройки были правильными при развертывании. Я вижу, что database.yml может иметь разные настройки для постановки и производства, но где тогда я скажу Symfony, что это за сайт? например, как Symfony узнает, что www.example.com/kickboxing - это производство, а www.example.com/kickboxing_dev - в постановке?
ОБНОВЛЕНИЕ 2:
В конце концов, для моих конкретных требований это работало хорошо.
1 <?php
2
3
4 require_once(dirname(__FILE__).'/../config/ProjectConfiguration.class.php');
5
6 $theurl = explode('/', $_SERVER['PHP_SELF']);
7 $mydir = $theurl[1];
8
9
10 if ($mydir == "mysymfonyproject") //live
11 {
12 $configuration = ProjectConfiguration::getApplicationConfiguration('frontend', 'prod', false);
13 sfContext::createInstance($configuration)->dispatch();
14 }
15 else // dev
16 {
17 $configuration = ProjectConfiguration::getApplicationConfiguration('frontend', 'dev', true);
18 sfContext::createInstance($configuration)->dispatch();
19 }
Я думаю, что использование $ _SERVER ['SERVER_NAME'] было бы лучше на локальных машинах, где вы можете настроить свой файл hosts, например. mysymfonyproject.local просто добавьте в индексный файл, а git-репозиторий будет ffine, и все файлы будут переносимыми.