Como posso configurar variáveis ambientais para www-data?

2

Eu fiz uma pergunta no dba.se sobre como dar ao meu script Perl CGI a senha necessária para acessar o banco de dados MySQL, ele precisa consultar. Eu recebi apenas uma resposta, mas uma delas sugere que eu salve a senha como uma variável ambiental.

OK, apache2 é executado como www-data e, de acordo com /etc/passwd , o usuário $HOME é /var/www :

$ grep www /etc/passwd
www-data:x:33:33:www-data:/var/www:/bin/sh

Eu tentei criar /var/www/.profile com essa linha

export db_pass="password"

E então meu script Perl imprimiu $ENV{"db_pass"} , mas isso falhou, a variável está vazia. Eu verifiquei com $ENV{PATH} e isso foi impresso como esperado.

Então, como posso definir uma variável ambiental arbitrária para esse usuário?

O servidor é um Ubuntu Server rodando em uma VM (que roda no Windows, não é minha escolha, não pergunte).

$ apache2 -version
Server version: Apache/2.2.14 (Ubuntu)
Server built:   Feb 14 2012 16:42:25
    
por terdon 19.03.2014 / 21:12

1 resposta

7

Você usa a manipulação de variáveis de ambiente do Apache.

Então, por exemplo:

SetEnv db_pass swordfish

Isso pode ser feito no httpd.conf ou no .htaccess. Você também pode definir env envs em Regras de reconfiguração assim:

RewriteRule someurl - [E=dbpass:swordfish]
    
por 19.03.2014 / 21:23