0

序章

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 を実行しているサーバーでこれらすべてを実行しています。最後に私の質問は次のとおりです

  1. 通常、APXS は Ubuntu のどこにありますか
  2. そこでAPXSスクリプトを使用するようにコードスニペットを変更するにはどうすればよいですか

お時間をいただきありがとうございました

4

2 に答える 2