$Variable d'environnement PATH pour apache2 sur mac
J'essaie d'obtenir apache/php pour reconnaître le chemin d'accès à mon git. J'ai fait des recherches et de la recherche dans tous les coins du web et ne peut pas trouver comment faire. En gros, peu importe ce que j'essaie, quand je lance echo phpinfo();
la Apache Environment
chemin ne change pas de /usr/bin:/bin:/usr/sbin:/sbin
. Et quand je lance system('echo $PATH');
en PHP, il lit le même.
Système D'Information:
- Mac OS x (Lion)
- Apache 2 (comme _www)
- PHP 5.3.6
Voici ce que j'ai essayé de l'édition de ce jour:
- /etc/profile
- ~/.bash_profile
- ~/.profil
- /etc/chemin
- /etc/chemin d'accès.d/{NEW_FILE}
Rien j'ai essayé jusqu'à présent a changé la $PATH
variable. Des idées?
SOLUTION
Voici donc la solution finale. J'ai édité le
/System/Library/LaunchDaemons/org.apache.httpd.plist
et a ajouté
<key>EnvironmentVariables</key>
<dict>
<key>PATH</key>
<string>/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/git/bin</string>
</dict>
- Avez-vous essayé de l'éteindre et de l'allumer à nouveau? (Sérieusement, avez-vous redémarré Apache depuis que je fais cela?)
- Très bonne suggestion, mais oui.
- J'ai eu des problèmes à l'exécution de PHP
exec()
où l'Apache shell avait une autre VOIE que mon Mac shell. Cela a résolu mon problème. - J'ai eu un problème similaire avec PHP en utilisant la Imagick module. Il ne serait pas ouvrir un fichier PDF car (sous le capot) Imagick utilise Ghostscript est
gs
binaire, qui était sur mon système, mais pas dans le $PATH. L'ajout de la ci-dessus pour la .fichier plist et le redémarrage d'apache résolu. - Cela a fonctionné pour moi. Cependant, pour une raison quelconque après que j'ai installé la Sierra, mes modifications pour org.apache.httpd.plist disparu. Je les ai mis en arrière et redémarré Apache pour qu'il fonctionne à nouveau.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez définir la variable d'environnement PATH
/System/Library/LaunchDaemons/org.apache.httpd.plist
.Plus dans le docs.
sudo apachectl restart
et il charge les nouveaux paramètres de CHEMIN deorg.apache.https.plist
très bien dans ce cas.Avez-vous de mettre à jour la variable d'environnement PATH de l'utilisateur '_www'? Apache va lire les variables d'environnement de l'utilisateur gère lui-même. Ou, il semble que vous n'avez pas de redémarrer apache après la mise à jour la variable d'environnement PATH.
Et si vous voulez modifier une variable d'environnement en PHP, la fonction getenv() et putenv() peut être un meilleur choix.
putenv : http://www.php.net/manual/en/function.putenv.php
$path = getenv ("PATH");
putenv( "PATH=$path:/new_path_that_you_want_to_add" );
putenv()
est seulement une bonne solution si vous modifiez votre code PHP directement. Ce n'est pas une bonne solution permanente si vous avez d'ajouter que, pour CHAQUE script php / app que vous écrivez.Note importante pour El Capitan (mes Excuses pour la réponse - je n'ai pas assez de Rep pour le commentaire)
Sur OS x 10.11, le /System/Library dossier est protégé, de sorte que les fichiers ne peuvent pas être modifiés.
Vous avez besoin de:
csrutil disable
csrutil enable
Espère que ça aide
J'ai créé ce résumé qui m'a aidée à sortir de l'information ci-dessus:
https://gist.github.com/srayhunter/5208619
Mon problème est que PHP n'a pas été de trouver un programme que nous avions installé sous /usr/local/bin. Une fois que nous avons fait au-dessus de tout travaillé et joué de nice sur mac osx.
pour ubuntu server dans /etc/apache2/envvars,
pour centos serveur dans /etc/sysconfig/httpd,
à ajouter:
et redémarrer apache
Un problème similaire à ce que j'ai eu l'installation de Derby. La façon dont je l'ai résolu, c'était par l'ouverture de TextEdit. Sélectionnez le Fichier > Ouvrir à ce stade, appuyez sur Maj + Commande + . , ce qui vous permettra de visualiser tous les documents. Tête de de l'annuaire des utilisateurs et de rechercher un fichier appelé ".profil" . L'ouvrir et ajouter l'export VARIABLE= Valeur de la ligne par exemple:
exportation DERBY_HOME=/opt/local/share/java/derby/
Enregistrer le document et redémarrez votre terminal pour voir si les modifications sont entrées en vigueur.