Переменные среды OpsWorks, доступные CLI PHP

Мы развертываем находящееся в Laravel приложение на AWS использование OpsWorks. Мы определили переменные среды через консоль OpsWorks, и они правильно замечены Apache. Однако, когда рабочие задачи CLI такой как artisan команды, они не установлены.

Я понимаю, что это происходит из-за переменных среды, устанавливаемых на виртуальных конфигурационных файлах хоста Apache. Я думал, что мог устранить проблему путем выполнения развернуть рычага, который повторяет эти переменные и добавляет их к /etc/environment, но это не работает (и даже если бы это сделало, то это было бы невероятно слабо).

Там какой-либо другой путь состоит в том, чтобы достигнуть этого? OpsWorks позволяет это конкретное требование?

Спасибо.

1
задан 17 March 2015 в 08:33
2 ответа

Вот как нам удалось это решить (хотя и не идеально, но это делает трюк):

  • Используйте getenv() для доступа ко всем переменным окружения: Apache не увидит их, если использует $_ENV.
  • Используйте крюк OpsWorks, чтобы записать все переменные окружения в .env.php, конфигурационный файл Ларавела для производственного окружения. Переменные окружения будут доступны для кода перехвата развертывания через node[:deployment]['''][:environment_variables][:].
  • Запустите команды ремесленника, определяющие производственное окружение: php artisan --env=production --force .

В основном мы используем вышесказанное для выполнения миграций из первой инстанции в очереди установки.

.
1
ответ дан 4 December 2019 в 00:10

Если вы также используете собственные кулинарные книги Chef, вы можете задать свойства из переменных JSON или OpsWorks Application во время выполнения с помощью шаблона Chef. Ниже приведен пример config.php для настройки Moodle и предполагается, что у вас есть приложение под названием webapp с настроенными атрибутами, такими как moodle_dbhost, moodle_dbname, moodle_dbuser и т. Д.

CFG->dbtype    = 'pgsql';
$CFG->dblibrary = 'native';
$CFG->dbhost    = '<%= node['deploy']['webapp']['environment']['moodle_dbhost'] %>';
$CFG->dbname    = '<%= node['deploy']['webapp']['environment']['moodle_dbname'] %>';
$CFG->dbuser    = '<%= node['deploy']['webapp']['environment']['moodle_dbuser'] %>';
$CFG->dbpass    = '<%= node['deploy']['webapp']['environment']['moodle_dbpwd'] %>';
$CFG->prefix    = 'mdl_';
$CFG->dboptions = array (
  'dbpersist' => 0,
  'dbport' => '<%= node['deploy']['webapp']['environment']['moodle_dbport'] %>',
  'dbsocket' => 0,
);

$CFG->wwwroot   = 'http://example.com/moodle/';
$CFG->dataroot  = '/var/www/moodle-data/';
0
ответ дан 4 December 2019 в 00:10

Теги

Похожие вопросы