序章
Python 3で書かれたWeb APIがあり、フラスコを使用しています。ターミナルから Web API を実行すると、コードは正常に実行され、コードの次の行からホストされます。
if __name__ == '__main__':
app.run(host='', port=8010, debug='true')
現在の状況
コードは完全に実行され、Apache サーバーにセットアップしたいと考えています。ただし、Apache サーバーには既に Python 2 を使用して構築された Web サイトがあり、Python 2 には mod_wsgi が必要です。
Apache サーバーで mod-wsgi の両方をセットアップする方法があるかどうか調べましたが、次のソースによると、 1 つの Apache サーバーで Python 2 と Python 3 で mod_wsgi を使用することはできません。
解決策を試みる
mod-wsgi を仮想環境にインストールしようとしています。こちらからパッケージをダウンロードし、有効化した上で環境にインストールしてみました。
ターミナルから実行 sudo python setup.py install
しましたが、以下のエラーが発生しました
ファイル「setup.py」の 139 行目、「missing Apache httpd server packages」にあります。% APXS) RuntimeError: 'apxs' コマンドがインストールされていないか、実行できないようです。このパッケージのドキュメントで前提条件のリストを確認し、不足している Apache httpd サーバー パッケージをインストールしてください。
そこで、圧縮されたパッケージの一部である Read Me ファイルを開いたところ、次のことがわかりました。
標準以外の場所にインストールされているバージョンの Apache を使用する場合は、インストールを実行する前に、Apache インストール用
APXS
の Apache スクリプトの場所に環境変数を設定およびエクスポートできます。apxs
この時点では、Apache インストールには何もコピーされないことに注意してください。その結果、Python 仮想環境ではなく、サイト全体の Python インストールにインストールしない限り、root ユーザーとしてこれを実行する必要はありません。
インストールが成功したことを確認するには 、次のコマンドで
mod_wsgi-express
スクリプトを実行します。start-server
mod_wsgi-express start-server
コマンドを実行している仮想環境にApacheがインストールされていないため、私の状況に取り組んでいるようですが、その方法がわかりません
彼らはsetup.pyファイルについて話しているので、パスを変更する必要があると思いますが、構文的に行う方法やAPXSスクリプトの場所がわかりません。
これは、変更する必要があると思われるコードのスニペットです
APXS = os.environ.get('APXS')
WITH_HTTPD_PACKAGE = False
if APXS is None:
APXS = find_program(['mod_wsgi-apxs'],
paths=[os.path.dirname(sys.executable)])
if APXS is not None:
WITH_HTTPD_PACKAGE = True
if APXS is None:
APXS = find_program(['mod_wsgi-apxs', 'apxs2', 'apxs'],
'apxs', ['/usr/sbin', os.getcwd()])
elif not os.path.isabs(APXS):
APXS = find_program([APXS], APXS, ['/usr/sbin', os.getcwd()])
if not WITH_TARBALL_PACKAGE:
if not os.path.isabs(APXS) or not os.access(APXS, os.X_OK):
raise RuntimeError('The %r command appears not to be installed or '
'is not executable. Please check the list of prerequisites '
'in the documentation for this package and install any '
'missing Apache httpd server packages.' % APXS)
質問
役立つ場合は、Ubuntu 12.04LTS を実行しているサーバーでこれらすべてを実行しています。最後に私の質問は次のとおりです
- 通常、APXS は Ubuntu のどこにありますか
- そこでAPXSスクリプトを使用するようにコードスニペットを変更するにはどうすればよいですか
お時間をいただきありがとうございました