Apache+python(Flask)でwebアプリを作成する方法
備忘メモ
Flask
pythonのライブラリの一つ(=pip install flaskでインストールできる)
FlaskはPythonで書かれた軽量なWebフレームワークであり、独立したWebサーバー機能を提供します。しかし、このWebサーバーは主に開発とテスト用途であり、本番環境での使用には推奨されていません。そのため、本番環境ではApache、Nginxなどの成熟したWebサーバーと一緒に使用されることが多いです。
ApacheをフロントにWebサーバとして配置し、pythonをバックエンドでアプリサーバとして構成する方法
Webサーバ(Apacheなど)とアプリケーション(Flaskアプリなど)との連携には、通常WSGI(Web Server Gateway Interface)が用いられます。WSGIは、WebサーバとPython Webアプリケーションとの間の標準的なインターフェースです。
Apache Webサーバを使用する場合、mod_wsgiというモジュールを使ってWSGIアプリケーションをホストします。mod_wsgiはApacheサーバに組み込まれ、Python WSGIアプリケーションサーバとして動作します。
1.Apacheの設定ファイルにWSGIアプリケーションの設定を追加
(Apache設定ファイル 設定例)
WSGIDaemonProcess your-application-name user=www-data group=www-data threads=5 
WSGIScriptAlias / /path/to/your/app.wsgi 
<Directory /path/to/your/>
    WSGIProcessGroup your-application-name 
    WSGIApplicationGroup %{GLOBAL} 
    Order deny,allow 
    Allow from all 
</Directory>
この設定では、/path/to/your/app.wsgiに指定されたWSGIスクリプトが、WebサーバによってリクエストされたURLのルート(/)にマッピングされます。
2.WSGIスクリプトの作成
次に、Flaskアプリケーションを起動するWSGIスクリプト(通常はapp.wsgiという名前)を作成します。
import sys
sys.path.insert(0, '/path/to/your/application')
from your_flask_app import app as application
/path/to/your/applicationは、FlaskアプリケーションのPythonファイル(通常はapp.py)が格納されているディレクトリへのパスです。your_flask_appは、そのPythonファイル内でFlaskアプリケーションオブジェクトが定義されているモジュール名です。
この設定を完了すると、ApacheはHTTPリクエストを受け取り、それをWSGIを通じてFlaskアプリケーションに転送します。FlaskアプリケーションはHTMLを生成し、それをApacheを通じてクライアントに送り返します。










ディスカッション
コメント一覧
まだ、コメントがありません