はじめに
エックスサーバーのような共用サーバーでは、root権限が制限されており、Pythonライブラリやソフトウェアのインストールが直接行えない。
これにより、開発環境の構築やカスタマイズが制約を受ける場合が多い。この課題を解決する手段として、Minicondaを利用した仮想環境の構築が有効である。
Minicondaを使用することで、以下の利点が得られる:
- 環境の分離:プロジェクトごとに異なるPythonのバージョンや依存関係を独立して管理可能。
- 権限の制限回避:root権限を必要とせずに環境を自由に構築・運用可能。
- 簡易なパッケージ管理:
conda
コマンドを用いてライブラリを効率的に管理できる。
必要な環境とツール
ツール | バージョン | 備考 |
---|---|---|
エックスサーバー | 任意(共用サーバー) | SSH接続を有効にする必要あり |
Miniconda | 最新版推奨 | |
Python | 任意 | Miniconda環境内で設定可能 |
SSHクライアント | 任意(TeraTerm, PuTTY, Terminal) | SSH接続用 |
手順
1. Minicondaのインストール
Minicondaのダウンロード・インストールについては、以下の記事を参考にさせていただいた。
記事の内容に従って手順を進めた結果、基本的にはつまづく場面はなかった。
エックスサーバーにPythonのWebアプリをデプロイ【Miniconda、Flask、FastCGIを使用】
2. プログラムを呼び出す
いざ作成したPythonのプログラムを呼び出す際に個人的につまづいた。 minicondaでPython3.12.7をインストールし、環境変数(PATH)も設定したが、実際に呼び出されるのは元々エックスサーバーにインストールされているPython3.6.8という現象が起きたためだ。
解決方法としては、以下のようにプログラムのソースコード内に、PHPでPythonのコマンドを呼び出す際に、minicondaの仮想環境が呼び出すPythonのパスを直接指定するという方法だ。 もっと頭の良いやり方があるかもしれないが、これでminicondaにインストールしたPythonは呼び出すことができるようになる。
// Pythonスクリプトのコマンド設定(一部抜粋)
$python_command = get_option('bg_remover_python_command', '/home/ユーザー名/miniconda3/envs/仮想環境名/bin/python');
$python_command_escaped = escapeshellcmd($python_command);
$script_path_escaped = escapeshellarg($this->python_script_path);
$input_path_escaped = escapeshellarg($input_path);
$save_path_escaped = escapeshellarg($save_path);
まとめ
Minicondaを用いることで、エックスサーバーの環境でも柔軟で効率的なPython環境を構築できる。 本記事の手順を参考に、エックスサーバーでWebアプリケーションの公開を進めてほしい。
コメント