我如何重新编译nginx

时间:2012-02-23 03:04:36

标签: ruby-on-rails-3 nginx passenger pcre

我正在设置一个新服务器(我的第一个!)。

我已安装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。有人能指点我一步一步的指示吗?

谢谢!

3 个答案:

答案 0 :(得分:1)

如果我没记错的话,你只需要重新编译nginx。因为您在安装PCRE之前编译了nginx,所以nginx无法与PCRE通信。

您可以通过编写

找到您的配置参数
> nginx -V

复制你的参数:并通过这样做重新编译nginx

  1. 转到您的nginx下载文件夹
  2. > ./configure [你的配置参数在这里]
  3. >使
  4. > sudo make install
  5. 如果不起作用,请尝试将--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)