web-dev-qa-db-fra.com

Variable d'environnement $ PATH pour Apache2 sur mac

J'essaie de faire en sorte qu'Apache/php reconnaisse le chemin d'accès à mon git. Je fais des recherches et je regarde dans tous les coins du Web et je ne trouve pas comment faire. Peu importe ce que j'essaie, lorsque je lance echo phpinfo();, le chemin Apache Environment ne change pas à partir de /usr/bin:/bin:/usr/sbin:/sbin. Et quand je lance system('echo $PATH'); en PHP, il se lit de la même manière.

Informations système:

  • Mac OSX (Lion)
  • Apache 2 (en cours d'exécution sous le nom _www)
  • PHP 5.3.6

Voici ce que j'ai essayé de modifier jusqu'à présent:

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

Rien de ce que j'ai essayé jusqu'à présent n'a modifié la variable $PATH. Des idées?

SOLUTION

Alors voici la solution finale. J'ai édité le

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

et ajouté

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

Vous pouvez définir la variable d’environnement PATH dans /System/Library/LaunchDaemons/org.Apache.httpd.plist.

Plus dans la docs .

32
Monolo

Avez-vous mis à jour la variable d'environnement PATH de l'utilisateur '_www'? Apache lira les variables d'environnement à partir de l'utilisateur qui s'exécute Ou bien, il semble que vous n’ayez pas redémarré Apache après la mise à jour de la variable d’environnement PATH.

Et si vous voulez modifier la variable d’environnement en PHP, getenv () et putenv () peuvent être un meilleur choix.

4
lqez

Note importante pour El Capitan (excuses pour la nouvelle réponse - je n'ai pas assez de représentant pour commenter)

Sous OSX 10.11, le dossier/System/Library est protégé. Par conséquent, les fichiers ne peuvent pas être modifiés.

Tu dois:

  • Redémarrez en mode de récupération (maintenez CMD + r après le son de démarrage)
  • Une fois en mode de récupération, sélectionnez Utilitaires> Terminal.
  • Exécuter: csrutil disable
  • Redémarrez sous OSX - vous devriez maintenant pouvoir changer les fichiers
  • Une fois cela fait, retournez en mode de récupération et lancez csrutil enable

J'espère que cela pourra aider

3
Kiers_M

J'ai créé ce Gist qui m'a aidé à partir des informations ci-dessus:

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

Mon problème était que PHP ne trouvait pas un programme que nous avions installé sous/usr/local/bin. Une fois que nous avons fait ce qui précède, tout a fonctionné et joué à Nice sur mac osx.

1
Ray Hunter

Un problème similaire à ce que je devais installer Derby. J'ai résolu le problème en ouvrant TextEdit. Sélectionnez Fichier> Ouvrir à ce stade, appuyez sur Maj + Commande +. , cela vous permettra de voir tous les documents. Allez dans le répertoire utilisateur et recherchez un fichier appelé ".profile". Ouvrez-le et ajoutez la ligne d'exportation VARIABLE = Value, par exemple:

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

Enregistrez le document et redémarrez votre terminal pour voir si les modifications sont entrées en vigueur.

0
Marek

pour le serveur Ubuntu, dans/etc/Apache2/envvars, pour le serveur Centos, dans/etc/sysconfig/httpd, pour ajouter:

export PATH=<your php cli path>

et redémarrez Apache

0
diyism