私は初心者プログラマーです。フォームを印刷する小さな Web アプリに Python と Bottle を使い始めました。mod_wsgi
私の知識はほとんどないので、本当の問題は Apache と を構成することです。
私の問題:私はこのエラーが発生し続けます:
エラー 404: 見つかりません
申し訳ありませんが、要求された URL /factura/ でエラーが発生しました: 見つかりません
仕事で、彼らは私とIPにリダイレクトするアドレスをくれました:ポート; 数日間 Apache ドキュメントを読み、Web で例を調べた後、VirtualHost が既に実行されている他の仮想ホストを壊さないように構成をセットアップすることができました。構成は次のようになります (ボトル チュートリアルの展開セクションに基づく)。
Listen port
NameVirtualHost IP:port
<VirtualHost IP:port>
ServerName IP:port
WSGIDaemonProcess factura processes=1 threads=5
WSGIScriptAlias / /var/www/factura/app.wsgi
<Directory /var/www/factura>
WSGIProcessGroup factura
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
Myapp.wsgi
は、Bottle チュートリアルの展開セクションのものとほぼ同じです。私は行を追加しただけsys.stdout = sys.stderr
です:
import sys, os, bottle
# Change working directory so relative paths (and template lookup) work again
sys.path = ['/var/www/factura'] + sys.path
os.chdir(os.path.dirname(__file__))
# Error output redirect
# Exception KeyError in 'threading' module
sys.stdout = sys.stderr
import factura
application = bottle.default_app()
以下は、Bottle に関連する Python コードの一部です。
from lib import bottle
app = bottle.Bottle()
#serves files in folder 'static'
@app.route('/static/:path#.+#', name='static')
def ...
@app.route("/factura")
@bottle.view("factura")
def ...
@app.route("/print_factura", method="POST")
def ...
これに似た他の質問をいくつか読みましたが、何が欠けているのかわかりません。問題はにあると思いますapp.wsgi
か?
アップデート
ファイル構造
/var/www/factura/ ## .py files
/views ## here is the web template
/static ## .css and .js of template
/lib ## package with bottle and peewee source files
/data ## inkscape file to play with
/bin ## backup stuff in repo, not used in code
Apache エラー ログにのみ表示される
Exception KeyError: KeyError(-1211426160,) in <module 'threading' from '/usr/lib/python2.6/threading.pyc'> ignored
これは wsgi/python の問題からの警告であり、wsgi issue 197では無害です
UPDATE 2の動作
は@app.route("/factura/")
、アプリのインポートの変更により、from factura import app as application
これら 2 つが一緒に動作するようになったことに注意してください