2012-02-23 152 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]添加到您的配置參數

希望它會工作;)