1. 程式人生 > >部署Django在Windows server 2008r2 採用apache+mod_wsgi方案

部署Django在Windows server 2008r2 採用apache+mod_wsgi方案

部署Django在Windows server 2008r2

Run Django with Apache + mod_wsgi on Windows server 2008r2

最近學習了Django,語法學的差不多了.最後想搭建一個伺服器以訪問網站.
網上看了很多方案,但是有很多方案都不適合在windows在部署,或者就是Python版本太老

  • nginx + uwsgi (其中uwsgi不相容windos)
  • IIS + PyISAPIe(Python2.7) 太老.
  • IIS + FASTCGI (IIS過於難配置)

其中stackoverflow說的很好.唯一也是最有效的方式就是 apache+mod_wsgi

Best way (IMHO) is using apache+mod_wsgi. 
Both uWSGI and Gunicorn are not windows-friendly (albeit uWSGI has cygwin support, 
so you can eventually try it [if you are brave enough])

感興趣的可以去看 連結

坑點描述

  1. 如果選擇Python2.7+64位,是無法直接使用mod_wsgi的,需要自己用VS編譯,太痛苦也沒必要,還不如換成Python2.7+32位。

  2. 特別注意Python的版本(2.7、3.4、3.5等)及是32位還是64位的。以及Apache是2.2還是2.4版本。常規的搭配是:Python2.7/32+apache2.*,Python3.4/64+apache2.4。不推薦Python2.7 64版。

  3. 無法使用uwsgi。因為其使用了uname函式,而它無法在Windows執行。因此要想用 Windows + Nginx +Python的方式不太靠譜。

  4. Django官方在1.6之後,不再推薦使用fcgi模式,推薦使用 wsgi。在1.10之後放棄支援 fcgi。

  5. 如果要使用pip需要編譯安裝一些Python包,需要安裝微軟提供的Python開發包軟體,一個針對Python的Virtual C++套件。

  6. 如果是直接用別人編譯好的Mod_wsgi.so檔案,需要注意版本。VC9、VC10是不同的。

  7. 最後,還是建議不要在Windows裡部署,實在太麻煩了,坑很多。BSD或Linux下會方便很多。

最後採用的環境如下

Pyhton3.5 下載連結

Apache 2.4.25 x64 下載連結

Django 1.10.6 (使用pip安裝Django,略過)

mod_wsgi 下載連結

過程

1.安裝Python

這一步最是簡單,pyhon在官網直接有下載.

(針對伺服器,我選擇直接使用Windows x86-64 web-based installer)

如果選擇3.4版本,只提供原始碼包.我也因此不選用python3.4,麻煩!!!

  • 另外Django推薦在windows上使用虛擬環境 連結
  • 方法
    1. 安裝 virtualenv and virtualenvwrapper
      • pip install virtualenvwrapper-win 注:說是兩個,一條命令就解決了
    2. 為你的專案建立虛擬環境:
      • mkvirtualenv myproject 注:myproject 為自定義的環境名 ,此命令之後就已經進入
    3. 如果之後退出了命令列.cmd命令重新進入命令列
      • cd C:\Users\Administrator\Envs 注:該目錄下可看見’myproject’
      • workon myproject 注:重新

2.Django (採用虛擬環境,之後Apache配置的也是Python虛擬環境)

虛擬環境中,使用pip安裝Django,我安裝的版本是1.10.6

  1. pip installs Django

  2. 開始一個你的Django專案,

  3. 部署在生產環境,在setting.py檔案
    別忘記關閉DEBUG模式 還有ALLOWED_HOSTS其中‘*’表示不指定特定的host,就是全部的意思啦
DEBUG = False

ALLOWED_HOSTS = ['*']

3.mod_wsgi下載

首先引用其他博主的描述,原始碼編譯實在太麻煩了

直接使用別人上傳的編譯後的whl包

官網給出的mod_wsgi安裝方法比較麻煩,而且很容易出錯(Tips:我沒有編譯成功T_T)

不過,在網上已經有人上傳了編譯後的whl包,可以在
http://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi中找到

注意我這裡Apache採用VC14編譯,這裡也選用VC14的版本,然後根據系統選擇:32/64

命令列中,cd 到下載的目錄,使用pip編譯/安裝
pip install mod_wsgi-4.4.23+ap24vc14-cp35-cp35m-win_amd64.whl

pip命令完成之後進入我們的python虛擬環境(為什麼是虛擬環境中找?上面有提到)

可以看見 mod_wsgi.so,這個檔案在Apache伺服器中需要用到

