Без правильного процесса сборки я использую эту стратегию (для приложений PHP):
- Сделать папку
/etc/companyname
В нем поместите два файла:
<?php // env.php
return 'prod';
<?php // appname-prod.php
return array(
'db' => array( /* credentials */ ),
/* other host-specific conf data */
);
Сделать оба файла доступными для чтения только вашим процессом PHP
Теперь файл конфигурации вашего приложения будет выглядеть примерно так:
<?php // config.php
$env = (require "/etc/companyname/env.php");
$creds = (require "/etc/companyname/appname-{$env}.php");
Имея это, среда определяет используемые учетные данные, и вы можете перемещать код между предварительно сконфигурированными средами (и управлять некоторыми параметрами с помощью $env
). Это, конечно, можно сделать с помощью переменных среды сервера, но это а) проще в настройке и б) не предоставляет учетные данные для каждого скрипта на сервере (не будет отображаться в нежелательной отладке, например phpinfo()
) ).
Для более легкого чтения вне PHP вы можете сделать файлы учетных данных JSON или что-то в этом роде и просто смириться с крошечным ударом по производительности (APC их не кеширует).