首頁 > 運維 > Apache > flask怎麼結合apache

flask怎麼結合apache

(*-*)浩
發布: 2019-10-29 11:18:38
原創
3584 人瀏覽過

flask自帶的開發Web伺服器表現很差,回應慢,而且直接透過nginx進行反向代理,經常無法回應要求。有兩個可以在生產環境中使用、效能良好且支援Flask程式的伺服器,分別是Gunicorn和uWSGI,但這兩個模組並沒有提供對window的支援。

flask怎麼結合apache

因此我們需要使用mod_wsgi這個模組使得flask能夠在apache上部署,mod_wsgi模組是一個python寫的Apache的FastCGI模組。   (建議學習:apache使用

下載完畢後解壓縮得到Apache24,打開進入conf文件,用文字打開,我這裡採用Atom打開。

現在說明一下,我們需要修改的地方:

1、ServerRoot "c:/Apache24":修改成自己的目錄位址

2、Listen 8080:連接埠號配置,部分使用者可能會發現自己的80埠佔用,可能是IIS或SQLserver佔用,我們可以透過修改這個連接埠號,方便測試

3、修改目錄授權

原本的:

<Directory />
AllowOverride none
Require all denied
</Directory>
登入後複製

修改後:

<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory>
登入後複製

4、修改文件根路徑為自己的檔案路徑

DocumentRoot "c:/Apache24/htdocs"
<Directory "c:/Apache24/htdocs">
登入後複製

5、mod模組配置(重點)

# (1)首先對下載下來的mod.whl檔案進行安裝:

pip install <檔案絕對路徑>

(2)安裝成功後,執行下面的命令:

mod_wsgi-express module-config
登入後複製

(3)上面這條指令成功運行後,我們可以得到三個訊息:

flask怎麼結合apache(4)然後使用這三個訊息代替.so文件,加入到apache的設定文件中:

flask怎麼結合apache6、設定網站(重點):

# <VirtualHost> definition.  These values also provide defaults for
# any <VirtualHost> containers you may define later in the file.
登入後複製

因為我是一個不是很懂設定apache的人,我一開始看到參考連結中的設定< VirtualHost>不知道放在哪裡,所以可以通過全文搜索,搜到了這句話,我可以確定將這個放在文件最底部。

將下面這段複製到conf檔案的最底部,並且修改路徑為自己的路徑

<VirtualHost *:8080 >
ServerAdmin example@xx.com
DocumentRoot E:\Environment\Apache\Apache24\text_web
<Directory "E:\Environment\Apache\Apache24\text_web">
Order allow,deny
Allow from all
</Directory>
WSGIScriptAlias / E:\Environment\Apache\Apache24\text_web\test.wsgi
</VirtualHost>
登入後複製

上面的網站設定說明:

(1)專案路徑(不一定要放在apache目錄下):

DocumentRoot E:\Environment\Apache\Apache24\text_web
登入後複製

(2)wsgi模組啟動檔(重點):

WSGIScriptAlias / E:\Environment\Apache\Apache24\text_web\test.wsgi
登入後複製

注意:這裡的「/」是必須的,表示url前綴,後面可以依需求修改。

(3)專案路徑權限:設定為允許全部

<Directory "E:\Environment\Apache\Apache24\text_web">
Order allow,deny
Allow from all
</Directory>
登入後複製

到這裡我們的httpd.conf檔案已經設定完成了。

二、下方進入flask專案的設定:

專案目錄:

flask怎麼結合apache

1 、test.wsgi檔說明:

import sys
sys.path.insert(0, "E:/Environment/Apache/Apache24/text_web") #项目路径
登入後複製

from test import app #將我們的flask項目project名引入

application = app #applcation一定不能改成別的,因為wsgin在解析這個文件時,只認applcation(參考連結)

2、flask的主文件

from flask import Flask
 
app = Flask(__name__)
 
@app.route(&#39;/hello&#39;)
def hello_world():
    return &#39;Hello World!&#39;
 
if __name__ == &#39;__main__&#39;:
    app.run()
登入後複製

到此,我們的專案配置基本上完成,這裡特別需要注意的是在wsgi檔中的項目引入。

三、啟動或安裝apache

啟動管理員模式的cmd進入到Apache24的bin檔案路徑下:

安裝apache為系統服務:

httpd -k install
登入後複製

啟動apache:

httpd -k start
登入後複製

我發現有的電腦可以直接透過開啟httpd.exe直接執行,而不需要將httpd安裝入系統服務。

其他可能用到的apache指令:

停止apache服務:

httpd -k stop
登入後複製

重啟apache服務:

httpd -k restart
登入後複製

至此,我們的flask專案透過wsgi模組搭建在apache服務已經完成建置完成,開啟localhost:8080/hello,看是否出現helloworld,如果發現專案仍然沒有設定成功,請留意apache的錯誤輸出日誌。錯誤輸出日誌在\Apache24\logs\error.lo

以上是flask怎麼結合apache的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板