CentOS7 デプロイメント Flask (Apache、mod_wsgi、Python36、venv)

CentOS7 デプロイメント Flask (Apache、mod_wsgi、Python36、venv)

1. Apacheをインストールする

# yum インストール -y httpd httpd-devel
# systemctl start httpd.service # 開始 # systemctl stop httpd.service # シャットダウン # systemctl restart httpd.service # 再起動 # systemctl enable httpd.service # 起動時に自動的に開始

ファイアウォールのポート80を開く

# ファイアウォールコマンド --zone=public --add-port=80/tcp --permanent
# ファイアウォールコマンド --reload

Apacheを開くと、外部ネットワークはIP経由でApacheのデフォルトページにアクセスできます。

2. Python36、pip3、virtualenvをインストールする

# yum インストール -y epel-release
# yum インストール -y python36
# python36 -V
Python 3.6.6
# yum インストール -y python36-setuptools
# easy_install-3.6 ピップ
# pip3 -V
/usr/local/lib/python3.6/site-packages/pip-18.1-py3.6.egg/pip (python 3.6) からの pip 18.1
# pip3 仮想環境をインストールする

3. プロジェクトを作成する

Flask プロジェクトを作成する (最も単純なもの、プロジェクト フォルダー、スタートアップ ファイル)

# mkdir /var/www/flask_test # プロジェクトフォルダ# vi /var/www/flask_test/app.py # 起動ファイル

起動ファイルの例:

FlaskからFlaskをインポートし、リクエスト
 
アプリ = Flask(__name__)
 
@app.route('/')
hello_world() を定義します:
  「Hello World」を返す
 
@app.route('/hello')
デフハロー():
  名前 = request.args.get('名前','')
  'Hello ' + 名前 + '!' を返します。
 
__name__ == '__main__' の場合:
  アプリの実行()

プロジェクトフォルダに仮想環境を作成し、Flaskをインストールします。

# cd /var/www/flask_test
# virtualenv py3env # 仮想環境を作成 # source py3env/bin/activate # 仮想環境 (py3env) に入る # pip install flask # flask をインストール
(py3env) # deactivate # 仮想環境を終了する

4. 仮想環境に pip を使用して mod_wsgi をインストールする

# yum install -y python36-devel.x86_64 # 依存関係。インストールされていない場合は、pip によって以下のエラーが報告されます。 。
# source py3env/bin/activate # 仮想環境 (py3env) に入る # pip install mod_wsgi # mod_wsgi をインストールする
(py3env) # mod_wsgi-express install-module # コマンドを実行し、出力をコピーします LoadModule wsgi_module "/usr/lib64/httpd/modules/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so"
WSGIPythonホーム "/var/www/flask_test/py3env"
 
(py3env) # deactivate # 仮想環境を終了する

Apache 設定を変更する

# vi /etc/httpd/conf/httpd.conf

上記で取得した行をコピーし、設定ファイルの末尾に追加します。

次のようにコードをコピーします
ロードモジュール wsgi_module "/usr/lib64/httpd/modules/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so"

5. mod_wsgiを設定する

# vi /var/www/html/flask_test/app.wsgi

