有一次,我的系统上的所有内容都运行良好,包括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
昨天在ServerFault上发布了这个确切的问题,但我认为这里更有可能得到解答(如果这是一个问题,我道歉)。
https://serverfault.com/questions/399304/cannot-install-phusion-passenger-3-0-13-with-nginx-1-2-1
感谢您的帮助。
答案 0 :(得分:6)
我看到NGINX已经关闭了ticket,但解决方案对我不起作用。
但是,我确实通过运行自定义安装让NGINX再次运行。这显然是版本2及更高版本的兼容性问题。首先我拉下了NGINX源(1.0.15)。
在我的/ usr / local
中wget http://www.nginx.org/download/nginx-1.0.15.tar.gz nginx_source
解压
tar -xvz nginx-1.0.15.tar.gz
然后运行乘客安装。选择选项2(自定义安装)
sudo passenger-install-nginx-module
它提示输入源/usr/local/nginx-1.0.15
以及您希望它安装在哪里/usr/local/nginx
(在我的情况下)。
从那里一切正常,任何人都知道任何NGINX 2的固定版本,请告诉我。
答案 1 :(得分:6)
brew install pcre
当配置步骤也添加
--with-pcre --with-ipv6 --with-ld-opt=-L/usr/local/lib
它也使用-ld-opt作为自制程序,它并不完美。