17年4月17日更新
.so檔案的方式已經不成功
之後執行
mod_wsgi-express module-config
輸出如下
這裡寫圖片描述

注意這兩句話,之後會用到

LoadFile "c:/users/administrator/appdata/local/programs/python/python35/python35.dll"
LoadModule wsgi_module "c:/users/administrator/envs/mode_env/lib/site-packages/mod_wsgi/server/mod_wsgi.cp35-win_amd64.pyd"

注:此時更新的環境名為mode_env

這裡寫圖片描述

4.Apache伺服器

下載連結
,這裡我選用x64是因為系統是x64

選用的Apache是VC14編譯的.對應上文,mod-wsgi也必須是VC14編譯)

  1. 將之前的mod_wsgi.so檔案拷貝到Apache24的modules目錄下
    • 例如我的目錄是 :D:\LHServer\httpd-2.4.25-x64-vc14-r1\Apache24\modules,可以看見該目錄下有很多.so結尾的檔案.就沒錯了
  2. 進入Apache的bin目錄
    • D:\LHServer\httpd-2.4.25-x64-vc14-r1\Apache24\bin
  3. 進入Apache/conf目錄,修改httpd.conf檔案 步驟很多
    1. 修改:引號中”“的為Apache的地址
      • Define SRVROOT "D:\LHServer\httpd-2.4.25-x64-vc14-r1\Apache24"
    2. 設定監聽的埠和地址.我這裡的埠是9022
      • Listen 0.0.0.0:9022
    3. 阿什頓
    4. 設定伺服器地址 我公司的伺服器地址為120開頭,埠為9022
      • ServerName 120.x6.7x.8x:9022
#4月17日更新
#刪去:LoadModule wsgi_module modules/mod_wsgi.so
#刪去:WSGIPythonHome C:/Users/Administrator/Envs/apache_env#
#匯入之前mod_wsgi.so檔案
LoadModule wsgi_module "c:/users/administrator/envs/mode_env/lib/site-packages/mod_wsgi/server/mod_wsgi.cp35-win_amd64.pyd"
#新的WSGIPythonHome地址
WSGIPythonHome "c:/users/administrator/envs/mode_env"




#Django專案中wsgi.py的路徑
WSGIScriptAlias / D:/LHServer/MyServer/MyServer/wsgi.py



#Django專案的路徑
WSGIPythonPath D:/LHServer/MyServer

#配置wsgi.py的訪問許可權
<Directory D:/LHServer/MyServer/MyServer>
<Files wsgi.py>
Require all granted
</Files>
</Directory>

最後. 將Apache新增為系統服務,

  • httpd -k install

啟動Apache

- `httpd -k start`

訪問失敗的問題

在區域網中訪問:

需要在防火牆開啟9022的埠

外網訪問:

  1. 在防火牆開啟9022的埠
  2. 在路由器中新增埠對映

至此,Django with Apache + mod_wsgi on Windows server 2008r2教程基本完畢

相關推薦

部署Django在Windows server 2008r2 採用apache+mod_wsgi方案

部署Django在Windows server 2008r2 Run Django with Apache + mod_wsgi on Windows server 2008r2 最近學習了Django,語法學的差不多了.最後想搭建一個伺服器以訪問網站.

在window上部署python Django專案 採用apache+mod_wsgi方案

剛學了一段時間的python,感覺挺方便的,寫個簡單的web,真的是太簡單了,一行命令runserver就跑起來了,後來聽說那是測試伺服器,不安全,只能用於測試,不能用於生產上,好吧,雖然我的網站可能就我一個人訪問而已,哈哈,但是還是得折騰一下。 由於我是window系統,

Win7環境下Apache+mod_wsgi本地部署Django

cal 配置ip asp AS aps graham 位置 open blank django基礎已經掌握的同學可以嘗試將項目發布已尋找些許成就感,以鼓勵自己接下來進行django的進階學習 以前你總是使用python manage.py runserver進行服務啟動,但

Apache + mod_wsgi部署webpy應用

引用: http://webpy.org/cookbook/mod_wsgi-apache.zh-cn 下面的步驟在Apache-2.2.3 (Red Hat Enterprise Linux 5.2, x86_64),mod_wsgi-2.0中測試通過。(譯者注:本人在Windows2003

CentOS7.4 部署 Django + Python3 + Apache + Mod_wsgi

一. Python 配置 1.安裝 python3.6.5 源及依賴包 # yum install epel-release -y # yum groupinstall "Development tools" -y # yum install zlib-

