Wie, um einen linux-Umgebungsvariable, die für andere Sprache (PHP oder RUBY)
Ich würde gern ein linux-Umgebungsvariable für meine verschiedenen Anwendungen, geschrieben in PHP und Ruby.
Ziel ist differntiate zwischen 'Produktion' und 'Entwicklung' linux-Umgebung.
Wie man einen linux-Umgebung variable (ex : APPLICATION_ENV='production'), die zugegriffen werden kann, mit PHP und Ruby?
Dank
Edit 1 :
Meine erste Lösung war :
für Apache/PHP vhost :
SetEnv APPLICATION_ENV 'production'
Ruby :
export APPLICATION_ENV='production'
puts ENV['APPLICATION_ENV']
Dies ist jedoch zwei Plätze auf den gleichen Wert... Es gibt keine Lösung, es zu verschmelzen in einem Ort ? par exemple Verwendung von /etc/environment
Edit :
Die Antwort auf meine Frage ist hier beschrieben : Einfügen-Variable Header in Apache
- Ist der code von der Befehlszeile aus ausgeführt oder von einem web-server (web-server, welche)?
- Der php-code von der Kommandozeile aus ausgeführt und von einem apache serveur-und ruby-code ausführen über die Befehlszeile
- Welche distribution verwenden Sie ?
- Meine distribution : Centos 6.4
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einer einfachen Lösung, einen zentralen Speicherort für Ihre variable wäre, um es in
/etc/environment
und in/etc/init.d/httpd
.Starten Sie anschließend apache mit
/etc/init.d/httpd restart
und es sollte OK sein.Wenn Sie mit ubuntu 16.04 oder ähnliches, ersetzen
/etc/init.d/httpd
mit/etc/init.d/apache2
Wenn Sie nicht wollen, gehören Umwelt-Datei auf den apache-Server, können Sie direkt fügen Sie Ihren code in
/etc/apache2/envvars
zum Beispiel am Ende der Datei:export HELLO='dear'
Für die Kommandozeile, eine
vor aufrufen des Codes, wie Domon vorgeschlagen. Sie können schreiben Sie eine kurze wrapper-bash-Skript zu tun, das alles in eine Zeile, wie diese
Für apache, stellen Sie sicher, dass mod_env ist geladen, und die Zeile
in der Website ist die vhost-config oder .htaccess.
Schließlich können Sie die APPLICATION_ENV Global auf dem system (mit was auch immer deine distri unterstützt dafür) und dann einfach übergeben Sie den Wert, um Ihre web-app mithilfe
Die am meisten einfache Weise ist die Angabe von Umgebungsvariablen, die direkt in der shell-Befehle. Dann können Sie auf Sie über die
ENV
Objekt in Ruby.Zum Beispiel, erstellen Sie eine Datei namens
env.rb
:Und führen Sie es in der shell so:
Er sollte drucken Sie das Wort "Produktion".
Oder verwenden Sie den
export
Befehl:Möchten Sie vielleicht die
export
Linie zu einigen config-Datei. Zum Beispiel, wenn Sie die bash verwenden, fügen Sie es zu~/.bashrc
- und wird ausgeführt, jedes mal, wenn Sie startet eine neue shell.$_ENV['APPLICATION_ENV']
/etc/apache2/envvars
. Dann fügen SiePassEnv APPLICATION_ENV
auf die richtige Datei in/etc/apache2/sites-enabled/*
.