1. 程式人生 > >在windows 2008 server 的IIS 7上執行 django 1.11 + python 3.6

在windows 2008 server 的IIS 7上執行 django 1.11 + python 3.6

緣起

使用django開發了一個專案,客戶的技術體系是全棧window的,所以要求我們提供把專案部署到windows伺服器的服務。

寫這個原因是舊的在 windows 上執行python網站程式的文件,基本上全過時了。

從macOS登陸windows伺服器

嗯,需要安裝 Microsoft Remote Desktop,版本是 8.0.x。需要注意的是微軟官網的下載連結是直接連結到app store,而該App在中國區不上架,所以下載不了。最後解決問題是同事在網上找到了個下載版。

登陸的時候,還有一個要注意的就是在配置的session那裡勾選Connect to admin session

。也許只是用Administrator賬號登陸的話才需要,我沒試其它賬號。

注:MS Office 2011 for Mac 自帶的那個RDC不行了,版本2.1.x的,一登陸就證書不對之類的,是登陸不上去的。

安裝 Python

這個很容易,直接在python官網下載就行,我下載的是64位的版本,因為是64位的機器,需要往下拉一下頁面才能找到,直接點Download按鈕下載的是32位的。

安裝的時候,有兩個地方要特別注意,一是要勾選Add to PATH,二是一定要把它安裝到沒有空格的路徑下,比如c:\python36,不要使用預設的c:\Program files\python36

,你在後面會被折騰死,我不會告訴你我浪費了一天的時間,最後重灌python解決的。

安裝 wfastcgi

windows上跑django或其它python網站程式,用IIS是最正確的,使用 apache/nginx會更加難管理。但是IIS不支援wsgi,而django自1.7起就棄用了fastcgi,在1.9的時候更是刪除了,所以我們編寫的網站程式無法直接跑在IIS上,因為我們用的是1.11版本,太新了。

wfastcgi是當前唯一、唯一、唯一可用可靠的把wsgi橋接到fastcgi的方案,之前花好幾天看到的,基本上都過時了,那些基本django1.2/1.4版本寫的文章,丟掉吧,別看了,完全沒有用處。github上有個django-windows-tools

的專案,也過時了,七八年前的了,別看了;也有一篇相關的文章,Installing Django on IIS: A Step-by-Step Tutorial流毒甚廣,別看了。那些帶有PyISAPIeisapie-wsgi字樣的,統統都不靠譜,見到就閃吧。

wfastcgi感覺生命力會長久一些,因為它其實出自微軟自身,根正苗紅,也有Azure雲端計算的需要。開發它的團隊是Python Tools for Visual Studio的那幫人,實力強勁。

安裝好python以後,開個Power Shell新視窗,執行pip install wfastcgi就可以安裝成功了。然後再執行一下wfastcgi-enable命令啟用它即可,成功執行後,會輸出一個目錄,告訴你可以把它加到配置檔案(稍後講)。

安裝 git

當然了,首先要把專案的程式碼 clone 到本地。需要安裝git,具體用法就不說了。不過安裝的時候,有一個很重要的點,就是問你要使用哪個加密庫。預設是使用 OpenSSL,我是原生黨,所以改選了使用有windows native字樣的那個,結果後來使用 git 的時候,驗證賬號密碼一直出錯,坑死爹爹了。切記這裡不要亂選了。

程式碼一定要用 manager.py runserver本地跑一下啦,只要依賴的包裝好了,一般而言是沒有問題的。然後可以進入下一步。

配置 web.config

IIS中新建一個網站,把域名分配過去就好。然後在manager.py的同級目錄新建一個文字檔案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>

scriptProcessor的值,要改為前文說過的執行wfastcgi輸出的那個值。PYTHONPATH的value要改為manager.py的那個目錄,也就是你專案的根目錄。DJANGO_SETTINGS_MODULE的value中的<Django App>要改為你的專案名。

然後重啟一下你的網站,域名沒有錯的話,應該就可以訪問了。

