2013-08-28 9 views
7

ile çalıştırıldığında ortam değişkenlerini dikkate almaz. Hangi ayarları kullanacağına karar vermek için DJANGO_MODE ortam değişkeni kullanan bir django web sitem var - geliştirme veya aşamalandırma. Ortam değişkeni bashrc'dadır ve uygulamayı geliştirme sunucusunu kullanarak çalıştırırken her şey iyi çalışıyor.Django, uWSGI

Ancak uygulamayı uWSGI kullanarak çalıştırdığımda, ortam değişkenini fark etmiyor ve üretim yerine varsayılan (geliştirme) ayarlarını kullanıyor görünmüyor.

Emperror modunda uWSGI çalıştırıyorum ve ortam değişkeninin göz ardı edilmesi dışında her şey iyi çalışıyor gibi görünüyor. Ve evet, uWSGI çalıştıran kullanıcı, bashrc'un DJANGO_MODE ayarlanmış olduğu ile aynıdır.

exec uwsgi --emperor /etc/uwsgi/vassals --uid web_user --gid --web_user 

Ve vassal için ini dosyası - -

uWSGI çalıştırmak için kullanılan komuttur

[uwsgi] 
processes = 2 
socket = /tmp/uwsgi.sock 
wsgi-file = /home/web_user/web/project_dir/project/wsgi.py 
chdir = /home/web_user/web/project_dir 
virtualenv = /home/web_user/.virtualenvs/production_env 
logger = syslog 
chmod-socket = 777 

cevap

9

Sanki bash yapılandırma dosyaları Bash tarafından okunur çalışamaz. İmparatorda veya vassal'da var olanı belirlemelisiniz (ikincisi daha iyi bir yaklaşımdır). Yapılandırmanız için

'u ekleyin (boşluk kullanmayın).

+0

Bunu vassal'a eklemeyi denedim, işe yaramadı. – elssar

+0

os.environ'da DJANGO_MODE bulunup bulunmadığını kontrol etmek için biraz baskı ekleyin, belki başka bir probleminiz var. Dikkatle göz atın DJANGO_SETTINGS_MODULE en baştan ayarlandı, bu nedenle kontrol, wsgi.py – roberto

+1

Doh! Env içinde boşluklar ayarlanmıştı - 'env = DJANGO_MODE = mode', bu da sorunlara neden oluyordu. – elssar