webentwicklung-frage-antwort-db.com.de

$ PATH-Umgebungsvariable für Apache2 auf dem Mac

Ich versuche, Apache/PHP dazu zu bringen, den Pfad zu meinem Git zu erkennen. Ich habe in allen Ecken des Webs recherchiert und gesucht und kann nicht herausfinden, wie das geht. Grundsätzlich ändert sich der Pfad für Apache Environment nicht von /usr/bin:/bin:/usr/sbin:/sbin, egal was ich versuche, wenn ich echo phpinfo(); ausführe. Und wenn ich system('echo $PATH'); in PHP laufen lasse, liest es das selbe.

System Information:

  • Mac OSX (Lion)
  • Apache 2 (läuft als _www)
  • PHP 5.3.6

Folgendes habe ich bisher ausprobiert:

  • / etc/profile
  • ~/.bash_profile
  • ~/.profile
  • / etc/path
  • /etc/path.d/{NEW_FILE}

Nichts, was ich bisher ausprobiert habe, hat die Variable $PATH geändert. Irgendwelche Ideen?

LÖSUNG

Hier ist also die endgültige Lösung. Ich habe die

/System/Library/LaunchDaemons/org.Apache.httpd.plist

und fügte hinzu

<key>EnvironmentVariables</key>
<dict>
    <key>PATH</key>
    <string>/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/git/bin</string>
</dict>
28
Chuck Burgess

Sie können die Umgebungsvariable PATH in /System/Library/LaunchDaemons/org.Apache.httpd.plist festlegen.

Mehr in der docs .

32
Monolo

Haben Sie die Umgebungsvariable PATH des Benutzers '_www' aktualisiert? Apache liest Umgebungsvariablen vom Benutzer selbst aus. Oder Sie haben Apache offenbar nicht neu gestartet, nachdem Sie die Umgebungsvariable PATH aktualisiert haben.

Und wenn Sie Umgebungsvariablen in PHP ändern möchten, können getenv () und putenv () eine bessere Wahl sein.

4
lqez

Wichtiger Hinweis für El Capitan (Entschuldigung für die neue Antwort - Ich habe nicht genug Repräsentanten, um Kommentare abzugeben)

Unter OSX 10.11 ist der Ordner/System/Library geschützt, sodass die Dateien nicht bearbeitet werden können.

Du musst:

  • Neustart im Wiederherstellungsmodus (halten Sie CMD + r nach dem Startsound gedrückt)
  • Gehen Sie im Wiederherstellungsmodus zu Dienstprogramme> Terminal
  • Ausführen: csrutil disable
  • Starten Sie OSX erneut - Sie sollten nun in der Lage sein, die Dateien zu ändern
  • Sobald Sie fertig sind, kehren Sie in den Wiederherstellungsmodus zurück und führen Sie csrutil enable aus.

Hoffentlich hilft das

3
Kiers_M

Ich habe dieses Gist erstellt, das mir anhand der obigen Informationen geholfen hat:

https://Gist.github.com/srayhunter/5208619

Mein Problem war, dass PHP kein Programm fand, das wir unter/usr/local/bin installiert hatten. Sobald wir das oben Genannte getan haben, hat alles geklappt und Nice auf Mac OSX gespielt.

1
Ray Hunter

Ein ähnliches Problem wie bei der Installation von Derby. Die Art und Weise, wie ich es gelöst habe, war das Öffnen von TextEdit. Wählen Sie Datei> An dieser Stelle öffnen und drücken Sie Umschalt + Befehl +. Auf diese Weise können Sie alle Dokumente anzeigen. Gehen Sie in das Benutzerverzeichnis und suchen Sie nach einer Datei mit dem Namen ".profile". Öffnen Sie es und fügen Sie die Zeile export VARIABLE = Value hinzu, zum Beispiel:

export DERBY_HOME =/opt/local/share/Java/derby /

Speichern Sie das Dokument und starten Sie Ihr Terminal neu, um festzustellen, ob die Änderungen wirksam wurden.

0
Marek

für Ubuntu-Server in/etc/Apache2/envvars, für Centos-Server in/etc/sysconfig/httpd:

export PATH=<your php cli path>

und starte Apache neu

0
diyism