से ओएस पर्यावरण चर सेट करें मुझे Django के विकास और उत्पादन सेटिंग्स को विभाजित करने की आवश्यकता है। मैंने फैसला किया कि यदि USKOVTASK_PROD
चर सेट किया गया है, तो ऐप को उत्पादन सेटिंग्स का उपयोग करना चाहिए। मैंने this लेख पढ़ा और इसे करने की कोशिश की।Django + mod_wsgi। अपाचे के SetEnv
मेरे स्निपेट:
/etc/apache2/sites-enabled/uskovtask.conf:
<VirtualHost *:80>
ServerName uskovtask.*.com
ServerAlias uskovtask.*.com
DocumentRoot /mnt/ebs/uskovtask
Alias /static /mnt/ebs/uskovtask/static/
<Directory /mnt/ebs/uskovtask/static>
Require all granted
</Directory>
#WSGIPythonPath /mnt/ebs/uskovtask
WSGIDaemonProcess uskovtask.*.com python-path=/mnt/ebs/uskovtask:/usr/lib/python2.7/site-packages
WSGIProcessGroup uskovtask.*.com
WSGIScriptAlias//mnt/ebs/uskovtask/uskovtask/wsgi.py
SetEnv USKOVTASK_PROD 1
<Directory /mnt/ebs/uskovtask/uskovtask>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
</VirtualHost>
wsgi.py:
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "uskovtask.settings")
from django.core.wsgi import get_wsgi_application
_application = get_wsgi_application()
def application(environ, start_response):
if 'USKOVTASK_PROD' in environ:
os.environ.setdefault('USKOVTASK_PROD', environ['USKOVTASK_PROD'])
return _application(environ, start_response)
settings.py के भाग:
import os
if 'USKOVTASK_PROD' in os.environ:
from settings_prod import *
else:
from settings_dev import *
लेकिन यह हमेशा सेटिंग्स_dev की सेटिंग्स आयात करता है। क्यूं कर?
आप डिबग और सत्यापित करें कि USKOVTASK_PROD वास्तव में os.environ में सेट कर सकते हैं? आप इसके लिए एक साधारण प्रिंट रख सकते हैं। – iamkhush
@iamkhush USKOVTASK_PROD os.enivron में है यदि मैं इसे 'wsgi.py' में मुद्रित करता हूं, लेकिन 'settings.py' – michaeluskov
में नहीं, तो क्या आप सत्यापित कर सकते हैं कि" if "USKOVTASK_PROD" वातावरण में "कथन के बाद प्रिंट रखना सही है या नहीं । – iamkhush