关于Rails上的ruby:设置Phusion乘客应用程序的环境变量

关于Rails上的ruby:设置Phusion乘客应用程序的环境变量

Setting environment variables for Phusion Passenger applications

我已经在开发中设置了Passenger(Mac OS X),它可以完美运行。唯一的问题稍后出现:现在我有一个自定义的GEM_HOME路径,并且在"/usr/local"中安装了ImageMagick二进制文件。我可以将它们放在获取源代码的外壳rc文件之一中,这可以解决从控制台生成的进程的环境变量。但是乘客呢?以这种方式运行时,同一应用程序找不到我的ruby。


我知道两种解决方案。第一个(此处记录)与manveru'sa€"完全相同,直接在您的代码中设置ENV变量。

第二个方法是围绕Passenger使用的Ruby解释器创建一个package,并在此处进行记录(查找passenger_with_ruby)。要点是您创建/ usr / bin / ruby??_with_env(并在Apache配置中将PassengerRuby指向),该可执行文件由以下内容组成:

1
2
3
#!/bin/bash
export ENV_VAR=value
/usr/bin/ruby $*

两项工作;我认为,前一种方法不太强硬。


我发现,如果您在计算机上具有root特权,则可以在" envvars"文件中设置必要的环境变量,并且apachectl将在启动Apache之前执行此文件。

envvars通常位于apachectl所在的目录中-在Mac OS X上,它位于/ usr / sbin中。如果找不到,请查看apachectl脚本的源代码。

更改envvars文件后,使用" apachectl -k restart"重新启动Apache。


在您进行任何要求之前(尤其是在需要ruby之前),您可以执行以下操作:

1
ENV['GEM_HOME'] = '/foo'

这将在此过程中更改环境变量。


我也遇到了这个问题。看来,Passenger没有通过使用SetEnv apache指令设置的值-不幸的是。

也许可以在您的environment.rb或boot.rb中设置环境变量(假设您在谈论Rails应用;我对Rack不熟悉,但大概它具有类似的功能)


推荐阅读

    linux运行图形界命令?

    linux运行图形界命令?,系统,密码,地址,电脑,图形界面,地方,工具,界面,终端,

    linux怎样运行命令?

    linux怎样运行命令?,系统,工作,信息,基础,地址,命令,目录,工具,密码,一致,Lin

    linux设置命令行长度?

    linux设置命令行长度?,系统,工作,信息,地址,命令,工具,异常,管理,目录,文件,l

    linux编译完运行命令?

    linux编译完运行命令?,系统,代码,环境,工具,信息,命令,文件,程序,终端,编辑,

    linux命令程序运行?

    linux命令程序运行?,状态,系统,服务,情况,命令,进程,软件,数据,发行,时间,Lin

    linux设置代替命令?

    linux设置代替命令?,系统,地址,网络,工作,软件,工具,服务,信息,命令,别名,lin

    linux命令行显示路径?

    linux命令行显示路径?,系统,数据,信息,命令,工作,时间,标准,文件,目录,名称,l

    linux命令设置时区?

    linux命令设置时区?,时间,系统,国家,大陆,命令,时区,时钟,日期,指令,时分,lin

    linux运行脚本命令?

    linux运行脚本命令?,系统,代码,服务,文件,工具,平台,网站,脚本,命令,方法,Lin

    linux设置命令限制?

    linux设置命令限制?,数字,情况,信息,管理,系统,最新,在线,设备,第一,发行,Lin

    linux命令后加运行?

    linux命令后加运行?,状态,暂停,工具,单位,进程,环境,网络,系统,权威,第一,mv

    linux设置日志命令行?

    linux设置日志命令行?,异常,系统,实时,日志,管理,信息,对比,项目,名称,情况,L

    ssh运行linux命令?

    ssh运行linux命令?,地址,服务,系统,软件,工具,电脑,网络,密码,名称,命令,在li

    linux运行多个命令?

    linux运行多个命令?,环境,软件,系统,工作,服务,连续,命令,指令,分号,冲突,lin

    linux命令行设置网卡?

    linux命令行设置网卡?,系统,地址,信息,网络,工具,电脑,工作,名称,设备,网卡,l

    linux运行命令查看?

    linux运行命令查看?,系统,信息,状态,命令,名称,情况,地址,软件,进程,第一,lin

    linux命令优先级设置?

    linux命令优先级设置?,系统,时间,实时,策略,优先级,分时,管理,周期性,进程,

    linux设置ip命令?

    linux设置ip命令?,地址,系统,密码,设备,命令,服务,工具,网络,网卡,计算机,在L

    linux中命令运行软件?

    linux中命令运行软件?,软件,系统,名称,工具,电脑,位置,环境,中心,在线,初级,

    linux设置命令是什么?

    linux设置命令是什么?,系统,工作,信息,名称,地址,命令,在线,基础,标准,工具,l