Настройка переменных среды для приложений Phusion Passenger

StackOverflow https://stackoverflow.com/questions/79474

Вопрос

Я настроил Passenger в разработке (Mac OS X), и он работает безупречно.Единственная проблема возникла позже:теперь у меня есть обычай GEM_HOME путь и двоичные файлы ImageMagick, установленные в "/usr/local".Я могу поместить их в один из rc-файлов оболочки, которые будут получены, и это решит переменные среды для процессов, запускаемых из консоли;а как насчет Пассажира?То же приложение не может найти мои драгоценные камни при запуске таким образом.

Это было полезно?

Решение

Я знаю два решения.Первый (документированный здесь) по сути такой же, как и у manveru — установите переменную ENV непосредственно в вашем коде.

Второй — создать оболочку вокруг интерпретатора Ruby, который использует Passenger и который документирован. здесь (ищите пассажир_с_руби).Суть в том, что вы создаете (и указываете PassengerRuby в конфигурации Apache) /usr/bin/ruby_with_env, исполняемый файл, состоящий из:

#!/bin/bash
export ENV_VAR=value
/usr/bin/ruby $*

Оба работают;Я думаю, что первый подход немного менее хакерский.

Другие советы

Прежде чем выполнять какие-либо требования (особенно перед тем, как требовать рубигемы), вы можете сделать:

ENV['GEM_HOME'] = '/foo'

Это изменит переменную среды внутри этого процесса.

Я обнаружил, что если у вас есть права root на компьютере, вы можете установить необходимые переменные среды в файле «envvars», и apachectl выполнит этот файл перед запуском Apache.

envvars обычно находится в том же каталоге, где находится apachectl — в Mac OS X он находится в /usr/sbin.Если вы не можете его найти, посмотрите исходный код сценария apachectl.

После изменения файла envvars перезапустите Apache с помощью «apachectl -k restart».

Я тоже столкнулся с этой проблемой.Это появляется этот Пассажир не передает значения, установленные с помощью SetEnv директива apache - что прискорбно.

Возможно, можно было бы установить переменные среды в файле Environment.rb или boot.rb (при условии, что вы говорите о приложении Rails;Я не знаком с Rack, но предположительно у него схожий функционал)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top