1

mod_cgid モジュールを使用して、web.py アプリケーションを Apache にデプロイしようとしています。

urls.py でこのような URL を定義しました

urls = (
    '/app/', 'index.index',
    '/', 'index.index'
)

これは、私のアプリケーションが webstart.py を開始する場所です

import web, urls, sys, os
def notfound():
    return web.notfound()
if __name__ == "__main__":
   app = web.application(urls.urls, globals())
   app.notfound = notfound
   app.run()

私のApache構成は次のようになります

<Directory "dirname">
   Options +ExecCGI +FollowSymLinks +Indexes
   Order allow,deny
   Allow from all
   Require all granted
   DirectoryIndex webstart.py
</Directory>

localhost/app/ でサーバーにアクセスしようとすると、常に notfound ページが表示され、ログに「警告: SCRIPT_NAME が REQUEST_URI と一致しません」というメッセージが表示されます。

そして、それらの 2 つの変数を notfound ページ自体に出力しようとしましたが、それぞれ /app/webstart.py と /app/ を取得しました。

localhost/app/ でアプリケーションにアクセスしたときにアプリケーションを動作させるにはどうすればよいですか?

4

2 に答える 2

1
DirectoryIndex webstart.py

Apache 構成でディレクトリ アクセス用の既定のホームページを指定しました。したがって、URL のようなディレクトリにアクセスすると、たとえば localhost/app/、Apacheはこれをとして扱いlocalhost/app/webstart.py、リクエストをweb.pyに送信します。そのエントリを Apache 構成から削除して、Apache デーモンを再起動してみてください。

更新

CGI を介して web.py をデプロイすると、CGI スクリプト ディレクトリにするhttp://localhost/webstart.py必要があるため、 server のエントリが取得されます。そして webstart.py のルート定義はその URL の後に来ます。したがって、ルートにアクセスする必要があります。のような URL を取得するには、いくつかの定義が必要です。ScriptAlias/http://localhost/webstart.py/app//app/mod_rewritehttp://localhost/app/

于 2013-03-28T07:53:35.047 に答える
0

この問題を解決できなかったため、wsgi モジュールを使用しました。これが私がやった方法です... http://dfourtheye.blogspot.in/2013/03/deploying-webpy-application-in-apache.html

于 2013-03-29T05:45:08.460 に答える