嗯,就是這麼簡單,這麼霸道。但我不會告訴你我找資料的那240個小時的。

如果你看到頁面沒有css樣式了,應該是找不到靜態檔案,執行一下manager.py collectstatic應該就好了。

另外,為了讓靜態檔案的處理不經過Python這一層,建議往staticmedia目錄下各放一個web.config檔案,內容都是:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <remove name="Python FastCGI" />
    </handlers>
  </system.webServer>
</configuration>

記得如果你改過最前面的web.config檔案中的name值,這裡也要對應。這樣就可以在獲取靜態檔案的時候快一點了。

參考:

相關推薦

windows 2008 serverIIS 7執行 django 1.11 + python 3.6

緣起 使用django開發了一個專案,客戶的技術體系是全棧window的,所以要求我們提供把專案部署到windows伺服器的服務。 寫這個原因是舊的在 windows 上執行python網站程式的文件,基本上全過時了。 從macOS登陸windows伺服器

Windows 2008 server + IIS 7 設置身份模擬(ASP.NET impersonation)

oid thead tar level 現在 如果 system out 編輯框 IIS7 與 IIS 6 相比有了很大的改動,原來在 IIS 6 下可以的設置到了 IIS 7 下有的會發生變化。身份模擬的配置上,IIS7 和 IIS6有很大不同,網上IIS6的

Windows 2008 R2高階機器執行SQL Server 2008時,CPU個數的考量

我們知道SQL Server所能檢測到的CPU是邏輯CPU個數。而不是物理CPU個數。雙核CPU對於SQL Server來講,是兩個邏輯CPU,如果有超執行緒的話,CPU個數還要翻一倍。邏輯CPU個數,通常能在Windows 的Task Manager裡顯示出來, 在CPU Usage Histo

django 1.11.16 +Python3.6 + xadmin 的坑

1、首先安裝就會有一個坑,很多教程的安裝是直接在虛擬環境下使用 pip install xadmin 或者 pip install django-xadmin 事實證明 Django2+xadmin2的版本是行不通的, 正確方法是通過官方的github https://github.co

Windows 2008 IIS 7使用Excel

用asp.net開發WEB應用,其中涉及到excel的操作有2種:excel檔案的上傳並從表格的單元格中讀取資料寫入資料庫,從伺服器上產生資料並以excel的形式下載。這些操作在本地開發環境下;在伺服器上用localhost訪問;客戶端遠端桌面連線上伺服器,客戶端訪問這三種

IIS 7.5配置執行Python 3.6+Django 網站

因業務切換,將原先的CentsOS換成Windows 2008 R2作業系統,重新部署了下Django網站,現將過程記錄下: 1、安裝Winodws版的Python 3.6環境,直接下載Anaconda3-4.3.1-Windows-x86_64.exe整

iis 7發布mvc報錯:403.14-Forbidden Web 服務器被配置為不列出此目錄的內容

OS asp 影響 directory spn 內容 server 解決 並且 iis 7上發布mvc報錯:403.14-Forbidden Web 服務器被配置為不列出此目錄的內容 提示裏面的解決方法是: 如果不希望啟用目錄瀏覽,請確保配置了默認文檔並且該文件存在

風河虛擬化元件使用說明(19)—— 在目標機GuestOS VxWorks 7執行DKM工程,測試SOEM Demo

參考文件“vxworks_7_kernel_application_tutorial_workbench4.pdf”。 按照文件建立DKM工程的方法,建立vx_soem工程,選擇基於vx_vip工程:    SOEM是開源EtherCAT主站程式碼,目前已

windows 2008 R2 IIS伺服器配置PHP開發環境

前言:公司的業務所有都是.net 開發。所以所有的網站都在IIS伺服器。嘗試過用phpstudy的apache+mysql 來搭建php執行環境,結果apache 80埠 與IIS伺服器的80埠衝突,所以此方案不行。索性在IIs上配置php執行環境。以下是配置的整個過程。

