Como outros já disseram, você faz isso usando o arquivo de variável de ambiente. Fornecerei mais detalhes nesta resposta e mostrarei a prova de que ela funciona.
Este arquivo de variável de ambiente deve ser fonte de apachectl
. Na minha caixa Ubuntu, este arquivo está em /etc/apache2/envvars
. No RedHat, isso é em /etc/sysconfig/httpd
. No FreeBSD, isso é definido em /etc/rc.conf
(eu acho). Como alternativa, você também pode definir essas informações em um script de inicialização ( /etc/init.d/httpd
ou apachectl
, etc.). No entanto, acho que é melhor deixar os scripts de inicialização sozinhos, se possível. O melhor lugar está no script de variáveis de ambiente designado.
-
Verifique a localização deste arquivo envvars. No Ubuntu,
/etc/init.d/apache2ctl
mostra que ele origina/etc/apache2/envvars
:# the path to the environment variable file test -z "$APACHE_ENVVARS" && APACHE_ENVVARS='/etc/apache2/envvars' # pick up any necessary environment variables if test -f $APACHE_ENVVARS; then . $APACHE_ENVVARS fi
-
Para visualizar as variáveis, estou usando um script Perl printenv.cgi e está disponível no link . O script mostra o seguinte PATH:
PATH = /usr/local/bin:/usr/bin:/bin
-
Para alterar essas variáveis, edito o arquivo envvars:
$ sudo vim /etc/apache2/envvars
-
Modifique seu PATH neste arquivo. Neste exemplo, adicionarei
/opt/local/bin
ao meu PATH. Em alguns casos, talvez seja necessário usarexport PATH
e não apenasPATH
:export PATH=$PATH:/opt/local/bin
-
Reinicie o apache
$ sudo service apache2 restart * Restarting web server apache2 ... waiting ...done. $
-
Veja os resultados no link , que agora mostra que o PATH agora contém um novo elemento:
PATH = /usr/local/bin:/usr/bin:/bin:/opt/local/bin
Se o acima não funcionar, algo incomum pode estar acontecendo. Talvez o seu script esteja ignorando ou substituindo o PATH.