我正在设置一个新服务器(我的第一个!)。
我已安装Passenger并使用passenger-install-nginx-module
安装nginx。我随后进行了设置,一切正常。
然而,我的应用程序是Rails 3.1,因此使用资产管道,我没有意识到我需要有PCRE库
nginx: [emerg] using regex "^/(assets)/" requires PCRE library in /opt/nginx/conf/nginx.conf:89
它需要它以便nginx.conf
中的以下内容正常工作:
location ~ ^/(assets)/ {
root /path/to/public;
gzip_static on; # to serve pre-gzipped version
expires max;
add_header Cache-Control public;
}
我通过
安装了PCRE sudo apt-get install libpcre3 libpcre3-dev
现在我已经添加了这个,我相信有必要重新编译nginx。
我已经看过一些博客帖子/ nginx有关如何重新编译它的帮助,但我真的是一个n00b。有人能指点我一步一步的指示吗?
谢谢!
答案 0 :(得分:1)
如果我没记错的话,你只需要重新编译nginx。因为您在安装PCRE之前编译了nginx,所以nginx无法与PCRE通信。
您可以通过编写
找到您的配置参数> nginx -V
复制你的参数:并通过这样做重新编译nginx
如果不起作用,请尝试将--with-pcre = [pcre的路径]添加到配置参数
希望它能起作用;)
答案 1 :(得分:1)
给定的答案不起作用,因为你试图将Nginx与Passenger一起使用,而Nginx也需要编译Passenger模块。
再次运行passenger-install-nginx-module
将为您重新编译nginx。如果没有,您可以在/ opt / nginx上尝试rm -r
(这是乘客安装的默认位置nginx)。如果你重视它,请务必备份你的/opt/nginx/conf/nginx.conf。
如果您使用的是独立乘客,并且需要重新编译,请移除〜/ .passenger / YOUR-MOST-RECENT-INSTALL并再次启动乘客启动。
答案 2 :(得分:0)