新手问题 通过 passenger 安装 nginx 失败

assyer · July 03, 2013 · Last by assyer replied at July 04, 2013 · 4391 hits

期间重装了 rvm、更换了 ruby 版本,依然安装失败。这里是 log: https://gist.github.com/gonjay/5916876

PS:使用 brew 来安装 nginx 是可以的,问题是没办法启动 passenger

刚刚发现 Compiling Phusion Passenger...的时候出错了,应该是这个

Tasks: TOP => nginx_without_native_support => /Users/mac/.passenger/standalone/4.0.5/support-x86_64-macosx-10.9/PassengerHelperAgent => /Users/mac/.passenger/standalone/4.0.5/support-x86_64-macosx-10.9/libboost_oxt.a => /Users/mac/.passenger/standalone/4.0.5/support-x86_64-macosx-10.9/libboost_oxt/oxt/implementation.o

好像这里都不推荐用 passenger……

#1 楼 @imlcl 那用什么好?

两三年不用 Passeger 了,现在主流都在用 nginx + unicorn / puma 了。

brew 里面的标准 nginx 应该是不直接支持 passenger 的,应该装 passenger 自己提供一个特别的修改过的 nginx 版本(安装时自动下载编译)以支持其扩展功能。

不过看你的系统是 10.9,估计是因为目前版本的 passenger 不支持 clang 5.0 的缘故,去 passenger 的网站看看或者直接 clone 一份 passenger 的源码,从 master 上自己 build 一个 gem 出来装一下试试看?

#3 楼 @lgn21st #2 楼 @assyer 10.9,官方的 command line tools 还没发布,可以把版本号改为 10.8,骗系统装 10.8 的 command line tools,再改为 10.9,这样应该能解决编译问题。 我之前一直是 apache + passenger,不过是 debian 环境的。现在都换用 puma 了。应该比较多人推荐成熟的 unicorn 或 rainbows 吧

#4 楼 @imlcl 我以为 10.9 没有单独的 command line tools,应该是默认整合到了 Xcode 5.0 中了吧。

#3 楼 @lgn21st 我去 github 上面 clone 了一份 passenger 的代码,然后gem build passenger.gemspec得到了我编译的 passenger-4.0.5.gem,然后gem install ./passenger-4.0.5.gem也成功了,接着尝试passenger start -p 3001,这个时候提示Installing Phusion Passenger Standalone...然后就 rake aborted! 了,爆出来的栈是: Tasks: TOP => nginx_without_native_support => /Users/mac/.passenger/standalone/4.0.5/support-x86_64-macosx-10.9/agents/PassengerHelperAgent => /Users/mac/.passenger/standalone/4.0.5/support-x86_64-macosx-10.9/common/libpassenger_common/Logging.o

#6 楼 @lgn21st 额,看样子还是去折腾独角兽和彩虹好了,过客终将成为过客嗯~

#3 楼 @lgn21st 我安装 passenger 都是手动指定 nginx 的 src 目录的(为官方 stable 版),具体参数不记得了,可以看看 passenger-install-nginx-module --help。如果没记错的话自动下载的 source 也是 nginx 官方的,只是版本有点古老。

#7 楼 @assyer 可以试试别自己编译 passenger 的 gem,也可以按我说的试试官方最新 stable 版的 nginx,我前些时候还帮人在 ubuntu 12.04 上编译过 passenger 4.0.5+nginx 的最新 stable 版,并没有出现问题。

不过原来 3.0.x 的时候有一个版本倒是出过问题,喂狗了好久发现要修改 nginx 某几行源码的顺序…

我猜 LZ 应该不会是在拿 Mac 当生产环境使用。如果只是为了满足开发环境需要,直接用 Unicorn / Puma 就可以 (这两个都是 HTTP server, 可以 i 与浏览器直接通信). 没必要折腾 nginx.

#10 楼 @5long 主要为未来生产部署做些积累,学校给我们砸钱创业,也不想太浪费了,技术什么的还是得靠自己

#6 楼 @lgn21st 我也装了 xcode 5.0 DP 了,可能还是没有。。。直接我装了 10.8 的 command line tools...可能等正式版出来就会有吧

#11 楼 @assyer 为生产部署做准备的话,建议在虚拟机里装上和生产环境一样的系统,然后在虚拟机里折腾。毕竟现在在 Mac 上积累的知识到了生产环境里未必用得上。

#12 楼 @imlcl 我安装 xcode 5.0 DP2 之前,先卸载了之前的 xcode,装好后在 terminal 中就已经有了 clang 5.0 了,可能我的其他编译套件我大多是通过 brew 安装的。

#13 楼 @5long 感谢您的建议~ #14 楼 @lgn21st 多亏您的帮助少走不少弯路呢

You need to Sign in before reply, if you don't have an account, please Sign up first.