1. 程式人生 > >關於nginx重新編譯

關於nginx重新編譯

nginx安裝成功後,發現有一些其他模組沒有編譯進去,或者想額外新增一些模組,這時候就要重新編譯nginx。

首先,檢視之前編譯的一些引數,比如:

1 2 3 4 5 [[email protected] nginx]# /usr/local/nginx/nginx -V nginx version: nginx/1.4.7 built by gcc 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC)  TLS SNI support enabled configure arguments: --prefix=/usr/local/nginx --user=www --group=www --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-pcre=/usr/local/src/lnmp/pcre-8.33 --with-zlib=/usr/local/src/lnmp/zlib-1.2.8 --with-openssl=/usr/local/src/lnmp/openssl-1.0.1e 

比如我現在要新增–with-http_ssl_module 、–with-http_gzip_static_module 這些模組引數,那麼我只要把這些引數新增進去然後重新編譯即可,需要注意的是原先編譯過的引數也要加進來。過程如下:

進入nginx原始碼包

1 [[email protected] nginx]# cd /usr/local/src/nginx-1.4.7

將要編譯的引數重新新增到後面

1 [[email protected] nginx-1.4.7]# ./configure --prefix=/usr/local/nginx --user=www --group=www --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid  --with-pcre=/usr/local/src/lnmp/pcre-8.33 --with-zlib=/usr/local/src/lnmp/zlib-1.2.8 --with-openssl=/usr/local/src/lnmp/openssl-1.0.1e --with-http_gzip_static_module --with-http_ssl_module

注意:這裡只能make 千萬別make install,否則就覆蓋安裝了

1 [[email protected] nginx-1.4.7]# make

make完成後,在原始碼目錄下會有一個objs目錄,objs目錄下就多了個nginx,這個就是新版本的程式了。

1 2 3 [[email protected] nginx-1.4.7]# ls auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  Makefile  man  objs  README  src

然後將objs目錄下的nginx替換之前已經安裝過的nginx。

先備份舊的nginx程式

1 [[email protected] nginx-1.4.7]#cp /usr/local/nginx/nginx  /usr/local/nginx/nginx.bak

把新的nginx程式覆蓋舊的

1 [[email protected] nginx-1.4.7]#cp ./objs/nginx /usr/local/nginx/sbin/nginx