django在windows下的部署Apache+mod_wsgi

  原文文章:https://blog.csdn.net/weixin_40754816/article/details/80955817 之前一直在本地跑django專案,最近嘗試在伺服器上部署專案,目前已經成功部署,也花了好多時間,這裡跟大家交流一下,希望對像我一樣的新手有幫助

部署django : Apache + mod_wsgi + windows

1、環境 3、安裝mod_wsgi 注意,因為apache是32位的,所以mod_wsgi也應該選擇32位的。mod_wsgi的官網在這裡(https://code.google.com/p/modwsgi/)。但是因為沒有windows編譯版本(自己編譯幾乎都是以失敗告終),所幸在這裡可以下載到編譯

windows + Apache + mod_wsgi 部署釋出Django專案

一、環境         windows 2008 r2 + python 2.7.10(32bit) + django 1.5.1 + Apache 2.4.27(32bit) + mod_wsgi 二、安裝配置Python + Django         參考Dja

Ubuntu下Django+Apache+mod_wsgi部署

OS: Ubuntu16.04LTS Django: 1.11 Python: 2.7.11 Apache: 2.4 本文只是Django+Apache的簡單部署 首先將D

Apache+mod_wsgi本地部署Django(windows系統)

本地Apache+mod_wsgi部署Django搭建部落格網站,開始用Django內建的manage.py runserver 0.0.0.0:8080來本地搭建,本地資料庫,邏輯和模板都寫好並跑通後上網查詢接下來需要將自己的程式託管 到Apache,Apache的元件中

Windows下Flask+Apache+mod_wsgi部署Flask專案

想在Windows上部署Flask。參照了網上好多教程,終於配好了。必要條件:         1: python環境         2:apache伺服器         3:mod_wsgi 下面是我的機子的環境:python:python3.6.apache伺服器: 

Apache+mod_wsgi 部署多個django專案(基於同樣IP和同樣埠,不同path)

最近由於要在apache部署多個django專案,兩個專案要求使用同一個ip和port,請求不同path來訪問不同的專案。 環境:centos7+apache2.4.6 本次通過配置虛擬主機的方式實現。 1.在/etc/httpd/conf下建立extra目錄 2.在

django 16、用apache+mod_wsgi部署後中文亂碼的解決方法

問題的起因是:自己通過python manage.py runserver 0.0.0.0:8082這種方式開啟專案,中文不會亂碼,但是樓主自己也在阿里雲上部署了一個網站,通過django+apache+mod_wsgi+ubuntu這樣的環境下配置的,卻會出現中文亂碼錯

SQL server數據庫的在server 2008R2上的安裝及基本管理

server 數據庫 SQL server數據庫的在server 2008R2上的安裝及基本管理(一)選擇SQL的數據庫的鏡像文件雙擊setup.ext 執行安裝程序這裏選擇安裝項,並選擇全新安裝安裝的環境監測全部通過因為這裏是使用的破解版的鏡像,所以會自動生成密鑰再一次檢測安裝環境

.net core webapi 部署windows server 2008 r2 筆記

tin 筆記 拷貝 網站 相關 google 註意 api sof WebAPI部署文檔 安裝dotnet-dev-win-x64.1.0.4 安裝DotNetCore.1.1.0-WindowsHosting 安裝vc_redist.x64 安裝Windows6.1-K

Windows Server 2008R2 設置SMTP郵件轉發服務

track windows mtp 默認 clas 技術 server jpg class 最近因業務需求在Windows Server 2008R2server上設置SMTP轉發服務,主要是在業務審批過程中郵件通知相關人員審批情況, 1、在server上加入

詳解zabbix安裝部署Server端篇)

官網下載 libc 發現 trapper 分布式系統 .so libcurl figure database Linux下常用的系統監控軟件有Nagios、Cacti、Zabbix、Monit等,這些開源的軟件,可以幫助我們更好的管理機器,在第一時間內發現,並警告系統

JSP_運維_JSP項目部署server(適合0經驗新手)

water pre 連接數 相關 ide rto gravity 說明 title 實戰:真正server端部署jsp項目經驗總結與記錄(完整過程從0到10適合對server端部署0經驗新手) jsp+tomcat+mysql項目部署到真正ser

Windows server 2008R2 DHCP服務器

windows dhcp 實驗系統:兩臺windows server2008R2系統 服務器:PC5 ip地址:192.168.10.1 客戶端:pc6 ip地址:自動獲取實驗目的:在PC5上配置D

Windows Server 2008R2配置ISCS存儲

windows iscsi實驗系統:兩臺Windows Server 2008R2 服務器PC5 IP地址:192.168.10.1 客戶端PC6 IP地址:192.168.10.2