我已经在开发中设置了Passenger(Mac OS X),它可以完美运行.唯一的问题出现了:现在我安装了自定义GEM_HOME
路径和ImageMagick二进制文件"/usr/local"
.我可以把它们放在一个获取源代码的shell rc文件中,这解决了从控制台生成的进程的环境变量; 但乘客怎么样?以这种方式运行时,相同的应用程序无法找到我的宝石.
我知道两个解决方案.第一个(此处记录)与manveru的基本相同 - 直接在代码中设置ENV变量.
第二种是围绕Passenger使用的Ruby解释器创建一个包装器,并在此处记录(查找passenger_with_ruby).要点是你创建(并在Apache配置中指向PassengerRuby)/ usr/bin/ruby_with_env,这是一个可执行文件,包括:
#!/bin/bash export ENV_VAR=value /usr/bin/ruby $*
两者都有效; 我认为,前一种做法不那么苛刻.