Ich habe eine Rails-App (Rails 4.1.0) von Grund auf neu erstellt und bekomme ein Problem, das ich nicht lösen kann. Ich habe Apache Passenger Module installiert und konfiguriert, es funktioniert einwandfrei. Immer wenn ich versuche, auf den virtuellen Host zuzugreifen, erhalte ich den Fehler 500:
%Vor%Die Datei secret.yml enthält die folgende Konfiguration:
%Vor%Auch wenn es nicht empfohlen wird, habe ich das getan:
%Vor%Aber Apache-Protokolle zeigen dies:
%Vor%Wie kann ich diesen Fehler beheben? Wie greife ich auf die Entwicklungsumgebung zu? Ich meine, wie kann ich Code schreiben, in meinem Browser testen und dann auf Heroku bereitstellen oder einfach nur in der Produktionsumgebung testen?
Aktualisieren
Ich schaffe es, den obigen Fehler zu beheben, indem ich RailsEnv development
auf VirtualHost setze, aber jetzt bekomme ich diesen anderen Fehler:
SQLite3 :: CantOpenException konnte die Datenbankdatei nicht öffnen Rails.root: / var / www / html / moviedb
Ich versuche dieses GEM zu verwenden, um Anfragen an die TheMovieDB-Website zu senden und Ergebnisse zu erzielen. Irgendwelche Hinweise zu diesem neuen Fehler?
Was ich getan habe: Auf meinem Produktionsserver erstelle ich eine Konfigurationsdatei (confthin.yml) für Thin (ich benutze sie) und füge die folgenden Informationen hinzu:
Umwelt: Produktion Benutzer: www-Daten Gruppe: www-Daten SECRET_KEY_BASE: mysecretkeyproduction
Ich starte dann die App mit
Thin-Start -C / shereeveristhefieonprod/configthin.yml
Arbeiten Sie wie ein Zauber und brauchen Sie dann nicht den geheimen Schlüssel für die Versionskontrolle
Ich hoffe, es könnte helfen, aber ich bin mir sicher, dass das Gleiche mit Unicorn und anderen geschehen könnte.
Rails App geheimer Schlüssel über Bash
Wenn Sie Zugriff auf die bash
-Konsole von dem Benutzer haben, der die rails-App ausführt, und wenn Sie nicht thin
verwenden, können Sie die Umgebungsvariable über die Benutzer bereitstellen ~/.bashrc
fügen Sie einfach Folgendes hinzu:
%Vor% Hinweis: MY_SECRET_KEY könnte alles Mögliche sein, aber es wäre sicher, einen Schlüssel mit rake secret
auf der Bash-Konsole zu erzeugen. Ersetze diesen Schlüssel mit "MY_SECRET_KEY" aus dem Beispiel.
Sobald Sie das getan haben, sollten Sie eine SECRET_KEY_BASE
Variable in der hash
sehen, die zurückgegeben wird, wenn Sie ENV
in Ihrer Rails-Konsole aufrufen.
Last but not least, starte deine Rails-App neu und der Fehler sollte verschwinden.
Rails App geheimer Schlüssel pro rbenv-vars
Wenn Sie rbenv
verwenden, können Sie das rbenv-vars
-Plugin verwenden, um eine geheime Schlüsselumgebungsvariable pro Apples zu generieren.
Eine gute Lektüre wäre hier!
Mit god (godrb.com): danke hlcs
Sie müssen god terminate
und starten dann erneut.
Ich habe damit eine ähnliche Situation gelöst (vielleicht nur in einer Ubuntu-ähnlichen Umgebung). Siehe: Fehlende geheime Schlüsselbasis für Produktionsumgebung . Hoffe es hilft.
Tags und Links ruby ruby-on-rails heroku ruby-on-rails-4