標籤:
由於Django內建輕量級的server,因此在前篇博文中,預設使用該server,但實際生產中是不允許這麼乾的,生產環境中通常使用Apache Httpd Server結合mod_wsgi.so來做後端伺服器。 以下部署環境為:Python2.7.61、安裝httpd-2.2.25-win32-x86-no_ssl.msi2、將下載好的mod_wsgi.so 放在 D:\Program Files\Apache Software Foundation\Apache2.2\modules 模組下。3、在建立的web工程 MyDjangoProject目錄下建立 django.wsgi檔案內容如下(相應的目錄需要修改):
1 2 import os 3 import sys 4 5 djangopath = "D:/Python27/Lib/site-packages/django/bin" 6 if djangopath not in sys.path: 7 sys.path.append(djangopath) 8 9 projectpath = ‘D:/workspace/MyDjangoProject‘10 if projectpath not in sys.path:11 sys.path.append(projectpath)12 13 apppath = ‘D:/workspace/MyDjangoProject/MyDjangoProject‘14 if apppath not in sys.path:15 sys.path.append(apppath)16 os.environ[‘DJANGO_SETTINGS_MODULE‘]=‘MyDjangoProject.settings‘17 18 from django.core.wsgi import get_wsgi_application19 application = get_wsgi_application()
4、修改httpd.conf ,添加如下:
1 LoadModule wsgi_module modules/mod_wsgi.so2 WSGIScriptAlias / "D:/workspace/MyDjangoProject/django.wsgi"3 <Directory "D:/workspace/MyDjangoProject/">4 Options FollowSymLinks5 AllowOverride None6 Order deny,allow7 Allow from all8 </Directory>
ok,重啟server,頁面正常了。在部署的過程中,遇到一個異常,如下:
1 The translation infrastructure cannot be initialized before the apps registry is ready
原因是django.wsgi一開始按照較為古老的寫法,改為新版本的寫法就Ok了。
Python & PyCharm & Django 搭建web開發環境(續)