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/apache2ctlmostra 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/binao meu PATH. Em alguns casos, talvez seja necessário usarexport PATHe 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.