如果提示“cp:cannot create regular file `/usr/local/nginx/sbin/nginx': Text file busy”

建議使用如下語句cp

1 #cp -rfp objs/nginx /usr/local/nginx/sbin/nginx

測試新的nginx程式是否正確

1 2 3 [[email protected] nginx-1.4.7]# /usr/local/nginx/nginx -t nginx: the configuration file /usr/local/nginx/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/nginx.conf test is successful

最後重啟nginx

1 [[email protected] nginx-1.4.7]# /usr/local/nginx/nginx -s reload

這樣,就安裝成功了。下面介紹下安裝第三方模組的方法。

安裝第三方模組

nginx安裝第三方模組的方法和上面差不多,只是要額外新增一個–add-module引數:

1 ./configure --prefix=/你的安裝目錄  --add-module=/第三方模組目錄

下面以安裝pagespeed模組位例項

1 2 3 4 5 6 7 # ./configure --prefix=--prefix=/usr/local/nginx --user=www --group=www --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid  --with-pcre=/usr/local/src/lnmp/pcre-8.33 --with-zlib=/usr/local/src/lnmp/zlib-1.2.8 --with-openssl=/usr/local/src/lnmp/openssl-1.0.1e --with-http_gzip_static_module --with-http_ssl_module --add-module=../ngx_pagespeed-master # make # cp ./objs/nginx /usr/local/nginx/nginx # /usr/local/nginx/nginx -s reload

總結

安裝nginx安裝第三方模組實際上是使用–add-module重新安裝一次nginx,不要make install而是直接把編譯目錄下objs/nginx檔案直接覆蓋老的nginx檔案.如果你需要安裝多個nginx第三方模組,你只需要多指定幾個相應的–add-module即可。

[warning]備註:重新編譯的時候,記得一定要把以前編譯過的模組一同加到configure引數裡。

相關推薦

nginx重新編譯添加新模塊

覆蓋 load cal 官網 重新編譯 .... nginx的安裝 安裝 blog 找到nginx的安裝包目錄,如果沒有的話去官網重新下載 查看ngixn版本極其編譯參數 /usr/local/nginx/sbin/nginx -V 進入nginx源碼目錄,重新

nginx重新編譯不停服

找到安裝nginx的原始碼根目錄,如果沒有就下載新的安裝包 tar xvzf nginx-1.3.2.tar.gz 檢視ngixn版本極其編譯引數 /usr/local/nginx/sbin/nginx -V 進入nginx原始碼目錄 cd nginx-1.3.2 以下是重新編譯的程式碼和

關於nginx重新編譯

nginx安裝成功後,發現有一些其他模組沒有編譯進去,或者想額外新增一些模組,這時候就要重新編譯nginx。 首先,檢視之前編譯的一些引數,比如: 1 2 3 4 5 [[email protected] nginx]# /usr/l

Nginx重新編譯新增模組

進入nginx原始碼目錄 cd nginx-1.3.2 以下是重新編譯的程式碼和模組 ./configure --prefix=/usr/local/nginx--with-http_stub_status_module --with-http_ssl_mod

nginx重新編譯ssl模塊詳細教程

bus regular stop 依賴庫 安裝nginx with nload all eat 若第一次編譯nginx時沒有支持ssl模塊但是又想支持https則需要二次編譯nginx,使其支持https。首先查看nginx編譯了什麽 cd /usr/local/nginx

重新編譯Nginx指導手冊【修復靜態編譯Openssl的Nginx漏洞 】(轉)

snippets asset 替換 業務需求 tps eight nbsp 出了 sof 1. 概述 當前爆出了Openssl漏洞,會泄露隱私信息,涉及的機器較多,環境迥異,導致修復方案都有所不同。不少服務器使用的Nginx,是靜態編譯opensssl,直接將open

阿里雲新centos7.4系統安裝https,通過openssl重新編譯nginx

按照阿里雲官方的https安裝教程在編譯nginx時總是報錯,研究了很久,發現它的安裝方法可能並不適用於已經預裝好openssl的系統,而教程中提供的openssl版本比較新,網上大部分方法並不適用,經過半天的折騰總結出如下方案:1.   遠端連線並登入到 Linux 例項。

重新編譯Nginx指導手冊【修復靜態編譯Openssl的Nginx漏洞 】[Openssl Heartbleed]

Nginx的下載地址: http://nginx.org/en/download.html   3.2 下載相關Nginx的第三方外掛         輸入以下命令,檢視Nginx編譯了哪些外掛模組:       # ./sbin/nginx -V       輸出的編譯引數裡面包含了編譯模組

重新編譯nginx

找到安裝nginx的原始碼根目錄,如果沒有的話下載新的原始碼 http://nginx.org tar xvzf nginx-1.3.2.tar.gz 檢視ngixn版本極其編譯引數 /usr/local/nginx/sbin/nginx -V 進入nginx原

PL/SQL重新編譯包無反應案例2

測試環境 編譯 導致 執行 ssi 由於 targe 發現 code 在這篇"PL/SQL重新編譯包無反應"裏面介紹了編譯包無反應的情況,今天又遇到一起案例, 在測試環境中,一個包的STATUS為INVALID,重新編譯時,一直處於編譯狀態,檢查發現下面兩條因素都不存在:

LINUX下PHP編譯添加相應的動態擴展模塊so(不需要重新編譯PHP,以openssl.so為例)

down get 階段 很多 習慣 lin 模塊 臨時 操作 本文轉自:原文鏈接 http://www.cnblogs.com/doseoer/p/4367536.html 網上我看到有很多相關的文章都是簡述這個問題的,但畢竟因為LINUX版本眾多,很多LIUNX命令或路

myeclipse調試代碼的時候看不到變量的值和jdk源碼重新編譯

設置 編譯 cte 變量 令行 一份 使用 參數 jar Q:myeclipse調試代碼的時候看不到變量的值? A: 調試的類的Class文件裏沒有包含LocalVariableTable屬性表, 這是因為在編譯時,編譯者為了減少文件大小而不把屬性表的信息放在Class文件

shell 格式化輸出nginx編譯參數

nginx參數 linux sed tr awk命令nginx -V > nginx.txt cat -n nginx.txt | sed -n ‘5,18p‘ | awk ‘{$1="";print $0}‘ | sed ‘s/^[ ]*//g‘ | tr ‘\n‘ ‘,‘ | sed -n ‘

Mac下重新編譯Linux內核

nload usr linux內核 linu fig 內核源碼 clas 過程 耐心 Mac下重新編譯Linux內核 操作系統實驗,要求添加系統調用並重新編譯內核,這裏記錄一下編譯內核的過程 0.下載VirtualBox 博主一直用parallel desk,但因為驅動等問

linux下通過phpize為php在不重新編譯php情況下安裝模塊memcache

memcache with tps emca 添加 pecl inux usr ron 通過phpize為php在不重新編譯php情況下安裝模塊memcache 1. 下載 wget http://pecl.php.net/get/memcache-2.2.4.tgz

Linux系統裁減之,制作一個極度精簡的Linux-5-重新編譯login去除對pam模塊的依賴

重新編譯login去除對pam模塊的依賴第5章 重新編譯login去除對pam模塊的依賴在閱讀這篇博文之前,建議先閱讀我的前4篇博文,而且最好按順序閱讀:(不然可能會覺得我寫得不知所雲,呵呵!)第1篇:Linux系統裁減之,制作一個極度精簡的Linux-1 http://blog.51cto.com/linu

nginx增加編譯模塊

user -i 目錄 工作 sni bash toolbar mil 簡單 Nginx平滑增加編譯模塊 由於需要生產環境的需求,現需要對原nginx增加stream模塊功能,雖然過程很簡單,但是也做一個記錄以備查看。具體操作過程整理如下:一、查看Nginx原編譯參數[

nginx編譯增加模塊

nginx nginx重新編譯 nginx源碼包 cd ~/root/nginx 先下載模塊源碼包: wget -O jemalloc-5.0.1.tar.bz2 http://125.88.182.172:5880/src/jemalloc-5.0.1.tar.bz2 wget -O pcre

修復OpenSSL漏洞 升級OpenSSL版本 nginx靜態編譯ssl模塊

nginx openssl背景 OpenSSL全稱為Secure Socket Layer,是Netscape所研發,利用數據加密(Encryption)作技術保障在Internet上數據傳輸的安全。可確保數據在網絡上的傳輸不會被竊聽及截取。 當然,OpenSSL是一個強大的密碼庫,我們在

electron引入Sqlite3重新編譯的問題

github issue class 準備 到你 min hub sqlite depend 你需要安裝sqlite3的所有依賴項,例如vs、python等。或者簡單的npm安裝命令,它會安裝windows下的所有依賴。 npm install -g windows-bui