Я только начинаю с 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 repositoryтогда ffine и все файлы переносимы.