1. 程式人生 > >CentOS 編譯安裝NGINX最新版及常用命令

CentOS 編譯安裝NGINX最新版及常用命令

2.選定原始碼目錄

可以是任何目錄,本文選定的是/usr/local/src

cd /usr/local/src

3.安裝PCRE庫(讓nginx支援rewrite)
ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/ 下載最新的 PCRE 原始碼包,使用下面命令下載編譯和安裝 PCRE 包:

cd /usr/local/src
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.34.tar.gz 
tar -zxvf pcre-8.34.tar.gz
cd pcre-8.34
./configure
make
make install

4.安裝zlib庫 (nginx的gzip模組需要zlib
http://zlib.net/zlib-1.2.8.tar.gz 下載最新的 zlib 原始碼包,使用下面命令下載編譯和安裝 zlib包:

cd /usr/local/src

wget http://zlib.net/zlib-1.2.8.tar.gz
tar -zxvf zlib-1.2.8.tar.gz
cd zlib-1.2.8
./configure
make
make install

5.安裝ssl(某些vps預設沒裝ssl)

yum -y install openssl openssl-devel (一款功能強大的加密工具包

6.安裝nginx

Nginx 一般有兩個版本,分別是穩定版和開發版,您可以根據您的目的來選擇這兩個版本的其中一個,下面是把 Nginx 安裝到 /usr/local/nginx 目錄下的詳細步驟:

cd /usr/local/src
wget http://nginx.org/download/nginx-1.5.7.tar.gz
tar -zxvf nginx-1.5.7.tar.gz
cd nginx-1.5.7

./configure --sbin-path=/usr/local/nginx/nginx \
--conf-path=/usr/local/nginx/nginx.conf \
--pid-path=/usr/local/nginx/nginx.pid \
--with-http_ssl_module \
--with-pcre=/usr/local/src/pcre-8.34 \
--with-zlib=/usr/local/src/zlib-1.2.8

make
make install

–with-pcre=/usr/src/pcre-8.34 指的是pcre-8.34 的原始碼路徑。
–with-zlib=/usr/src/zlib-1.2.7 指的是zlib-1.2.7 的原始碼路徑。

安裝成功後 /usr/local/nginx 目錄下如下:

fastcgi.conf            koi-win             nginx.conf.default
fastcgi.conf.default    logs                scgi_params
fastcgi_params          mime.types          scgi_params.default
fastcgi_params.default  mime.types.default  uwsgi_params
html                    nginx               uwsgi_params.default
koi-utf                 nginx.conf          win-utf

7.啟動
確保系統的 80 埠沒被其他程式佔用,執行/usr/local/nginx/nginx 命令來啟動 Nginx,

netstat -ano|grep 80

如果查不到結果後執行,有結果則忽略此步驟(ubuntu下必須用sudo啟動,不然只能在前臺執行)

sudo /usr/local/nginx/nginx

開啟瀏覽器訪問此機器的 IP,如果瀏覽器出現 Welcome to nginx! 則表示 Nginx 已經安裝並執行成功。

8.停止

停止nginx

sudo

/usr/local/nginx/nginx -s stop

/usr/local/nginx/nginx -s  quit

Nginx -s stop         快速關閉Nginx,可能不儲存相關資訊,並迅速終止web服務。(quick exit)

Nginx -s quit         平穩關閉Nginx,儲存相關資訊,有安排的結束web服務。(graceful exit)
Nginx -s reload       因改變了Nginx相關配置,需要重新載入配置而過載。(changing configuration,start a new worker,quitting an old worker gracefully.)
Nginx -s reopen       重新開啟日誌檔案。(reopenging log files)


-----------------------------------------------------
到這裡nginx就安裝完成了,如果只是處理靜態html就不用繼續安裝了

如果你需要處理php指令碼的話,還需要安裝php-fpm

下面安裝排錯

附:可能遇到的錯誤和一些幫助資訊

1.1編譯pcre錯誤

libtool: compile: unrecognized option `-DHAVE_CONFIG_H'
libtool: compile: Try `libtool --help' for more information.
make[1]: *** [pcrecpp.lo] Error 1
make[1]: Leaving directory `/usr/local/src/pcre-8.34'
make:***[all]Error2

解決辦法:安裝g++,別忘了重新configure

apt-get install g++
apt-get install build-essential
make clean
./configure
make

1.2 make出錯

make:***No rule to make target `build', needed by `default'.  Stop.
./configure: error: SSL modules require the OpenSSL library.
You can either do not enable the modules, or install the OpenSSL library
into the system, or build the OpenSSL library statically from the source
with nginx by using --with-openssl= option.

按照第4步的安裝方法或
ubuntu下

apt-get install openssl
apt-get install libssl-dev

centos下

yum -y install openssl openssl-devel

2.nginx編譯選項

make是用來編譯的,它從Makefile中讀取指令,然後編譯。

make install是用來安裝的,它也從Makefile中讀取指令,安裝到指定的位置。

configure命令是用來檢測你的安裝平臺的目標特徵的。它定義了系統的各個方面,包括nginx的被允許使用的連線處理的方法,比如它會檢測你是不是有CC或GCC,並不是需要CC或GCC,它是個shell指令碼,執行結束時,它會建立一個Makefile檔案。nginx的configure命令支援以下引數:

  • --prefix=path    定義一個目錄,存放伺服器上的檔案 ,也就是nginx的安裝目錄。預設使用 /usr/local/nginx。
  • --sbin-path=path 設定nginx的可執行檔案的路徑,預設為  prefix/sbin/nginx.
  • --conf-path=path  設定在nginx.conf配置檔案的路徑。nginx允許使用不同的配置檔案啟動,通過命令列中的-c選項。預設為prefix/conf/nginx.conf.
  • --pid-path=path  設定nginx.pid檔案,將儲存的主程序的程序號。安裝完成後,可以隨時改變的檔名 , 在nginx.conf配置檔案中使用 PID指令。預設情況下,檔名 為prefix/logs/nginx.pid.
  • --error-log-path=path 設定主錯誤,警告,和診斷檔案的名稱。安裝完成後,可以隨時改變的檔名 ,在nginx.conf配置檔案中 使用 的error_log指令。預設情況下,檔名 為prefix/logs/error.log.
  • --http-log-path=path  設定主請求的HTTP伺服器的日誌檔案的名稱。安裝完成後,可以隨時改變的檔名 ,在nginx.conf配置檔案中 使用 的access_log指令。預設情況下,檔名 為prefix/logs/access.log.
  • --user=name  設定nginx工作程序的使用者。安裝完成後,可以隨時更改的名稱在nginx.conf配置檔案中 使用的 user指令。預設的使用者名稱是nobody。
  • --group=name  設定nginx工作程序的使用者組。安裝完成後,可以隨時更改的名稱在nginx.conf配置檔案中 使用的 user指令。預設的為非特權使用者。
  • --with-select_module --without-select_module 啟用或禁用構建一個模組來允許伺服器使用select()方法。該模組將自動建立,如果平臺不支援的kqueue,epoll,rtsig或/dev/poll。
  • --with-poll_module --without-poll_module 啟用或禁用構建一個模組來允許伺服器使用poll()方法。該模組將自動建立,如果平臺不支援的kqueue,epoll,rtsig或/dev/poll。
  • --without-http_gzip_module — 不編譯壓縮的HTTP伺服器的響應模組。編譯並執行此模組需要zlib庫。
  • --without-http_rewrite_module  不編譯重寫模組。編譯並執行此模組需要PCRE庫支援。
  • --without-http_proxy_module — 不編譯http_proxy模組。
  • --with-http_ssl_module — 使用https協議模組。預設情況下,該模組沒有被構建。建立並執行此模組的OpenSSL庫是必需的。
  • --with-pcre=path — 設定PCRE庫的原始碼路徑。PCRE庫的原始碼(版本4.4 - 8.30)需要從PCRE網站下載並解壓。其餘的工作是Nginx的./ configure和make來完成。正則表示式使用在location指令和 ngx_http_rewrite_module 模組中。
  • --with-pcre-jit —編譯PCRE包含“just-in-time compilation”(1.1.12中, pcre_jit指令)。
  • --with-zlib=path —設定的zlib庫的原始碼路徑。要下載從 zlib(版本1.1.3 - 1.2.5)的並解壓。其餘的工作是Nginx的./ configure和make完成。ngx_http_gzip_module模組需要使用zlib 。
  • --with-cc-opt=parameters — 設定額外的引數將被新增到CFLAGS變數。例如,當你在FreeBSD上使用PCRE庫時需要使用:--with-cc-opt="-I /usr/local/include。.如需要需要增加 select()支援的檔案數量:--with-cc-opt="-D FD_SETSIZE=2048".
  • --with-ld-opt=parameters —設定附加的引數,將用於在連結期間。例如,當在FreeBSD下使用該系統的PCRE庫,應指定:--with-ld-opt="-L /usr/local/lib".

典型例項(下面為了展示需要寫在多行,執行時內容需要在同一行)

./configure
    --sbin-path=/usr/local/nginx/nginx
    --conf-path=/usr/local/nginx/nginx.conf
    --pid-path=/usr/local/nginx/nginx.pid
    --with-http_ssl_module
    --with-pcre=../pcre-4.4--with-zlib=../zlib-1.1.3

//開啟HTTP SSL模組,使NGINX可以支援HTTPS請求。這個模組需要已經安裝了OPENSSL,在DEBIAN上是libssl

--with-http_realip_module - 啟用 ngx_http_realip_module

--with-http_addition_module - 啟用 ngx_http_addition_module

--with-http_sub_module - 啟用 ngx_http_sub_module

--with-http_dav_module - 啟用 ngx_http_dav_module

--with-http_flv_module - 啟用 ngx_http_flv_module

--with-http_stub_status_module - 啟用 "server status" 頁

--without-http_charset_module - 禁用 ngx_http_charset_module

--without-http_gzip_module - 禁用 ngx_http_gzip_module. 如果啟用,需要 zlib 。

--without-http_ssi_module - 禁用 ngx_http_ssi_module

--without-http_userid_module - 禁用 ngx_http_userid_module

--without-http_access_module - 禁用 ngx_http_access_module

--without-http_auth_basic_module - 禁用 ngx_http_auth_basic_module

--without-http_autoindex_module - 禁用 ngx_http_autoindex_module

--without-http_geo_module - 禁用 ngx_http_geo_module

--without-http_map_module - 禁用 ngx_http_map_module

--without-http_referer_module - 禁用 ngx_http_referer_module

--without-http_rewrite_module - 禁用 ngx_http_rewrite_module. 如果啟用需要 PCRE 。

--without-http_proxy_module - 禁用 ngx_http_proxy_module

--without-http_fastcgi_module - 禁用 ngx_http_fastcgi_module

--without-http_memcached_module - 禁用 ngx_http_memcached_module

--without-http_limit_zone_module - 禁用 ngx_http_limit_zone_module

--without-http_empty_gif_module - 禁用 ngx_http_empty_gif_module

--without-http_browser_module - 禁用 ngx_http_browser_module

--without-http_upstream_ip_hash_module - 禁用 ngx_http_upstream_ip_hash_module

--with-http_perl_module - 啟用 ngx_http_perl_module

--with-perl_modules_path=PATH - 指定 perl 模組的路徑

--with-perl=PATH - 指定 perl 執行檔案的路徑

--http-log-path=PATH - Set path to the http access log

--http-client-body-temp-path=PATH - Set path to the http client request body temporary files

--http-proxy-temp-path=PATH - Set path to the http proxy temporary files

--http-fastcgi-temp-path=PATH - Set path to the http fastcgi temporary files

--without-http - 禁用 HTTP server

--with-mail - 啟用 IMAP4/POP3/SMTP 代理模組

--with-mail_ssl_module - 啟用 ngx_mail_ssl_module

--with-cc=PATH - 指定 C 編譯器的路徑

--with-cpp=PATH - 指定 C 前處理器的路徑

--with-cc-opt=OPTIONS - Additional parameters which will be added to the variable CFLAGS. With the use of the system library PCRE in FreeBSD, it is necessary to indicate --with-cc-opt="-I /usr/local/include". If we are using select() and it is necessary to increase the number of file descriptors, then this also can be assigned here: --with-cc-opt="-D FD_SETSIZE=2048".

--with-ld-opt=OPTIONS - Additional parameters passed to the linker. With the use of the system library PCRE in FreeBSD, it is necessary to indicate --with-ld-opt="-L /usr/local/lib".

--with-cpu-opt=CPU - 為特定的 CPU 編譯,有效的值包括:pentium, pentiumpro, pentium3, pentium4, athlon, opteron, amd64, sparc32, sparc64, ppc64

--without-pcre - 禁止 PCRE 庫的使用。同時也會禁止 HTTP rewrite 模組。在 "location" 配置指令中的正則表示式也需要 PCRE 。

--with-pcre=DIR - 指定 PCRE 庫的原始碼的路徑。

--with-pcre-opt=OPTIONS - Set additional options for PCRE building.

--with-md5=DIR - Set path to md5 library sources.

--with-md5-opt=OPTIONS - Set additional options for md5 building.

--with-md5-asm - Use md5 assembler sources.

--with-sha1=DIR - Set path to sha1 library sources.

--with-sha1-opt=OPTIONS - Set additional options for sha1 building.

--with-sha1-asm - Use sha1 assembler sources.

--with-zlib=DIR - Set path to zlib library sources.

--with-zlib-opt=OPTIONS - Set additional options for zlib building.

--with-zlib-asm=CPU - Use zlib assembler sources optimized for specified CPU, valid values are: pentium, pentiumpro

--with-openssl=DIR - Set path to OpenSSL library sources

--with-openssl-opt=OPTIONS - Set additional options for OpenSSL building

--with-debug - 啟用除錯日誌

--add-module=PATH - Add in a third-party module found in directory PATH


9. nginx 啟動,重啟,關閉命令
停止操作
停止操作是通過向nginx程序傳送訊號(什麼是訊號請參閱linux文 章)來進行的
步驟1:查詢nginx主程序號

ps -ef | grep nginx

在程序列表裡 面找master程序,它的編號就是主程序號了。
步驟2:傳送訊號
從容停止Nginx:

kill -QUIT 主程序號

快速停止Nginx:

kill -TERM 主程序號

強制停止Nginx:

pkill -9 nginx

平滑重啟
如果更改了配置就要重啟Nginx,要先關閉Nginx再開啟?不是的,可以向Nginx 傳送訊號,平滑重啟。
平滑重啟命令:

kill -HUP 住進稱號或程序號檔案路徑

kill -HUP `cat /usr/local/nginx/nginx.pid`

相關推薦

CentOS 編譯安裝NGINX新版常用命令

2.選定原始碼目錄 可以是任何目錄,本文選定的是/usr/local/src cd /usr/local/src 3.安裝PCRE庫(讓nginx支援rewrite) ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/ 下載最新的 PCRE 原

redhat7通過yum安裝nginx新版

1、準備yum源 vi /etc/yum.repo.d/nginx.repo [nginx]name=nginx repobaseurl=http://nginx.org/packages/mainline/rhel/7/$basearch/gpgcheck=0enable=1 準備好了源之後,更新源

Linux 編譯安裝 ghostscript 新版

1、下載地址 https://www.ghostscript.com/download/gsdnld.html 我寫這個的時候最新版本是9.25 下載Ghostscript 9.25 for Linux x86 (64 bit)這個是直接使用的,替換/usr/b

apt安裝nginx新版

sudo apt-get install software-properties-common sudo add-apt-repository ppa:nginx/stable  sudo apt-get update sudo apt-get install nginx  

安裝JDK和Tomcat常用命令(Linux)

檢視ip: -------------------------- ifconfig -a 配置網路選項 ------------------------ setup service network restart (配置完IP等必須重啟網路服務才生效) 檢視使用者登入資

redis3.2.8安裝和配置,常用命令簡介

什麼redis? redis是一個key-value儲存系統。和Memcached類似,它支援儲存的value型別相對更多,包括string(字串)、list(連結串列)、set(集合)、zset(sorted set –有序集合)和hash(雜湊型別)。這些

centos 7.5安裝版系統編譯安裝Nginx+PHP 基礎環境全過程

寫在前邊 安裝環境 centos最小安裝,只安裝除錯工具 需要的軟體包在下邊地址 01.安裝依賴庫 檢查系統更新 yum check-update 安裝依賴庫 yum -y install gcc gcc-c++ autoconf libjpeg libjpe

centos編譯安裝nginx+mysql +php(未完)

net conf ftw tar 解壓 ocs org sql nbsp 參考地址:http://www.cnblogs.com/htian/p/5728599.html 去官網找到PCRE,並下載http://www.pcre.org/wget ftp://ftp.csx

CentOS 10分鐘快速安裝rabbitMQ 新版

rabbitmq erlang yum1、配置erlang yum 源 (根據自己系統版本選擇合適的源 https://github.com/rabbitmq/erlang-rpm) vim /etc/yum.repos.d/rabbitmq-erlang.repo [rabbitmq-erla

CentOS 7.2上編譯安裝Nginx 1.13.6

創建 ont uname group with pen 還需 www stub 第一個裏程碑 --- 檢查軟件安裝的系統環境 [root@rainjin ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (

CentOS 7.2源碼包編譯安裝nginx-1.10.2

ech 代理服務器 uname amp 版本 lease 傳統 依賴 conf 1、nginx介紹 Nginx (engine x) 是一個高性能的HTTP和反向代理服務器,也是一個IMAP/POP3/SMTP服務器。Nginx是由伊戈爾·賽索耶夫為俄羅斯訪問量第二的Ram

CentOS編譯安裝Nginx

Nginx CentOS 1、什麽是Nginx Nginx(發音同 engine x)是一款輕量級的Web 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器,並在一個BSD-like 協議下發行。由俄羅斯的程序設計師Igor Sysoev所開發,最初供俄國大型的入口網站及搜尋引擎

centos7編譯安裝nginx無縫升級https

itl download err sha2 進行 ast ref 配置文件 CP 安裝依賴: [html] view plain copy yum install -y gcc-c++ pcre pcre-devel zlib z

centos 7 編譯安裝nginx --1

nginx 編譯安裝1) gcc 安裝安裝 nginx 需要先將官網下載的源碼進行編譯,編譯依賴 gcc 環境,如果沒有 gcc 環境,則需要安裝:yum install gcc-c++2) PCRE pcre-devel 安裝PCRE(Perl Compatible Regular Expressions)

centos 7 編譯安裝nginx --2

nginx為系統服務1)添加nginx為系統服務(service nginx start/stop/restart)[1]在/etc/init.d/目錄下編寫腳本,名為nginx, 如果運行有錯誤,主意:nginx_config的路徑,ngnx sbin目錄修改正確#!/bin/sh # ## nginx -

CentOS 7 源碼編譯安裝 Nginx

zlib opp ping 編譯環境 vim com curl null source 這裏安裝的是nginx 1.14版本 1.下載源碼 #下載 wget http://nginx.org/download/nginx-1.14.0.tar.gz #解壓 tar -xzf

安裝MongoDB新版4.0、配置和啟動實例

logs 默認端口 info mkdir -p 其他 gem nosql數據庫 eml pytho MongoDB簡介: 1.MongoDB是一款基於分布式文件存儲的開源的文檔數據庫,並且是業內領先的NoSQL數據庫,用C++編寫而成。2.在高負載的情況下,添加更多的節點,

Nginx安裝常用命令

一、選定原始碼目錄 cd /usr/local/src 可以是任何目錄,本文選定的是/usr/local/src 二、安裝依賴庫 yum install gcc yum install pcre-devel yum install zlib zlib-devel yum install

CentOS 7.x編譯安裝Nginx ,設為開機啟動項

1、安裝 1、安裝nginx的依賴 yum -y install openssl openssl-devel yum -y install pcre-devel 2、下載nginx-1.10.3.tar.gz原始碼並解壓至/root/   http://nginx.org/

Nginx 之一:編譯安裝nginx 1.8.1 配置

一:基介紹   官網地址www.nginx.org,nginx是由1994年畢業於俄羅斯國立莫斯科鮑曼科技大學的同學為俄羅斯rambler.ru公司開發的,開發工作最早從2002年開始,第一次公開發布時間是2004年10月4日,版本號是0.1.0  Nginx是單程序單執行緒模型,即啟