Festlegen von Servervariablen vor dem Laden von Apache

7

Wir haben CentOS mit Apache darauf laufen. Grundsätzlich habe ich einige Variablen in / etc / environment und sie werden mit PassEnv an unsere Apache-Konfigurationen weitergeleitet. Das Problem ist, dass die Variablen nicht gefunden werden, da Apache vor / etc / environment steht.

Gibt es eine ähnliche Art von / etc / environment-Datei, in die ich meine globalen Umgebungsvariablen einfügen kann, die vor Apache (httpd) ausgeführt wird, oder muss ich mit der Bearbeitung von Runlevels beginnen?

Mit freundlichen Grüßen,

Steve

Steve Griff
quelle
Ich versuche das auch herauszufinden. Ich bin nicht davon überzeugt, dass CentOS überhaupt verwendet /etc/environment. Eine Suche auf redhat.com und eine Suche in RedHats Kbase geben nichts zurück.
Stefan Lasiewski

Antworten:

11

Verwenden Sie "/ etc / sysconfig / httpd", um die Apache-Umgebung festzulegen.

alvosu
quelle
Ich möchte, dass die Umgebungsvariablen auch über die Befehlszeile zugänglich sind, da wir einige PHP-Skripte verwenden, die diese Variablen benötigen.
Steve Griff
Für diejenigen, die Debian / Ubuntu verwenden, ist die zu bearbeitende Datei/etc/apache2/envvars
Hamish Downer
5

Wenn dies Variablen sind, die für jeden Benutzer im System gelten, sollten sie in / etc / enviornment hinzugefügt werden. IIRC Diese Datei wird jedoch nicht explizit von den Init-Skripten analysiert.

Sie müssten also eine Zeile in /etc/rc.d/init.d/functions hinzufügen, z

# -*-Shell-script-*-
#
# functions     This file contains functions to be used by most or all
#               shell scripts in the /etc/init.d directory.
# 
# amended to set env vars

TEXTDOMAIN=initscripts

. /etc/environment

Wenn Sie jedoch nur möchten, dass diese Variablen dem Webserver zur Verfügung stehen, sollten Sie sie in / etc / sysconfig / httpd deklarieren, z

# Configuration file for the httpd service.

export MYSQL_USER = mydbuser

(könnte ohne den expliziten Export funktionieren).

symcbean
quelle
Sieht nach der besten Lösung aus ... obwohl ich überrascht bin, dass eine Datei wie / etc / environment oder ähnliches nicht zu Beginn des Init-Prozesses analysiert wird. Nähere ich mich diesem Problem aus dem falschen Blickwinkel?
Steve Griff
1
Beim Versuch, / etc / sysconfig / httpd selbst zu erstellen, schien es nicht möglich zu sein, die Variablen für ein Bash-Skript verfügbar zu machen, das als Apache ausgeführt wird, bis ich hinzufügte, exportwie Sie hier gezeigt haben.
Doug Kavendek