エックスサーバーでMinicondaを使用してFlask環境を構築し、テストアプリを動作させる方法

この記事では、エックスサーバー上でMinicondaを利用してFlask環境を構築し、簡単なテストアプリを動作させる手順を解説します。この記事では、具体的なパスやURLはダミー情報を使用します。また、Flaskアプリのエントリーポイントとして main.py を使用します。

1. Minicondaのインストール

エックスサーバー上にMinicondaをインストールする方法については、以下のブログ記事をご参照ください。

2. Flask用のConda環境を作成

以下のコマンドを使用して、Python 3.10を基盤としたFlask用の仮想環境を作成します。

conda create -n flask_env python=3.10 -y

オプションの説明

  • create
    Condaで新しい仮想環境を作成します。
  • -n flask_env
    -n は仮想環境の名前を指定します。この例では flask_env という名前で作成します。
  • python=3.10
    作成する環境で使用するPythonのバージョンを指定します。この例ではPython 3.10をインストールします。
  • -y
    確認プロンプトをスキップして自動的に作業を進めます。

仮想環境の有効化

作成した仮想環境を有効化します。

conda activate flask_env

Flaskのインストール

仮想環境内でFlaskをインストールします。

pip install flask

インストール後、Flaskのバージョンを確認しておきます。

flask --version

3. 仮想環境の無効化と削除

仮想環境の無効化

現在有効化されている仮想環境を無効化(終了)するには、以下のコマンドを実行します。

conda deactivate

仮想環境の削除

不要になった仮想環境を削除するには、以下のコマンドを使用します。

conda remove -n flask_env --all

4. ディレクトリ構成の準備

以下の構成でファイルを用意します。

/home/example/example-site.com/public_html
├── main.py
├── index.cgi
└── .htaccess

各ファイルの内容は以下の通りです。

main.py

Flaskアプリケーションのエントリーポイントです。

from flask import Flask, request

app = Flask(__name__)

@app.route('/')
def home():
    return f"""
    <h1>Hello, Flask!</h1>
    <p>SCRIPT_NAME: {request.environ.get('SCRIPT_NAME')}</p>
    <p>REQUEST_URI: {request.environ.get('REQUEST_URI')}</p>
    """

index.cgi

CGIスクリプトとしてFlaskアプリを実行するための設定です。main.py をインポートする形に変更しています。

#!/home/example/miniconda3/envs/flask_env/bin/python

from main import app
import os

print("Content-Type: text/html\n")

# CGI ハンドラー
def cgi_handler():
    environ = os.environ
    environ['SCRIPT_NAME'] = '/'
    environ['REQUEST_URI'] = environ.get('REQUEST_URI', '/')

    from wsgiref.handlers import CGIHandler

    # Flask アプリケーションを実行
    CGIHandler().run(app)

if __name__ == '__main__':
    cgi_handler()

index.cgiを実行可能にするために、以下のコマンドを実行します。

chmod +x /home/example/example-site.com/public_html/index.cgi

.htaccess

ApacheサーバーでCGIスクリプトを有効化するための設定です。

Options +ExecCGI
AddHandler cgi-script .cgi
DirectoryIndex index.cgi

5. 動作確認

ファイルの配置

上記のファイルをすべて /home/example/example-site.com/public_html ディレクトリに配置します。

ブラウザでアクセス

ブラウザで以下のURLにアクセスします。

http://example-site.com/

以下の内容が表示されれば成功です。

<h1>Hello, Flask!</h1>
<p>SCRIPT_NAME: /</p>
<p>REQUEST_URI: /</p>

6. トラブルシューティング

  • CGIエラーが発生した場合
    index.cgi に実行権限を付与してください。
  chmod +x /home/example/example-site.com/public_html/index.cgi
  • Flaskが動作しない場合
    Miniconda環境が有効化されているか確認してください。
  conda activate flask_env

これで、エックスサーバー上でMinicondaを使用してFlask環境を構築し、main.py をエントリーポイントとするテストアプリを動作させる手順の解説は終了です。

コメント

タイトルとURLをコピーしました