Python開發入門與實戰15-IIS部署


15. IIS部署

前面的章節我們完成了基本的業務功能的開發,本章節我們來說說python django項目如何部署到實際的運行環境,完成開發系統的發布工作。

Python Django 項目部署發布到windows iis環境,運行環境如下:

操作系統:windows 8.1

IIS版本:8.5

Python版本:2.7

Django版本:1.4

15.1. IIS服務添加CGI組件

在操作系統的啟用或關閉windows功能里添加IIS CGI組件,如已添加忽略。

image

15.2. IIS服務添加FAST CGI組件

打開IIS管理器時,系統會提示如下圖,選擇是:

image

或者訪問網址:http://www.microsoft.com/web/downloads/platform.aspx,進入web安裝平台程序,搜索FastCGI關鍵字。

image

image

 

安裝WFastCGI2.1Gateway for IIS and Python 2.7.9組件,安裝完成后在C:\Python27\Scripts\目錄下會增加wfastcgi.py文件。

image

15.3. 拷貝wfastcgi.py文件到項目manage.py相同目錄下

把項目文件拷貝到C:\inetpub\wwwroot\mysite目錄下,同時,復制wfastcgi.py到本目錄下。

image

15.4. IIS創建站點

我們把項目文件拷貝到IIS 的wwwroot目錄下,創建IIS站點,如下圖:

image

筆者注:IIS的項目發布目錄最好在wwwroot下,可以避免很多windows權限問題。

另外拷貝文件后,注意修改setting.py里的數據庫目錄。

DATABASES = {
    'default': {
        # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
        'ENGINE': 'django.db.backends.sqlite3',
        # Or path to database file if using sqlite3.
        'NAME': 'C:\\inetpub\\wwwroot\\mysite\\MyDB.db',
        # Not used with sqlite3.
        'USER': '',
        # Not used with sqlite3.
        'PASSWORD': '',
        # Set to empty string for localhost. Not used with sqlite3.
        'HOST': '',
        # Set to empty string for default. Not used with sqlite3.
        'PORT': '',
    }
}

 

15.5. 添加處理程序映射

IIS 管理器中選擇站點mysite,選中該站點的“處理程序映射”設置。

image

在“處理程序映射”設置中,右鍵選擇“添加模塊映射”菜單。

image

image

輸入完配置信息,點擊“請求限制(R)…”,確保映射tab頁CheckBox不被選中。

然后,點擊兩次“確定”按鈕,系統會彈出如下提示框:

“要為此可執行文件創建 FastCGI 應用程序嗎? 單擊“是”將此項添加到 FastCGI 集合中,以及允許此可執行文件作為 FastCGI 應用程序運行。”

點擊[是]

image

15.6. 修改我們的web.config文件只保留如下代碼

<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated web.config for Microsoft Azure. Remove this comment to prevent
     modifications being overwritten when publishing the project.
-->
<configuration>
  <appSettings>
    <add key="WSGI_HANDLER" value="django.core.wsgi.get_wsgi_application()" />
    <add key="PYTHONPATH" value="%ROOTDIR%" />
    <add key="DJANGO_SETTINGS_MODULE" value="mysite.settings" />
  </appSettings>

</configuration>

完成部署,在IIS管理器中重新啟動mysite站點。

15.7. 訪問發布的網站

image

我們訪問基於模板的頁面,頁面是能正常訪問的,但是訪問基於Extjs的inventoryQueryExtjs頁面,頁面不能正常顯示。這是Extjs相關的靜態文件目錄沒有正常部署的緣故。

15.8. 靜態文件部署

根據setting.py靜態文件目錄的配置,我們項目目錄下創建一個static的文件目錄

image

在cmd命令窗口進入到項目目錄下,執行命令:

python manage.py collectstatic

image

然后,在iis管理器mysite站點下添加static虛擬目錄:

image

注:最后刪除虛擬目錄處理程序映射中的Django handler處理器。

image

我們再訪問網站的inventoryQueryExtjs頁面,頁面正常顯示,現在完成了示例網站的IIS發布工作。

image

15.9. 小結

本章節我們完成了在IIS平台部署我們的django項目,采用的是“處理程序映射”的Fast CGI來實現django項目的解析處理。下一章節我們將描述如何部署django 的windows apache平台。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM