源碼編譯安裝nginx

來源:互聯網
上載者:User

標籤:加密   directory   nload   應用   開啟   表達   自動   upstream   stream   

安裝依賴軟體1、安裝編譯工具gcc

  gcc是一個開源編譯器集合,用於處理各種各樣的語言:C、C++、Java、Ada等,在linux世界中是最通用的編譯器,支援大量處理器:x86、AMD64、PowerPC、ARM、MIPS等。
  
首先確定系統是否安裝gcc

[[email protected] ~]# gcc

若輸出以下訊息則已經安裝gcc:

若輸出以下訊息則未安裝gcc:

使用包管理器yum安裝gcc:

[[email protected] ~]# yum -y install gcc

 

2.安裝PCRE庫

  nginx的Rewrite模組和HTTP核心模組會使用到PCRERegex文法,因此nginx編譯需要使用PCRE(Perl Compatible Regular Expression)庫,需要安裝pcre和pcre-devel,pcre提供編譯版本的庫,pcre-devel提供開發階段的標頭檔和編譯項目的原始碼。
使用yum安裝:

[[email protected] ~]# yum -y install pcre pcre-devel

如果系統已經安裝了pcre包則會輸出:

Nothing to do

即系統沒有安裝或升級pcre。

 

3.安裝zlib庫

zlib庫提供了壓縮演算法,在nginx的各種模組中需要使用gzip壓縮,因此需要安裝zlib庫和zlib-devel(zlib原始碼)。

[[email protected] ~]# yum -y install zlib zlib-devel
4.安裝OpenSSL

OpenSSL項目是一個協作開發健壯的、商業級的、全功能的執行於安全套接層(SSL v2/v3)和傳輸層安全(TLS v1)的協議,也是一個完整強壯的通用加密庫。在nginx中如果伺服器需要提供安全網頁則會用到OpenSSL庫,因此需要安裝它的庫檔案和它的開發安裝包。
yum安裝openssl和openssl-devel

[[email protected] ~]# yum -y install openssl openssl-devel
安裝nginx

可以去nginx官網找到各個版本的連結

下載並解壓:
[[email protected] src]# wget http://nginx.org/download/nginx-1.10.1.tar.gz
[[email protected] src]# tar zxvf nginx-1.10.1.tar.gz
[[email protected] src]# cd nginx-1.10.1

 

##配置選項linux下建立一個應用程式分為三步,配置原始碼、編譯、安裝編譯,配置步驟可以選擇更多選項,這些選項在程式安裝完成後不可編輯,配置即添加某些開關選項(switch)到配置(configure)指令碼,可以啟用的開關類型有三種。###**容易的安裝方法**不加任何配置參數直接編譯安裝nginx

[[email protected] src]# ./configure
[[email protected] src]# make&&make install
路徑選項

在運行configure指令碼命令的時候,可能需要開啟一些開關選項,開關選項可能因為下載的版本不同有差異,使用./configure --help 列出有效開關選項:

路徑選項 用法 預設值
–prefix nginx安裝位置 /usr/local/nginx
–sbin-path nginx二進位執行檔案路徑 /sbin/nginx
–conf-path 設定檔存放位置 /conf/nginx.conf
–error-log-path 錯誤記錄檔檔案位置 /logs/error.log
–pid-path pid檔案路徑 /logs/nginx.pid(pid檔案包含進程的標識符)
–lock-path 鎖檔案存放路徑 /logs/nginx.log(鎖檔案用於控制nginx進程沒有被啟動兩次)
–with-perl_modules_path perl模組路徑(如果需要包含另外的perl模組,必須定義該參數)  
–with-perl perl執行檔案路徑  
–http-log-path 訪問記錄檔路徑 /logs/access.log
–http-client-body-temp-path 用戶端請求產生的臨時檔案路徑 /client_body_temp
–http-proxy-temp-path 代理儲存臨時檔案路徑 /proxy_temp_path
–http-fastcgi-temp-path HTTP FastCGI模組使用的臨時檔案路徑  
–builddir 建立應用程式位置  
先決條件選項

先決條件的格式有庫檔案二進位檔案,在配置之前需要先安裝這些依賴軟體,有時即使這些軟體已經安裝在系統中,可能有時配置指令碼還是找不到它們的位置,因此可以使用開關項指出它們的路徑。

編譯選項 用法
–with-cc 指定C編譯器位置
–with-cpp 指定備用C預先處理位置
–with-cc-opt 定義額外選項,然後在命令列傳遞給C編譯器
–with-ld-opt 定義額外選項,然後在命令列傳遞給C連接器
–with-cpu-opt 指定不同的目標處理器結構,可以是下列值:pentium、pentiumpro、ppc64等

 

PCRE選項 用法
–without-pcre 不使用PCRE庫()
–with-pcre 強制使用pcre
–with-pcre=… 指定pcre原始碼(注意不是安裝目錄)
–with-pcre-opt 用於建立PCRE庫的額外選項

 

MD5選項 用法
–with-md5=… 指定MD5庫原始碼路徑
–with-md5-opt 建立MD5庫的另外選項
–with-md5-asm 建立MD5庫使用組合語言原始碼

 

SHA1選項 用法
–with-sha1=… 原始碼路徑
–with-sha1-opt 建立SHA1庫的另外選項
–with-sha1-asm 建立SHA1庫使用組合語言原始碼

 

zlib選項 用法
–with-zlib 原始碼路徑
–with-zlib-opt 建立zlib庫的另外選項
–with-zlib-asm 使用組合語言最大限度的最佳化下列目標結構:Pentium、pentiumpro

 

OpenSSL選項 用法
–with-openssl 原始碼路徑
–with-openssl-opt 建立openssl庫的另外選項

 

模組選項

在編譯nginx之前需要選擇模組,一些模組預設開啟,有些模組需要手動開啟。

預設禁用模組 描述
–without-http_charset_module 禁用Charset模組,該模組用於對網頁重新編碼
–without-http_gzip_module 禁用gzip壓縮模組
–without-http_ssi_module 禁用服務端包含模組
–without-http_userid_module 禁用使用者ID模組,該模組為使用者通過cookie驗證身份
–without-http_access_module 禁用訪問模組,對於指定的IP段,允許訪問配置
–without-http_auth_basic_module 禁用基本的認證模組
–without-http_autoindex_module 禁用自動索引模組
–without-http_geo_module 禁用Geo模組,該模組允許你定義依賴於IP位址區段的變數
–without-http_map_module 禁用map模組,該模組允許你定義map區段
–without-http_referer_module 禁用referer控制模組
–without-http_rewrite_module 禁用rewrite模組
–without-http_proxy_module 禁用代理模組,該模組用於向其他伺服器傳輸請求
–without-http_fastcgi_module 禁用FastCGI模組,該模組用於和FastCGI進程配合工作
–without-http_memcached_module 禁用memcached模組
–without-http_limit_req_module 禁用Limit Request模組,該模組允許限制每個使用者請求總數
–without-http_empty_gif_module 禁用Empty Gif模組,該模組用於在記憶體中提供空白GIF映像
–without-http_browser_module 禁用Browser模組,該模組用於解釋使用者代理程式字串
–without-http_upstream_ip_hash_module 禁用Upstream模組,該模組用於配置負載平衡結構

 

預設開啟模組 描述
–with-http_ssl_module 開啟SSL模組,支援使用HTTPS協議的網頁
–with-http_realip_module 開啟Real IP支援,該模組用於從使用者的要求標頭資料中讀取real IP地址
–with-http_addition_module 開啟Addition模組,該模組允許你追加或前置資料到響應的主體部分
–with-http_xslt_module 開啟XLST模組,該模組實現XLST轉化為XML文檔
–with-http_image_filter_module 開啟Image Filter模組,該模組允許修改映像(注意:若編譯該模組,需安裝libgd庫)
–with-http_geoip_module 開啟GeoIP模組,該模組通過使用MaxMind’s GeoI位元據庫來擷取用戶端在地理上的分布(注意:如果希望編譯該模組,需要安裝libgeoip)
–with-http_sub_module 開啟Substitution模組,該模組用於在網頁中替換文本
–with-http_dav_module  
–with-http_flv_module 開啟FLV模組,該模組用於處理.flv(flash視頻)檔案
–with-http_gzip_static_module 開啟Gzip靜態模組,該模組用於發送預壓縮檔
–with-http_random_index_module 開啟Random Index模組,該模組用於挑選一個隨機的檔案作為該目錄的index
–with-http_secure_link_module 開啟Secure Link模組,該模組用於在URL中檢測關鍵字的存在
–with-http_stub_status_module 開啟Stub Status模組,該模組會產生一個伺服器狀態和資訊頁
–with-google_perftools_module 開啟google效能工具
雜項
郵件服務代理 描述
–with-mail 開啟服務代理模組(mail server proxy),支援POP3,IMAP4和SMTP,該功能預設禁用
–with-mail_ssl_module 開啟郵件代理服務對SSL的支援,預設禁用
–without-mail_pop3_module 郵件代理模組禁用POP3功能,在開啟郵件代理模組後該功能預設啟用
–without-mail_imap_module 郵件代理模組禁用IMAP4功能,在開啟郵件代理模組後該功能預設啟用
–without-mail_smtp_module 郵件代理模組禁用SMTP功能,在開啟郵件代理模組後該功能預設啟用

 

事件管理(為nginx定時器選擇事件通知系統) 描述
–with-select_module 開啟select模組,使用select作為事件通知機制,預設開啟
–without-select_module 禁用select模組
–with-poll_module 開啟poll模組,使用poll作為事件通知機制,預設開啟
–without-poll_module 禁用poll模組

 

使用者和組選項 描述
–user=… 指定啟動nginx進程的預設使用者
–group=… 指定啟動nginx進程的預設使用者組

 

其他選項 描述
–with-ipv6 開啟對ipv6支援
–without-http 禁用http服務
–without-http-cache 禁用http緩衝功能
–add-module 通過指定的路徑編譯添加第三方模組,如果需要編譯多個模組,該選項可以多次使用
–with-debug 開啟記錄額外調試資訊
配置可能出現的錯誤問題

在運行configure命令時可能會報錯,大多數情況下是因為丟失先決條件未指定路徑目錄許可權,可以查看objs/autoconf.err檔案來查看編譯出錯問題。

編譯

一旦配置成功就可以編譯nginx,在原始碼目錄執行:

[[email protected] src]#make

成功編譯後將輸出以下資訊:

make[1]: Leaving directory `/usr/local/src/nginx-1.10.1’

編譯過程可能出現錯誤,錯誤原因可能是找不到先決條件或指定路徑無效,如果是這種問題,可以檢查開關選項和路徑,重新執行configure編譯即可。還可能的錯誤原因是下載了比較新的nginx版本,新版本沒有很好的做到向下相容,這樣可以下載比較舊的穩定版本重新嘗試。

安裝

編譯成功後執行安裝命令:

[[email protected] src]#make&&make install

---------------------zsl10 來源:CSDN 原文:52181748?utm_source=copy 著作權聲明:本文為博主原創文章,轉載請附上博文連結!

源碼編譯安裝nginx

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.