在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这样的宝石/插件。
感谢任何指导!