2013-01-17 6 views
0

Sous OS X Snow Leopard, j'exécute Apache par défaut avec perlbrew. Mon chemin pointe vers le perlbrew perl, donc je m'attendais à /usr/bin/env perl à faire la même chose, ce qu'il fait à partir de bash, mais pas via des scripts cgi, qui semblent utiliser le système perl.OS X, environnement CGI Perl

Comment puis-je utiliser Apache perlbrew perl?

Mise à jour

répond à cette question sur StackOverflow: $PATH environment variable for apache2 on mac

Intéressant que les gens PHP considèrent comme une question valable, mais les gens ne le font pas Perl. Il aurait été utile que les gens de Perl prennent quelques secondes pour expliquer pourquoi ils pensent que la question ne se rapporte pas à la programmation et aux questions décrites dans la FAQ.

+0

Je pensais que les lignes Shebang des scripts CGI d'Apache se rapportaient au développement logiciel tel que défini dans la FAQ. – LeeGee

Répondre

3

Lorsque vous exécutez /usr/bin/env perl, il trouve perl quelque part dans votre variable d'environnement $PATH ... qui est situé dans l'un de vos dotfiles (probablement .bash_profile ou .bashrc). Lorsque Apache démarre, il démarre généralement par launchd et ne reçoit aucun service de configuration d'environnement à partir de vos scripts d'initialisation de shell. Vous devez modifier le script qui démarre Apache pour ajouter les répertoires nécessaires à $PATH ou modifier vos scripts CGI pour appeler directement le binaire perl approprié (en utilisant #!/path/to/my/perl au lieu de #!/usr/bin/env perl).

+0

Cela se produit lorsque Apache est lancé en tant que '/ usr/sbin/httpd -k start' depuis mon shell de développement. Je ne peux pas utiliser un chemin explicite, car la machine en direct et les autres configurations de développeurs sont actuellement des quantités inconnues. – LeeGee

+1

Vous pouvez utiliser les directives SetEnv dans votre configuration Apache pour définir '$ PATH'. – larsks

+0

Pourrait faire, mais je veux toujours savoir pourquoi cela se produit. – LeeGee