web-dev-qa-db-ja.com

mod_fcgidを使用したApacheへのパイロンのデプロイ

見つかった手順を使用してPylonsアプリをデプロイしようとしました ここ 。これにより、ドメインのルートにアクセスしたときにデフォルトのPylonsページが読み込まれます。いずれかのパスに入力しようとすると、メッセージが表示されます

Unhandled Exception

An unhandled exception was thrown by the application.

アプリケーションのエラーログとApacheエラーログを表示すると、Pylonsは常にエラーコントローラーにルーティングしようとしているようです。ただし、上記のメッセージは、エラーコントローラーが出力するはずのものではないことに注意してください。

何をチェックするかについての提案はありますか? Pylonsを使用した開発が大好きですが、これは展開の最初の試みです。複数の異なるWebサーバーで複数の構成を試しましたが、うまくいきませんでした。

UPDATE:以下は私のPylonsアプリの設定です(コメントを少し短くするために削除しました)

[DEFAULT]
smtp_server = localhost
error_email_from = paste@localhost

[server:main]
use = Egg:PasteScript#flup_fcgi_thread

[app:main]
use = Egg:linkdb
full_stack = true
static_files = true

cache_dir = %(here)s/data
beaker.session.key = linkdb
beaker.session.secret = b75f1813263ab9a082f67278daa26433

sqlalchemy.url = mysql://cclp:[email protected]/ccorl

authkit.setup.enable = True
authkit.setup.method = form, cookie
authkit.form.authenticate.user.type = linkdb.model.auth:MyUsersFromDatabase
authkit.form.authenticate.user.data = linkdb.model
authkit.cookie.secret = c2b47614b6eb46c4bd7842cae10f27e4
authkit.cookie.signoutpath = /users/logout
authkit.form.template.obj = linkdb.model.auth:make_template

set debug = false

[loggers]
keys = root, routes, linkdb, sqlalchemy

[handlers]
keys = console

[formatters]
keys = generic

[logger_root]
level = INFO
handlers = console

[logger_routes]
level = INFO
handlers =
qualname = routes.middleware

[logger_linkdb]
level = DEBUG
handlers =
qualname = linkdb

[logger_sqlalchemy]
level = WARN
handlers =
qualname = sqlalchemy.engine

[handler_console]
class = StreamHandler
args = (sys.stderr,)
level = NOTSET
formatter = generic

[formatter_generic]
format = %(asctime)s,%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
datefmt = %H:%M:%S

[〜#〜] update [〜#〜]:そしてこれがアプリケーションによって生成されたエラーログです(私は妄想的なので、スターを付けましたIPアドレス)

DEBUG:authkit.authenticate.cookie:These cookies were found: []
DEBUG:authkit.authenticate.cookie:Our cookie 'authkit' value is therefore ''
DEBUG:authkit.authenticate.cookie:Remote addr '***.***.***.***', value '', include_ip True
DEBUG:pylons.wsgiapp:Setting up Pylons stacked object globals
DEBUG:pylons.wsgiapp:No controller found, returning 404 HTTP Not Found
DEBUG:authkit.authenticate.multi:Status: '404 Not Found', Headers: [('Content-Type', 'text/html; charset=UTF-8'), ('Content-Length', '154')]
DEBUG:authkit.authenticate.multi:Status checker recieved status '404 Not Found', headers [('Content-Type', 'text/html; charset=UTF-8'), ('Content-Length', '154')], intecept ['401']
DEBUG:authkit.authenticate.multi:Status checker returns False
DEBUG:authkit.authenticate.multi:Multi: No binding was found for the check
DEBUG:authkit.authenticate.cookie:These cookies were found: []
DEBUG:authkit.authenticate.cookie:Our cookie 'authkit' value is therefore ''
DEBUG:authkit.authenticate.cookie:Remote addr '***.***.***.***', value '', include_ip True
DEBUG:pylons.wsgiapp:Setting up Pylons stacked object globals
DEBUG:pylons.wsgiapp:Resolved URL to controller: u'error'
DEBUG:pylons.wsgiapp:Found controller, module: 'linkdb.controllers.error', class: 'ErrorController'
DEBUG:pylons.wsgiapp:Controller appears to be a class, instantiating
DEBUG:pylons.wsgiapp:Calling controller class with WSGI interface

[〜#〜] update [〜#〜]:これは私のアプリが使用しているfcgiスクリプトです

#!/usr/bin/env python
import logging
# Load the WSGI application from the config file
from paste.deploy import loadapp
wsgi_app = loadapp('config:/var/www/linkdb/production.ini')

# Deploy it using FastCGI
if __name__ == '__main__':
    logging.basicConfig(filename='/var/www/linkdb/error.log', level=logging.DEBUG)
    from flup.server.fcgi import WSGIServer
    WSGIServer(wsgi_app).run()
1
Michael Mior

Fcgidの問題をデバッグすることはできますが、mod_wsgiを使用してデプロイする方がはるかに簡単な場合があります。

おそらく発生している問題は、マルチスレッドモードまたはSTDOUTへの出力を行うコードでは機能しない.iniファイルに設定されているdebug = trueに関連しています。設定やログ行などをもっと投稿できれば、何が悪いのかを比較的簡単に確認できるはずです。ルートコントローラー内のアクションは呼び出されますか?ルートを変更しましたか?

Virtualenvを使用して環境をセットアップしましたか(go-pylons.pyインストーラー?)、またはシステムライブラリを使用してrootでeasy_installを実行しましたか?

1
karmawhore