我已经设置的乘客在发展(Mac OS X)和它完美的作品。唯一的问题来后:现在我有一个定义 GEM_HOME 路径和ImageMagick二进制文件的安装在 "/usr/local".我可以把它们放在一个壳rc文件,获得采购的,这解决了环境变量的进程产生了从控制台;但是,关于乘客?相同的应用程序无法找到我的宝石在运行这个方式。

有帮助吗?

解决方案

我知道的两个解决方案。第一(记录 在这里,)是基本相同的manveru的设ENV可变直接在你的代码。

第二是创建一个包装的红宝石的解释,乘客的使用,并被记录了 在这里, (寻找passenger_with_ruby).其主旨是创建(和点PassengerRuby在Apache config)/usr/bin/ruby_with_env、可执行的文件组成:

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

这两个工作;前一种方法是一个小小予以解决了,我想。

其他提示

在你做任何需要(特别是在需要把)你可以这样做:

ENV['GEM_HOME'] = '/foo'

这将改变环境变量内的这一进程。

我发现如果你有根特权上的计算机,然后你可以设定的必要环境变量"envvars"文件和apachectl将执行这一文件开始之前Apache.

envvars通常位于同一目录apachectl位-on Mac OS X它是位于/usr/sbin.如果你找不到它然后看看在来源apachectl脚本。

后改变envvars文件重新启动Apache与"apachectl-k重新启动".

我遇到这个问题。它的 出现 该乘客不会传递的价值观使用 SetEnv apache directive-这是不幸的。

也许可以设置环境中的变量的环境。rb或启动。rb(假设你在谈论一个轨程序;我不熟悉架但据推测它具有类似功能)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top