Passenger, Capistrano e environment variables
Capistrano
Para usar env vars com Capistrano, abra o arquivo /etc/ssh/sshd_config
e adicione a seguinte linha:
PermitUserEnvironment yes
Não se esqueça de reiniciar o serviço:
$ sudo service ssh restart
Agora é só coloar suas variáveis no arquivo ~/.ssh/environment
do usuário deployer (sem o export antes)!
RVM
Se você usa RVM, crie o arquivo /usr/local/my_ruby_wrapper_script
com o conteúdo:
#!/bin/sh
export MYSQL_WEB_PROD_DB="db"
export MYSQL_WEB_PROD_USR_NAME="usuario"
export MYSQL_WEB_PROD_USR_PASS="senha"
exec "/usr/local/rvm/rubies/ruby-1.9.3-p392/bin/ruby" "$@"
Troque o parâmetro do exec para o caminho do seu ruby.
Dê as permissões para o arquivo:
$ sudo chmod +x /usr/local/my_ruby_wrapper_script
E troque altere a linha do nginx.conf
(ou da sua config do Apache) para:
passenger_ruby /usr/local/my_ruby_wrapper_script;
Reinicie o Nginx e Passenger, e pronto!