2016-06-10 15 views
0

Ich richte eine Centos 7-VM mithilfe dieses Lernprogramms (Standalone-Passagier) und RVM ein. Ich stelle die Rails-App über Capistrano bereit.Rails-App auf Centos mit Stand-Alone implementiert Passenger und Capistrano können nicht auf ENV-Variablen zugreifen

https://www.phusionpassenger.com/library/walkthroughs/deploy/ruby/ownserver/standalone/oss/install_language_runtime.html

Alles scheint außer egal zu arbeiten, wo ich Umgebungsvariablen kann die ENV [ "myvar"] nicht in Rails gelesen werden.

Ich habe versucht export myvar=test SSHed als die "Deployer" sowie root. Ich habe auch versucht, es zu bashrc hinzuzufügen. Wenn ich mich als Deployer anmelde und folgendes tue:

Es gibt mir die richtige ENV-Ausgabe. Wenn ich jedoch versuche, ENV ['myvar'] von meiner tatsächlich über capistrano rails app bereitgestellten App auszugeben, bekomme ich nichts.

Wo soll ich diese ENV vars setzen? Ich weiß, dass die ENV-Vars in Rails korrekt ausgeführt werden, weil die App, die sowohl auf Heroku als auch auf meinem Dev-Rechner bereitgestellt wird, korrekt ENV ['myvar'] ausgibt.

+0

Haben Sie 'myvar.rb' unter' config/deploy' – kasperite

+0

Nein unter diesem Verzeichnis ist nur production.rb. Was würde diese Datei erreichen? – user3339471

Antwort

0

Im Allgemeinen sollte Ihre Einrichtung funktionieren. Seit Version 4 sollte ein eigenständiger Passagier alle Variablen erben, die in den Startup-Skripten der Shell definiert sind. Es gibt eine nette documentation about environment variables in verschiedenen Szenarien im Zusammenhang mit Passenger.

Ich würde überprüfen oder zwei Dinge:

  • Dass Ihr .bashrc von .profile geladen wird. Wenn dies nicht der Fall wäre, würden Ihre Variablen nur in einer interaktiven Shell, aber nicht im Passagier geladen, was das Verhalten erklären würde, das Sie beim Anmelden als deployers beschrieben haben. Lassen Sie mich aus dem doc zitieren:

    Stellen Sie sicher, Ihre ~/.bashrc tatsächlich von Ihrem ~/.profile enthalten ist, was nicht der Fall sein könnte, wenn der Benutzer mit useradd statt adduser beispielsweise erstellt.

  • Werfen Sie auch einen Blick auf this section der Dokumente und überprüfen, dass Sie die Bedingungen gehorchen, auf dem Passagier die Umgebung der Anwendung tatsächlich passiert Vars.