Windows 2008 server r2 整合usb3.0驅動

在生產工作中發現,現在大部分新生產的機器主機板都將usb的介面更換成usb3.0,而作為前置機的裝置安裝的windows 2008 server r2系統本身並沒有usb3.0驅動,導致安裝啟動U盤不能正常安裝作業系統,現將Windows 2008 server r2 整合usb3.0的方法分享給大家。一 ·

web專案部署到CentOs 7執行

環境準備 JDK 如果你的虛擬機器上還沒有JDK環境你可以參照我的CentOs 7S下安裝JDK8去安裝 Tomcat 如果你的虛擬機器上還沒有Tomcat環境你可以參照我的CentOs 7下安裝Tomcat8去安裝 Mysql Mysql是非必須的

用Wineskin 讓Windows 的程式在Mac 執行

轉 https://blog.csdn.net/chenhe81/article/details/79293767 Mac Book 是個好東西不過很多小程式只有Windows 版本讓人很頭疼,裝個虛擬機器吧,不值當的。裝個雙系統更沒有必要,難道還要背兩個本

iis 7 傳大檔案 出現的 HTTP 404 問題

公司有個專案 要求上傳附件大小限制在50MB,原本以為可以輕鬆搞定。在編譯模式下可以上傳大檔案,可是在IIS7下(自己架的伺服器),一上傳大的檔案就會出現 Http 404錯誤,偶爾有的檔案還有IO. error錯誤。一直搞不明白,在網上搜索大概瞭解上傳控制元件分為兩種上傳模式: 1,將檔案一次性讀到記憶體

linux centos 7執行teamviewer與找不到ID問題處理辦法

以前在raspberryPi上搞過teamviewer,現在用了CentOS伺服器,搞了一個vpn,訪問還有點問題,時間緊張,就先給teamviewer。 而centos7 上安裝也比較簡單,幾條命令就可以了,但是往往很多人回到找不到ID的問題,這裡簡答記錄一下。 安裝步驟: [[email&#

關於在IIS伺服器執行asp.net Web程式出現下面 “Could not load file or assembly。。。”問題的

Could not load file or assembly 'System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of

遠端為伺服器安裝Windows 2008 Server

命苦,老早就定好10.1期間要把伺服器重新安裝一次,今天反正也沒有事情,來嘗試下遠端安裝,因為以後的MOSS公司要遠端的管理和使用 先登入到遠端控制卡的管理地址 然後輸入使用者名稱和密碼,以下是登入成功後的介面 然後在左側的功能樹中選擇“介質”,會提示你安裝一個

windows 2008 server中iis7.0部署網站

公司開始讓我部署在這伺服器上部署網站,開始沒搞過,在網上搜出來的雜七雜八的,所以總結一下,方便以後其他人做個參考 首先要安裝iis web服務,這個很簡單,1,開啟伺服器管理器,選擇角色,選擇新增角色就行了,之後就按照一步一步來就行了 2.安裝好iis後,點選資訊管理,選擇

Windows 2008 R2 64位安裝wamp失敗的原因

    因測試PHP程式需要,需要在windows系統上佈署WAMP環境測試程式,對效能不作具體要求,選擇WAMP Server進行快速佈置。     系統環境:Windows 2008 R2     按照正常windows安裝程式,完成WAMP Server程式安裝,

在CentOS 7使用Yum源安裝 Zabbix 3.2

zabbix mysql centos 在CentOS 7上使用Yum源安裝 Zabbix 3.2 1. 環境準備[[email protected]/* */ ~]# setenforce 0 [[email protected]/* */ ~]# sed -i "s/S

Django 1.11 使用命令makemigrations命令無法執行表修改動作

article 過程 tails django down .net migrate nag code 由於在學習過程中,遇到models模型變動,變動後合並發生問題,故當時做了刪除應用文件夾下migrations文件,由於數據庫裏無較多新數據,故刪除後重建,但重建後執行模型