Déploiement de pylônes sur Apache en utilisant mod_fcgid

J'ai essayé de déployer mon application Pylons en utilisant les instructions trouvées ici . Cela suffit de charger la page par défaut des Pylônes lorsque je visite la racine de mon domaine. Quand j'essaie d'entrer dans n'importe quel path, je reçois le message

Unhandled Exception An unhandled exception was thrown by the application. 

Lorsque je visualise le journal des erreurs pour mon application et le journal des erreurs d'Apache, il semble que Pylons essaie toujours d'apather les choses vers le controller d'erreur. Cependant, notez que le message ci-dessus n'est pas ce que mon controller d'erreur devrait sortir.

Des suggestions sur ce qu'il faut vérifier? J'aime développer avec Pylons, mais c'est ma première tentative de deployment. J'ai essayé plusieurs configurations sur plusieurs servers Web différents et je n'ai pas eu de chance.

MISE À JOUR: ci-dessous est la configuration de mon application Pylons (commentaires déchirés pour le rendre un peu plus court)

 [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:878048@mysql.mior.ca/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 

MISE À JOUR : Et voici le journal des erreurs produit par l'application (je suis paranoïaque, donc j'ai mis en vedette les adresses 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 

MISE À JOUR : C'est le script fcgi que mon application utilise

 #!/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() 

One Solution collect form web for “Déploiement de pylônes sur Apache en utilisant mod_fcgid”

Bien que vous puissiez déboguer sur le problème fcgid, vous pourriez find plus facile à déployer à l'aide de mod_wsgi.

Le problème auquel vous êtes probablement impliqué est lié à debug = true étant défini dans votre file .ini qui ne fonctionne pas dans un mode multi-thread ou un code qui fait une printing sur STDOUT. Si vous pouvez publier plus de votre configuration, les lignes de journal, etc., il devrait être relativement facile de voir ce qui ne va pas. Les actions dans le controller racine sont-elles appelées? Avez-vous modifié vos routes?

Avez-vous utilisé virtualenv pour configurer votre environnement (le programme d'installation go-pylons.py?) Ou avez-vous utilisé les bibliothèques système et faites-vous easy_install dans votre racine?

  • mod_fcgid: erreur lors de la lecture des données du server FastCGI
  • Fin de la sortie du script avant les en-têtes: php5
  • Comment puis-je utiliser SetEnv avec mod_fcgid pour passer des options spécifiques au domaine virtuel sur mon application PHP? (apache2)
  • Un seul process php-fastcgi bloque toutes les autres requêtes PHP
  • optimization de mod_fcgid pour un site dédié
  • Fin prématurée des en-têtes de script, mod_fcgi
  • Comment PHP fonctionne-t-il avec SPDY?
  • mod_fcgid + Python + Apache 2.2 / RHEL 5: sortie vers error_log, pas browser
  • Apache avec PHP configuré en FastCGI et scripts sans suffixe
  • Virtualmin: "L'exécution PHP via fcgid requirejs le module Apache mod_fcgid"
  • PHP + Fcgid se bloque si le téléchargement est interrompu
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.