2012-02-23 111 views
2

我正在建立一个新的服务器(我的第一个!)。如何重新编译nginx

我已经安装了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

你是否得到它的工作,或仍然有问题? – Mattias 2012-02-28 10:35:46

回答

1

给出的答案是行不通的,因为您正在尝试使用Nginx与Passenger,并且Nginx需要Passenger模块进行编译。

再次运行passenger-install-nginx-module会重新编译你的nginx。如果没有,你可以在/ opt/nginx上尝试rm -r(这是nginx安装到Passenger的默认位置)。如果您重视,请务必备份/opt/nginx/conf/nginx.conf。

如果您使用的是独立乘客,并且您需要重新编译,请删除〜/ .passenger/YOUR-MOST-RECENT-INSTALL并简单地运行乘客重新启动。

1

如果我记得没错,你只需要重新编译nginx。由于您在安装PCRE之前编译了您的nginx,因此nginx无法与PCRE进行通信。

您可以通过编写

> nginx -V 

找到你的配置参数复制你的论点:通过这样

  1. 转到你的nginx的下载文件夹
  2. >的./configure nginx的编译[你配置参数在这里]
  3. > make
  4. > sudo make install

如果它不工作,尝试--with-PCRE = [路径PCRE]添加到您的配置参数

希望它会工作;)