Comment diagnostiquer correctement une erreur 500 (Rails, Passager, Nginx, Postgres)

Je vais avoir un réel moment difficile de diagnostiquer une erreur 500 à partir de mon application en cours d'exécution dans la production. Je l'ai eu à travailler avant, mais après re-déploiement via des Capastrano je n'arrive pas à obtenir ce que ça va.

Voici les faits:

  1. Le serveur est configuré avec nginx + passager, et je suis en utilisant
    PostgreSQL.
  2. Statique actifs travaillent correctement, comme je suis en mesure d'y accéder très bien dans un navigateur.
  3. Je peux accéder à la console rails via RAILS_ENV=production bundle exec rails console et effectuer l'Enregistrement Actif des actions (telles que
    la récupération de données à partir de la db).
  4. À l'intérieur de la console, je peux courir app.get("/"), qui renvoie une erreur 500 (après la première présentation de la requête qui a été exécuté à la charge
    le modèle).
  5. La production.fichier journal n'est jamais écrite. J'ai mis les permissions 777 sur elle juste pour l'enfer de lui. J'ai également définir le niveau de journalisation
    :debug avec rien à montrer pour elle.
  6. La nginx journal (dont les passagers utilise également) ne montre aucune indication d'erreurs, c'est juste informe sur les défauts de cache.

Parce que rien d'utilisation est en cours d'enregistrement, je n'ai aucune idée de quoi faire ici. J'ai essayé cadre de l'autorisation sur l'ensemble du répertoire app sans aucune aide. Redémarré le serveur plusieurs fois, rien. La base de données est là et les rails peuvent communiquer clairement avec elle. Je ne suis pas sûr de ce que j'ai fait pour le faire fonctionner, la première fois autour. Je ne sais pas pourquoi rails n'est pas de la sortie rien pour le journal.

OriginalL'auteur Brian | 2012-04-02