2017-08-12 4 views
0

Windows 10、Python 3.6、Wamp 3.0.6。 私はPythonの初心者で、フラスコを使ってテストウェブサイトを作りたいと思っています。私は仮想環境を使うことができると知っていますが、私はむしろApache 2.4.23を実行しているWAMPサーバーを使用したいと思います。これを行うには、mod_wsgiモジュールをインストールする必要があることを理解しています。 Graham Dumpletonという有益な人がファイルを利用できるようにしました.WindowsとPythonのバージョンによって、.whlファイルをダウンロードできます。だから私はこれをやって、名前を変更して解凍し、フォルダとファイルを内部に入れて解凍しました。しかし、すべてのapacheモジュールファイルの拡張子は.soであり、そのようなダウンロードファイルはありません。私は必要なものは持っていると思うが、私が理解していないモジュールをインストールするプロセスがある。どのように私はこれを行うことができます誰も説明できますか?mod_wsgiモジュールでwampのフラスコを運ぶ方法

答えて

1

自分でmod_wsgiをコンパイル/インストールする方がよいです。それらの.whlファイルは第三者(私ではない)によって作成されており、どのように構築されているのかわかりません。

あなたがmod_wsgiをインストールするために必要なすべてが実行され、あなたがC:/Apache24の下であなたのApacheのインストールを持っているし、正しいMS C/C++コンパイラは、使用しているのPythonのバージョン用にインストールされていると仮定:一度

pip install mod_wsgi 

インストールされ、実行されます:

mod_wsgi-express module-config 

Apacheの設定ファイルに出力する内容をコピーしてください。その後、特定のWSGIアプリケーション用にmod_wsgiを設定します。

www.apachelounge.comのApacheディストリビューションのみを推奨します。その他のApacheディストリビューションでは、追加のApacheモジュールをコンパイルできるようにするために必要なヘッダーファイルは用意されていません。

0

うわー!私は彼自身から応答を得るとは思わなかった!どうもありがとう。

私はそれをやった:

LoadFile "c:/python36/python36.dll" 
LoadModule wsgi_module "c:/python36/lib/site-packages/mod_wsgi/server/mod_wsgi.cp36-win_amd64.pyd" 
WSGIPythonHome "c:/python36" 

が、それは動作しません。もちろん、WAMPではApacheの場所はC:\ wamp \ bin \ apache \ apache2.4.23です。変更することはできません。どうすればmod_wsgiをインストールすればよいですか?情報の欠如についてグラハムDumpletonの11時56

申し訳へ

レスポンス。

from flask import Flask 

app = Flask(__name__) 

@app.route('/') 
def index(): 
    return 'Hello World' 

if __name__ == "__main__": 
    app.run() 

これが活性化され、ローカルホスト上で実行されている:私は次のように私のファイルapp.pyでオンラインから貼り付けいくつかのベアボーンコードのコピーを/実行している5000を、私は画面上に「Hello Worldの」を持っています。 wamp通知エリアのアイコンを使ってlocalhostに行くと、私はこれを含め、私が 'python-test'と呼ぶすべてのローカルプロジェクトを見ることができます。私はそれをダブルクリックし、app.pyを含む構成ファイルを参照してください。 app.pyをダブルクリックするとURLは 'localhost/python-test/app.py'になり、 'Apache/2.4.23(Win64)PHP/5.6.25 mod_wsgi /4.5.17のPython/3.6 localhostのポート80' でサーバー

Serverのログは言う:

[Mon Aug 14 18:22:06.218169 2017] [win32:error] [pid 6576:tid 1280] [client 127.0.0.1:50473] AH02102: C:/wamp/www/python-test/app.py is not executable; ensure interpreted scripts have "#!" or "'!" first line, referer: http://localhost/python-test/ 
[Mon Aug 14 18:22:06.218169 2017] [cgi:error] [pid 6576:tid 1280] (9)Bad file descriptor: [client 127.0.0.1:50473] AH01222: don't know how to spawn child process: C:/wamp/www/python-test/app.py, referer: http://localhost/python-test/ 

私はmod_wsgiをインストールピップためにあなたのサイトからダウンロードしたファイルは、mod_wsgiを-4.5.17 + ap24vc14-cp36-ましたcp36m-win_amd64.whl

他にも手助けがありますか?

さらなる情報:Apacheのエラーログ火8月15日午前17時06分10秒

generating secret for digest authentication ... 
[Tue Aug 15 17:06:10.121529 2017] [mpm_winnt:notice] [pid 11008:tid 592] AH00455: Apache/2.4.23 (Win64) PHP/5.6.25 mod_wsgi/4.5.17 Python/3.6 configured -- resuming normal operations 
[Tue Aug 15 17:06:10.121529 2017] [mpm_winnt:notice] [pid 11008:tid 592] AH00456: Apache Lounge VC14 Server built: Jul 1 2016 11:43:51 
[Tue Aug 15 17:06:10.121529 2017] [core:notice] [pid 11008:tid 592] AH00094: Command line: 'c:\\wamp\\bin\\apache\\apache2.4.23\\bin\\httpd.exe -d C:/wamp/bin/apache/apache2.4.23' 
[Tue Aug 15 17:06:10.123535 2017] [mpm_winnt:notice] [pid 11008:tid 592] AH00418: Parent: Created child process 10952 
[Tue Aug 15 17:06:10.318641 2017] [auth_digest:notice] [pid 10952:tid 476] AH01757: generating secret for digest authentication ... 
[Tue Aug 15 17:06:10.357718 2017] [mpm_winnt:notice] [pid 10952:tid 476] AH00354: Child: Starting 64 worker threads. 
+0

あなたの応答は答えとして来るべきではありませんが、あなたは、あなたの質問を編集し、新しい情報で更新が追加されている必要があります。そのような情報は、「動作しない」と定義する必要があります。そうしないと、人々は理由を推測することになります。言い換えれば、あなたはどんなエラーを見ていますか?どこですか? Apacheエラーログにはどのようなエラーメッセージがありますか?新鮮なソースコードからmod_wsgiをコンパイルしましたか、それとも '' .whl''ファイルからインストールされた '' mod_wsgi module-config''を実行しましたか?要するに、より詳細な情報を提供してください。 –

+0

私は前の投稿の編集と考えることができるすべての情報を追加しました。追加できるものは他にありますか? – Perkin5

+0

特定のWSGIアプリケーションを構成するために使用したmod_wsgi構成は含まれていません。あなたは '' WSGIScriptAlias''やmod_wsgiを設定する他の方法を使っていますか?どうやって?このエラーは、あなたが '' .py''拡張子を持つWSGIスクリプトファイルを使用しようとしているが、Apacheの設定で '' AddHandler cgi-script .py''が設定されているため、CGIプログラムとして実行されています。 '' cgi-script''の '' AddHandler''行をコメントアウトしてください。 –

関連する問題