环境变量值在database.yml中丢失反斜杠

时间:2018-03-15 18:46:17

标签: apache environment-variables ruby-on-rails-5 rhel

在RHEL 7.2服务器上,我在/ etc / environment中设置了与此类似的环境变量:

DB_LOGIN='DOMAIN\username'
DB_PASSWORD='password'

然后在/etc/systemd/system/httpd.service.d/override.conf中将该文件引用为EnvironmentFile。重启服务器后,我可以看到env。变种。设置正确(通过运行env命令)。在我的Rails环境中,根据我从Failing to access environment variables within `database.yml` file学到的内容,我在database.yml文件中有以下内容:

    default: &default
      adapter: sqlserver
      ...
      username: <%= ENV['DB_LOGIN'] %>
      password: <%= ENV['DB_PASSWORD'] %>

执行rake任务时,此设置正常。另外值得注意的是,当我对database.yml运行erb时,它看起来是正确的(反斜杠存在)。但是在我的Apache / Passenger配置(httpd-2.4.6-40.el7_2.4.x86_64和Phusion Passenger 5.1.7)中,用户名丢失了反斜杠(值为DOMAINusername)。

我已将env var更改为两个反斜杠(DOMAIN \\ username),然后它在Apache / Passenger配置中正常工作,但由于用户名中的双反斜杠,我的rake任务失败。

在这两种情况下,是否有办法让环境变量值包含反斜杠?

我真的不想使用像费加罗或dotenv这样的宝石/插件。

感谢任何指导!

0 个答案:

没有答案