この記事では、エックスサーバー上で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
をエントリーポイントとするテストアプリを動作させる手順の解説は終了です。
コメント