FlaskとApacheを組み合わせる方法

(*-*)浩
リリース: 2019-10-29 11:18:38
オリジナル
3546 人が閲覧しました

flask に付属の開発 Web サーバーは、パフォーマンスが非常に低く、応答が遅く、nginx を介して直接リバース プロキシを実行するため、リクエストに応答できないことがよくあります。運用環境で使用でき、優れたパフォーマンスを備え、Flask プログラムをサポートする 2 つのサーバー (Gunicorn と uWSGI) がありますが、これら 2 つのモジュールは Windows をサポートしていません。

FlaskとApacheを組み合わせる方法

したがって、 フラスコを Apache にデプロイできるようにするには、mod_wsgi モジュールを使用する必要があります。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) 上記のコマンドが正常に実行されると、次の 3 つの情報を取得できます。

FlaskとApacheを組み合わせる方法 (4) 次に、これらの 3 つの情報を使用して .so ファイルを置き換えて追加します。 apache 設定ファイルへ 媒体:

FlaskとApacheを組み合わせる方法6. 設定サイト (キーポイント):

# <VirtualHost> definition.  These values also provide defaults for
# any <VirtualHost> containers you may define later in the file.
ログイン後にコピー

私は Apache の設定方法を知らない人間なので、最初に見たのは、参考リンクの設定をどこに置くか分からないので、全文検索してこの文を見つけると、このをファイルの最後に置くことができます。

次の段落を 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 ファイルは構成されました。

2. 以下にフラスコ プロジェクトの構成を入力します:

プロジェクト ディレクトリ:

FlaskとApacheを組み合わせる方法

1、test.wsgi ファイルの説明:

import sys
sys.path.insert(0, "E:/Environment/Apache/Apache24/text_web") #项目路径
ログイン後にコピー

from test import app #フラスコ プロジェクトを紹介しますプロジェクト名

application = app #applcation は、wsgin がこれを解析しているため、他のものに変更してはいけません

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 ファイルですプロジェクトの紹介。

3. Apache を起動またはインストールします

管理者モードで cmd を起動し、Apache24 の bin ファイル パスを入力します:

システムにサービスを提供するために Apache をインストールします:

httpd -k install
ログイン後にコピー

apache を開始します:

httpd -k start
ログイン後にコピー

一部のコンピューターでは、httpd をシステム サービスにインストールせずに httpd.exe を開いて直接実行できることがわかりました。

使用できるその他の Apache コマンド:

Apache サービスの停止:

httpd -k stop
ログイン後にコピー

Apache サービスの再起動:

httpd -k restart
ログイン後にコピー

この時点で、フラスコプロジェクトは wsgi にパスします Apache サービスがビルドされた後にモジュールがビルドされます。localhost:8080/hello を開いて、helloworld が表示されるかどうかを確認します。まだプロジェクトが正常に構成されていない場合は、Apache のエラー出力ログに注意してください。エラー出力ログは、\Apache24\logs\error.lo

にあります。

以上がFlaskとApacheを組み合わせる方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート