乘客NGINX模块失败

mga*_*han 8 ruby-on-rails passenger nginx

有一次,我的系统运行正常,NGINX,Rails和Passenger.

昨天我做了一个全新的Passenger安装,现在passenger-install-nginx-module失败了.

    /Users/mgaughan/.rbenv/versions/1.9.3-p125/lib/ruby/gems/1.9.1/gems/passenger-3.0.13/ext/nginx/../common/libpassenger_common.a /Users/mgaughan/.rbenv/versions/1.9.3-p125/lib/ruby/gems/1.9.1/gems/passenger-3.0.13/ext/nginx/../common/libboost_oxt.a -lstdc++ -       lpthread -lm -lpcre -lssl -lcrypto -lz
Undefined symbols for architecture x86_64:
 "_pcre_free_study", referenced from:
  _ngx_pcre_free_studies in ngx_regex.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
make[1]: *** [objs/nginx] Error 1
make: *** [build] Error 2
Run Code Online (Sandbox Code Playgroud)

昨天在ServerFault上发布了这个确切的问题,但我认为这更有可能在这里得到解答(如果这是一个问题,我道歉).

https://serverfault.com/questions/399304/cannot-install-phusion-passenger-3-0-13-with-nginx-1-2-1

谢谢你的帮助.

mga*_*han 6

我看到NGINX有一张关闭的,但解决方案对我不起作用.

但是,通过运行自定义安装,我确实通过Passenger获得了NGINX并再次运行.这显然是版本2及更高版本的兼容性问题.

首先,我只是拉下了NGINX源(1.0.15).

在我的/ usr/local中

wget http://www.nginx.org/download/nginx-1.0.15.tar.gz nginx_source
Run Code Online (Sandbox Code Playgroud)

解压

 tar -xvz nginx-1.0.15.tar.gz
Run Code Online (Sandbox Code Playgroud)

然后运行乘客安装.选择选项2(自定义安装)

sudo passenger-install-nginx-module
Run Code Online (Sandbox Code Playgroud)

它会提示输入源的位置/usr/local/nginx-1.0.15以及安装位置/usr/local/nginx(在我的例子中).

从那里一切正常,任何人都知道NGINX 2的任何真正修复,请让我知道.


Tia*_*kui 6

brew install pcre
Run Code Online (Sandbox Code Playgroud)

当配置步骤也添加

--with-pcre --with-ipv6 --with-ld-opt=-L/usr/local/lib
Run Code Online (Sandbox Code Playgroud)

它也使用-ld-opt作为自制软件,它并不完美.

也可以看看http://wiki.nginx.org/InstallOptions