1. 程式人生 > 實用技巧 >python flask apache 部署

python flask apache 部署

1,python 3.6.3

2,apache 24

3,mod_wsgi-4.5.24+ap24vc14-cp36-cp36m-win_amd64.whl

4,執行 pip installmod_wsgi-4.5.24+ap24vc14-cp36-cp36m-win_amd64.whl

(修改配置檔案httpd.conf)

5,mod_wsgi-express module-config(安裝服務)

將執行的結果

----

LoadFile "c:/python36/python36.dll"
LoadModule wsgi_module "c:/python36/lib/site-packages/mod_wsgi/server/mod_wsgi.cp36-win_amd64.pyd"

WSGIPythonHome "c:/python36"

----

放在<IfModule unixd_module>的上面

6,修改

Define SRVROOT "D:/Apache24"
ServerRoot "${SRVROOT}"

#Listen  192.168.0.121:8080
Listen  219.244.70.10:80
Listen  127.0.0.1:2001
#Listen 8080

7,修改,如果有多個程式可以設定多個。

<VirtualHost *:80>

 WSGIScriptAlias /1234 "D:\Apache24\htdocs\untitled\run.wsgi"
 ServerAdmin [email protected]
 
 DocumentRoot "D:/Apache24/htdocs"
     
 <Directory "D:/Apache24/htdocs">
  
    Require all granted
  </Directory>

</VirtualHost>

8,如果多個程式共用一個埠,可以設定代理(多個VirtualHost時候),一般轉發給本機的localhost。(還不會)

ServerName 219.244.70.10:80
#
ProxyPass /xh123 http://localhost:81/xh123 #ProxyPassReverse /clptAPP http://219.244.70.9:8080

ProxyPass /http://192.168.100.22/
ProxyPassReverse /http://192.168.100.22/

ProxyPass 很好理解,就是把所有來自客戶端對 ServerName 219.244.70.10:80的請求轉發給http://192.168.100.22

上進行處理(還需要測試一下)

9,安裝apache 服務httpd.exe -k install

10 啟動ApacheMonitor.exe(bin),測試apache

11 啟動flask程式--編寫run.wsgi

import sys

#app's path
#sys.path.insert(0,"E:/pyWork/testweb")
#專案地址
#E:/Apache24/htdocs/untitled
sys.path.insert(0,"D:/Apache24/htdocs/untitled")
from app import app as application #python檔案地址匯入 物件

#Initialize WSGI app object
#application = app

注意

1,訪問檔案的絕對路徑

2,from Crypto.Cipher import AES報錯

python 在 Windows下使用AES時要安裝的是pycryptodome 模組   pip install pycryptodome 

python 在 Linux下使用AES時要安裝的是pycrypto模組   pip install pycrypto 

不可以同時安裝,若同時安裝,請同時解除安裝後,從新安裝需要的模組