SemiFixed: Fehlende 'secret_key_base' für 'production' Umgebung

8

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?

    
ReynierPM 06.05.2014, 17:35
quelle

3 Antworten

4

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.

    
Geraud Puechaldou 15.05.2014, 13:28
quelle
19

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.

    
mahatmanich 02.07.2014 15:53
quelle
1

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.

    
cpliu338 22.08.2014 01:34
quelle