私は Apache と mod_wsgi を使用して Python で webapp2 を実行しようとしています。これまでのところ、私は惨めに失敗しました。:-(
https://developers.google.com/appengine/docs/python/gettingstartedpython27/usingwebappの次の例を使用しました。
import webapp2
class MainPage(webapp2.RequestHandler):
def get(self):
self.response.headers['Content-Type'] = 'text/plain'
self.response.out.write('Hello, webapp World!')
app = webapp2.WSGIApplication([('/', MainPage)],
debug=True)
このファイルを として保存しc:wamp\www\Python\hello.py
、参照すると、次のようlocalhost/Python/hello.py
になります。
Not Found
The requested URL /python/hello.py was not found on this server.
ただし、Apache 内の Python の mod_wsgi は正常に動作しているようです。次のコード
def application(environ, start_response):
status = '200 OK'
output = 'Hello from Python!'
response_headers = [('Content-type', 'text/plain'),
('Content-Length', str(len(output)))]
start_response(status, response_headers)
return [output]
にありますc:\wamp\www\Python\test.py
。にアクセスするlocalhost/Python/test.py
と、ブラウザはHello from Python!
期待どおりに表示されます。
これまでのところ、def (="application") のデフォルト名を「something_else」に変更する方法を見つけただけです。
WSGICallableObject something_else
に.htaccess
。
しかし、どうすればApacheに変数app
を呼び出し可能なオブジェクトとして受け入れさせることができますか? (これまでのところ、私は主に Web 以外のプログラミングに Python を使用してきたので、これがばかげた質問でないことを願っています。)
どんな助けでも大歓迎です。
アップデート:
Graham は、私が Apache 構成ファイルで使用している mod_wsgi 構成と、それを追加する場所について尋ねました。追加した
LoadModule wsgi_module modules/mod_wsgi.so
<Directory "c:/wamp/www/python">
Options +ExecCGI
AddHandler wsgi-script .py
Order allow,deny
Allow from all
</Directory>
httpd.conf
すべての「LoadModule」行の最後で右に。
構成に関する追加情報: mod_wsgi-win32-ap22py27-3.3.so を使用しています。(もちろん、名前を に変更してmod_wsgi.so
に配置しましたc:\wamp\bin\apache\apache2.2.22\modules
。) 私の Python コマンド ラインは、バージョンについて次のように述べていますPython 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)] on win
32
。私が使用しているワンプ サーバーは 32 ビットです。私のオペレーティング システムは Windows 7 Ultimate 64bit SP1 です。
これが診断に役立つことを願っています...