J'ai essayé de déployer mon application Rails sur nginx et ubuntu via capistrano, comme le didacticiel de la page https://gorails.com/deploy/ubuntu/14.04 . mais à la fin je reçois un message d'erreur:
Incomplete response received from application
dans mon navigateur. C'est probablement une erreur du passager, mais comment puis-je savoir quoi faire?
Votre production Rails_env n'a pas été configurée, il manque probablement secret_key_base.
Ouvrez /etc/nginx/sites-available/default
et remplacez Rails_env par développement:
Rails_env production;
to
Rails_env development;
Si l'application est en cours de chargement, il ne s'agit pas d'un problème de passager .
Solution de production:
rake secret
/yourapp/config/secrets.yml
secret_key_base
Redémarrez l'application passager:
touch /yourapp/tmp/restart.txt
Cette erreur se produit car vous n'avez pas défini la base secret_key_base. Suivez ces étapes pour résoudre ce problème:
Accédez au répertoire de votre application Rails.
cd /path/Rails-app
Générer une base de clé secrète
rake secret Rails_ENV=production
Définir la variable d'environnement
SECRET_KEY_BASE=<the-secret-key-base>
Redémarrez l'application Rails
touch /path/Rails-app/tmp/restart.txt
Pour ceux qui utilisent Passager:
• Accédez à la racine de votre projet.
• exécuter bundle exec rake secret Rails_ENV=production
• Copiez la sortie, puis exécutez Sudo nano config/secrets.yml
.
• Sous production
, remplacez la valeur de secret_key_base
par le secret de rake récemment copié.
• appuyez sur CNTRL+X
, puis sur y
, puis appuyez sur enter
.
• lancez passenger-config restart-app
et sélectionnez l'application que vous souhaitez redémarrer.
https://www.phusionpassenger.com/library/admin/Apache/restart_app.html
J'ai eu ce problème ce week-end (il s'est avéré qu'il y avait une incompatibilité entre mes versions de passagers et Ruby).
Cependant, personne ne semble mentionner: l'erreur réelle peut apparaître dans /var/log/Apache2/errors.log , pas dans un journal personnalisé.
Une fois que vous savez cela, j'espère que votre recherche sera plus facile!
Dans mon cas, c'était parce que mon serveur manquait de RAM par intermittence (pendant la génération PDF). Une fois le PDF généré, une partie de RAM a été restaurée et l'erreur disparaîtrait.
J'ai eu un serveur Ubuntu avec 500M de RAM.
J'ai ajouté de l'espace d'échange et cette erreur a disparu.
Peut-être que ma réponse est hors sujet, mais lorsque ma base de données mysql
n'est pas en cours d'exécution, j'ai aussi cette erreur. Juste au cas où quelqu'un aurait la même erreur.
alors start/restart
votre base de données pourrait être une autre réponse.
Y a-t-il quelqu'un comme moi qui a eu cette erreur après avoir téléchargé un fichier?
Ma solution est de vérifier le nom du fichier qui peut avoir des caractères spéciaux comme `[(~ .
Il suffit de l'enlever, puis de télécharger le fichier à nouveau.
Bonne chance ~
Cela signifie que votre application Rails a fait le plein avant d'arriver à Rails. Cela pourrait être une exception dans le middleware, une clé ENV manquante, quelque chose au niveau du système d'exploitation.
Essayez de démarrer l’application localement d’abord et faites ce que vous avez fait pour obtenir l’erreur de production. Si tout va bien, vérifiez tous vos journaux. Consultez les journaux nginx, les journaux de vos passagers et enfin, tous les autres journaux spécifiques au système d’exploitation relatifs au démarrage et à l’exécution de votre application.