Frage

Ich habe Passagier in der Entwicklung (Mac OS X), und es funktioniert einwandfrei.Das einzige problem, das kam erst später:jetzt habe ich eine benutzerdefinierte GEM_HOME Pfad und ImageMagick binaries installiert "/usr/local".Ich kann Sie in einem der shell-rc-Dateien, bezogen, und dies löst die Umgebungsvariablen, die für Prozesse hervorgebracht von der Konsole aus;aber was ist mit PKW?Die gleiche Anwendung kann nicht finden, meine Edelsteine, wenn diese Methode eingesetzt wird.

War es hilfreich?

Lösung

Ich kenne zwei Lösungen.Die erste (dokumentierte hier) ist im wesentlichen die gleiche wie manveru s—setzen der ENV-variable direkt in Ihrem code.

Die zweite ist, erstellen Sie einen wrapper um den Ruby-interpreter, der Passagier verwendet und dokumentiert ist hier (suchen Sie nach passenger_with_ruby).Das wesentliche ist, dass Sie erstellen (und Punkt PassengerRuby in der Apache-config) /usr/bin/ruby_with_env, eine ausführbare Datei, bestehend aus:

#!/bin/bash
export ENV_VAR=value
/usr/bin/ruby $*

Beide arbeiten;die ehemalige Ansatz ist ein bisschen weniger hackish, denke ich.

Andere Tipps

Bevor Sie erfordert (vor allem, bevor Sie erfordern rubygems), die Sie tun können:

ENV['GEM_HOME'] = '/foo'

Dies wird sich ändern, wird die Umgebungsvariable in diesem Prozess.

Ich fand heraus, dass, wenn Sie über root-Privilegien am computer, dann können Sie festlegen notwendigen Umgebungsvariablen in "envvars" Datei-und apachectl wird, führen Sie diese Datei vor dem starten von Apache.

envvars in der Regel befindet sich im selben Verzeichnis, in dem apachectl liegt - unter Mac OS X befindet es sich in /usr/sbin.Wenn Sie nicht finden können, dann suchen Sie in der Quelle von apachectl-Skript.

Nach dem Wechsel envvars-Datei starten Sie den Apache mit "apachectl -k restart".

Ich habe dieses Problem auch.Es erscheint das Passagier nicht-passthrough-Werte legen Sie mit dem SetEnv apache-Direktive - das ist bedauerlich.

Vielleicht wäre es möglich, zum festlegen von Umgebungsvariablen in Ihrer Umgebung.rb oder boot.rb (vorausgesetzt, Sie sprechen über eine Rails-app;Ich bin nicht vertraut mit Rack-aber vermutlich hat es eine ähnliche Funktionalität)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top