2010-05-14 18 views
9

Ich habe in meiner custom.conf-Datei in apache2 folgendes gesetzt:Wie füge ich Pfade zur Apache PATH-Variable hinzu?

SetEnv PATH $PATH:/opt/local/lib/mysql5/bin:/this-is-a-test 

Allerdings klappt es nicht. Wenn ich rufe:

$hey = shell_exec('env'." 2>&1"); var_dump($hey); 

Ich bekomme:

... PATH=/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/usr/X11/bin:/opt/local/bin 

Kann mir jemand helfen? Ich bin auf Mac mit Macports für meine Entwicklungsumgebung. Danke!

Antwort

2

Das scheint mir sehr seltsam, dass Sie versuchen, den PATH innerhalb von Apache zu setzen. Stattdessen sollten Sie den Pfad für Ihr System festlegen. Es gibt mehrere Möglichkeiten, dies in Mac OS X zu tun:

Anwenderspezifische
Für einen einzelnen Benutzer können Sie bearbeiten ~/.profile und fügen:

export PATH="$PATH":/opt/local/lib/mysql5/bin:/this-is-a-test 

Oder Sie erstellen/editiere ~/.MacOSX/environment.plist und definiere den PATH auf diese Weise.

Systemweite
Bei neueren Versionen von Mac OS X gibt es eine Datei mit dem Namen „/ etc/Pfade“ und es gibt einen Ordner mit dem Namen „/etc/paths.d“, die es Ihnen ermöglichen, die zu verlängern Standardpfade Im Grunde würden Sie eine Datei in "/etc/paths.d" erstellen, die alle Pfade auflistet, die Sie den Standardpfaden hinzufügen möchten. Bei Versionen von Mac OS X, die dies nicht unterstützen (Sie können feststellen, ob "/ usr/libexec/path_helper" existiert), können Sie die Standardpfade für alle Benutzer bearbeiten, indem Sie die obige export-Anweisung in/etc/profile ablegen.

+0

Michael, danke für die Antwort. Sowohl meine .profile- als auch .bash_login-Dateien haben die angegebenen Pfade, aber PHP, das auf Apache ausgeführt wird, erkennt sie nicht. Ich habe gerade die Option /etc/paths.d/ ausprobiert, aber das schien auch nicht zu funktionieren. Muss ich die Maschine neu starten, damit sie wirksam wird? Ich habe Apache neu gestartet - nichts. – TylerNZ

+0

@TylerNZ, müssen Sie das Terminal schließen und dann erneut öffnen und dann Apache innerhalb Ihrer Umgebung neu starten, in der diese Variablen definiert sind. –

+0

ausprobiert, immer noch nichts ... Ich denke, etwas Besonderes muss für Apache oder der Benutzer root getan werden, der Apache läuft als? – TylerNZ

8

für Ubuntu-Server, in/etc/apache2/envvars, für CentOS-Server in/etc/sysconfig/httpd, hinzuzufügen:

export PATH=<your php cli path> 

und starten Apache

0

Diese Frage ist alt, aber wenn es anderen hilft, wenn Sie Windows mit mod_fcgid verwenden, überprüfen Sie, ob Sie die FcgidInitialEnv in Ihrem httpd.conf festgelegt haben, und entfernen Sie es, um den Systempfad zu übernehmen.

Verwandte Themen