Я ищу решение, я не могу передать apache определение переменной в /etc/profile.
Вот что я пытаюсь установить:
У меня естьприложение django, которое я развертываю через Apache / Passenger (modrails) через интерфейс WGSI.
В моем файле settings.py я использую следующую команду python: ENVIRONMENT = os.getenv ('ENV', 'PROD')поэтому, если переменная ENVIRONMENT не определена, она переходит к рабочим настройкам по умолчанию.
Это помогает мне управлять базой данных, к которой я подключаюсь, и активировать средства отладки.
Она работает в производствепотому что это значения по умолчанию, именно когда я на сервере DEV, я не могу получить переменную среды из /etc/profile.
Это на сервере Ubuntu 10.04
ТакВот тест, который я сделал:
1) поместил в / etc / profile -> ENV = 'DEV' export ENV
2) в /etc/profile.d/environment.sh -> #! / bin / sh ENV = 'DEV' экспортировать ENV
3) в моем файле конфигурации виртуального хоста -> PassEnv ENV
4) все еще в моем конфигурационном файле виртуального хоста -> SetEnv ENV DEV
5) пассажир требует в файле passenger_wgsi.py зарегистрировать ваше приложение, если я принудительно введу в этот файл viron ['ENV']= 'DEV' это пошло на работу, но я не могу этого сделать
ENVIRONMENT = os.getenv('ENV', 'PROD')
os.environ['ENV'] = ENVIRONMENT
Есть идеи, почему или как я могу это исправить?благодарю вас! @ Джош
Спасибо за ответ.Но у меня все еще есть некоторые вопросы.
В Passenger единственной вещью, которую я должен был установить в файле виртуального хоста, было местоположение общей папки внутри моего приложения python / django.Таким образом, мой файл виртуального хоста будет выглядеть следующим образом.
DocumentRoot path_to_my_public_folder # /home/user/workspace/myapp/public
Тогда внутри папки myapp есть файл passenger_wsgi.py
, который очень мало определяет, как вы сказали:
import sys, os
sys.path.append(os.getcwd())
os.environ['DJANGO_SETTINGS_MODULE'] = "myapp.settings"
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
и после этих настроек приложение было запущено.Так что, возможно, я пропускаю ваши показания, когда вы говорите, что мы должны указать, какой файл wsgi мы использовали.Я подумал, что он непосредственно найдет passenger_wsgi.py и загрузит его по умолчанию, что он сейчас делает.
Еще одна вещь, которую вы должны знать, это то, что наш проект находится в репозитории SVN, и я хочу настроитьэтот файл для многих пользователей, поэтому у нас нет других настроек.
Но я буду проверять завтра идею создания одного базового файла wsgi с общей информацией и базы на имени хоста компьютера, который я буду импортировать.другие настройки, такие как dev_wsgi.py или prod_wsgi.py
Я должен быть в состоянии получить это имя с помощью python и основывать на имени, которое я буду устанавливать переменные, которые мне нужно использовать.
СпасибоВы за идею, это хорошо ценить.