次のように記述します (https://dormousehole.readthedocs.io/en/latest/deploying/mod_wsgi.html に従って)

activate_this = '/var/www/flask_test/py3env/bin/activate_this.py'
open(activate_this) を file_ として実行:
  exec(file_.read(), dict(__file__=activate_this))
 
インポートシステム
sys.path.insert(0, '/var/www/flask_test')
アプリからアプリをアプリケーションとしてインポート

Apache の設定

# vi /etc/httpd/conf/httpd.conf

次のように記述します (https://dormousehole.readthedocs.io/en/latest/deploying/mod_wsgi.html#id1 に従って)

<仮想ホスト *:80>
  サーバー名 example.com
  WSGIScriptAlias ​​/ /var/www/flask_test/app.wsgi
  <ディレクトリ /var/www/flask_test>
    すべて許可が必要
  </ディレクトリ>
</仮想ホスト>

OK、Apacheを起動すると、このサーバーのIPを通じてWebページにアクセスできます。

app.pyに書かれた2つのパスをテストする

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Python wsgiref ソースコード分析
  • Python WSGI仕様の紹介
  • WSGI インターフェースと Python での WSGI サービスの操作の簡単な分析
  • Docker は Python Flask+ nginx+uwsgi コンテナを構築します
  • Pythonは、Flask UWSGIがグローバル変数を取得できない問題を解決します
  • Python ウェブフレームワーク Django WSGI 原理分析
  • VPS CENTOS で python、mysql、nginx、uwsgi、django を設定する方法の詳細な説明
  • Python 開発 Nginx+uWSGI+virtualenv マルチプロジェクト デプロイメント チュートリアル
  • ApacheでPython WSGIアプリケーションを実行する方法
  • Python 組み込みライブラリ wsgiref の使用 (WSGI の基礎)

<<:  Vue の一般的な問題と解決策の概要 (推奨)

>>:  MySQLの重複排除方法

推薦する

MySQLテーブルのフィールドと関連属性をエクスポートする手順

データベース内のテーブルのフィールドとプロパティをエクスポートし、テーブルを作成してWordに保存す...

ウェブサイトはグレー表示されています。画像を含む互換コードはすべてのブラウザをサポートしています

通常、国喪の日、大地震の日、清明節には、ウェブサイト全体を灰色にして、故人への哀悼の意を表します。そ...

MySQL 5.5 の導入に関する問題

MySQL の導入現在、会社ではプラットフォーム運用を通じてMySQLを導入しています。金曜日、プラ...

reduxの動作原理と使い方の説明

目次1. redux とは何ですか? 2. 還元の原則3. redux の使い方は? (1)redu...

MySQL マスタースレーブ同期、トランザクションロールバックの実装原理

ビンログBinLog は、データベース テーブル構造の変更 (テーブルの作成、変更など) とテーブル...

Angularルーティングサブルートの詳細な説明

目次1. サブルート構文2. 例1. 2つの新しいコンポーネントを作成し、その内容を変更する2. ル...

Docker イメージを削除できません エラー: そのようなイメージはありません: xxxxxx 解決策

序文docker イメージを削除できません。docker docker imagesを確認すると、イ...

Vue プロジェクト @change 複数のパラメータを使用して複数のイベントを渡す

まず、変更イベントは 1 つだけです。 changelevel() //値を選択選択を変更して行の値...

ウェブレッスンプラン、初心者向けレッスンプラン

指導トピックウェブページ適用グレード高校2年生授業時間1 クラス教科書分析焦点: 静的および動的ウェ...

仮想マシンのLinux初心者がIPを設定し、ネットワークを再起動する

仮想マシンを初めて使用する方や、仮想マシンに Linux をインストールしたばかりの方は、システムが...

Linux インストール Apache サーバー構成プロセス

袋を用意するインストールApacheがすでにインストールされているかどうかを確認するrpm -qa ...

CentOS7 での PostgreSQL 11 の詳細なインストールと設定のチュートリアル

1. 公式ウェブサイトアドレス公式サイトではインストールの参考手順が紹介されています。公式サイトを見...

GTK ツリービューの原理と使用法の分析

GtkTreeView コンポーネントは、美しい通常のリストやツリーのようなリストを作成できる高度な...

レスポンシブWebデザイン学習(3) - モバイルデバイスでのWebページのパフォーマンスを向上させる方法

序文モバイル デバイスでは、帯域幅とプロセッサ速度の制限により、Web ページのパフォーマンスに対す...

LinuxのCPU負荷とCPU使用率の詳細な説明

CPU 負荷と CPU 使用率これらは両方とも、ある程度、マシンの忙しさを反映できます。 CPU 使...