Windows server iis部署Django詳細操作


windows部署django,iis部署django

教程基於Windows server2012+Python3.6+IIS之上部署django的,同樣適用於server2012之上的版本服務器和windows7以上的windows操作系統。

文章來自:django中文網,https://www.django.cn/article/show-21.html

如果覺得看文字沒意思,想看視頻教程的,請點擊這里:Django項目部署視頻教程

1、安裝IIS和CGI

打開服務器管理器,選擇添加角色和功能,選擇要添加的服務器角色(WEB服務器IIS),然后安裝

11.jpg

IIS安裝成功之后,然后安裝CGI,再次選擇添加角色和功能,找到之前安裝的WEB服務器IIS,點擊它。

在展開的選項里找到WEB服務器,點擊它,找到應用程序開發點擊在展開的列表里找到CGI,勾選,然后下一步,安裝它。

安裝好CGI之后,我們在瀏覽器里輸入http://127.0.0.1  訪問IIS,如果出現如下頁面,說明IIS安裝成功。

2、安裝Python3

在C盤建立python目錄,然后從Python官網下載Windows版本的64位的Python安裝包,並安裝它。具體可以參考文章:python3安裝詳細步驟

3、安裝wfastcgi

在Windows下,我們沒法使用uwsgi,但我們可以使用wfastcgi替代它,打開CMD窗口,輸入命令安裝wfastcgi:

pip install wfastcgi

安裝成功之后,通過下面命令啟動它:

wfastcgi-enable

1.jpg

如上圖,啟動成功之后,它會把Python路徑和wfastcgi的路徑顯示出來,我們需要把這個路徑復制出來,保存好,后邊用得着。

c:\python\python.exe|c:\python\lib\site-packages\wfastcgi.py

注意:上面的路徑,是由Python解釋器的路徑和“|”以及“wfastcgi.py”文件路徑組成。

4、在IIS里添加項目網站

1.jpg

把我們本地項目源碼上傳到服務器相應的目錄里。

留意:搬遷項目的時候我們先換到項目路徑下,用下面的命令把項目環境的軟件包信息和依賴軟件導出到文件里。

pip freeze > requirements.txt

然后一起和項目源碼打包,上傳到服務器里。

然后打開CMD切換到項目文件夾路徑,輸入下面命令,安裝項目所需要依賴:

pip install -r requirements.txt

2.jpg

如果使用的是Mysql數據庫,請自行安裝Mysql和導入數據,這里就不說明。

5、在項目根目錄里新建一個web.config配置文件,放入以下內容:

<?xml version="1.0" encoding="UTF-8"?>
    <configuration>
        <system.webServer>
            <handlers>
                <add name="Python FastCGI" 
                     path="*" 
                     verb="*" 
                     modules="FastCgiModule" 
                     scriptProcessor="<Path to Python>\python.exe|<Path to Python>\lib\site-packages\wfastcgi.py" 
                     resourceType="Unspecified" 
                     requireAccess="Script"/>
            </handlers>
        </system.webServer>
        <appSettings>
            <add key="WSGI_HANDLER" value="django.core.wsgi.get_wsgi_application()" />
            <add key="PYTHONPATH" value="<Path to Django App>" />
            <add key="DJANGO_SETTINGS_MODULE" value="<Django App>.settings" />
        </appSettings>
    </configuration>

3.jpg

留意:這里面我標記的三個地方,我們需要修改。1、替換為我們之前我們啟動wfastcgi時復制的python和wfastcgi的路徑。2、填寫我們的項目路徑。3、填寫settings.py的位置。<django App>修改成我們的settings.py所在目錄的目錄名即可。

修改完畢,啟動IIS,在瀏覽器里輸入http://127.0.0.1  就能訪問網站。

6、如果訪問IIS出現如下錯誤:

4.jpg

HTTP 錯誤 500.19 Internal Server Error

出現這樣的情況是因為IIS7之后的版本都采用了更安全的 web.config 管理機制,默認情況下會鎖住配置項不允許更改。我們把它解鎖了就OK。

打開CMD,在里面依次輸入下面兩個命令:

%windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/handlers 

%windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/modules

5.jpg

解除了鎖定之后,再訪問網站就能正常顯示了。

還有種情況:有時候訪問頁面,或者單獨訪問網站后台出現400錯誤,這個時候可能是因為沒有給網站權限的原因。我們打開IIS,找到網站,右鍵,編輯權限,給IIS用戶添加修改和寫入權限。就能正常訪問。

1.png

7、給靜態資源添加虛擬目錄

網站能訪問了,但我們的前端樣式顯示有問題。那是因為我們沒有在IIS里指定我們的靜態資源目錄,我們給它添加上虛擬目錄就能解決。

步驟:

1、添加虛擬目錄,在IIS找選中網站項目名,右鍵--添加虛擬路徑

6.jpg

7.jpg

添加虛擬目錄時,別名放與你settings里設置的一致,比如'static',物理路徑就是靜態資源的實際目錄。

2、在static里新建一個web.config文件,然后寫入下面的內容:

<?xml version="1.0" encoding="UTF-8"?>
    <configuration>
      <system.webServer>
      <!-- this configuration overrides the FastCGI handler to let IIS serve the static files -->
      <handlers>
        <clear/>
   <add name="StaticFile" path="*" verb="*" modules="StaticFileModule" resourceType="File" requireAccess="Read" />
     </handlers>
   </system.webServer>
</configuration>

重啟IIS,訪問網站,前端就能正常顯示。

8、管理后台樣式丟失解決

正常情況下,部署的時候管理后台樣式是不能正常顯示的,我們需要收集這些樣式到項目里去,才能正常顯示。

步驟:

1、在settings.py里添加STATIC_ROOT配置指定收集路徑如:

#指定樣式收集目錄,路徑一般為項目里的static文件夾
STATIC_ROOT  = os.path.join(BASE_DIR, 'static')
#或
STATIC_ROOT = 'C:\python\mysite\static'

然后CMD下運行如下面命令,進行樣式采集:

python manage.py collectstatic

采集完成之后,刷新頁面。后台樣式成功顯示。至此,部署結束。

如果各位讀者在部署的時候,出現什么問題,可以在文章后面留言。方便我收集更多問題。

更多關於其它服務器部署Django的,請查看下面的文章:

CentOS7下部署Django項目詳細操作步驟

Windows server iis部署Django詳細操作

Ubuntu部署Django項目方法詳解


免責聲明!

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



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