CentOS中源碼編譯安裝Nginx

来源:https://www.cnblogs.com/linchuanye/archive/2019/05/01/10799067.html
-Advertisement-
Play Games

1.從官網通過wget命令將Nginx源碼包下載到Linux上 ​ Nginx下載頁面:http://nginx.org/en/download.html 2.在Linux上安裝需要依賴的環境 & 8195;& 8195;gcc為GNU Compiler Collection的縮寫,可以編譯C和C+ ...


1.從官網通過wget命令將Nginx源碼包下載到Linux上

​ Nginx下載頁面:http://nginx.org/en/download.html

2.在Linux上安裝需要依賴的環境

yum -y install gcc gcc-c++ automake zlib zlib-devel \
openssl openssl--devel pcre pcre-devel

  gcc為GNU Compiler Collection的縮寫,可以編譯C和C++源代碼等,它是GNU開發的C和C++以及其他很多種語言 的編譯器(最早的時候只能編譯C,後來很快進化成一個編譯多種語言的集合,如Fortran、Pascal、Objective-C、Java、Ada、 Go等。)
  gcc 在編譯C++源代碼的階段,只能編譯 C++ 源文件,而不能自動和 C++ 程式使用的庫鏈接(編譯過程分為編譯、鏈接兩個階段,註意不要和可執行文件這個概念搞混,相對可執行文件來說有三個重要的概念:編譯(compile)、鏈接(link)、載入(load)。源程式文件被編譯成目標文件,多個目標文件連同庫被鏈接成一個最終的可執行文件,可執行文件被載入到記憶體中運行)。因此,通常使用 g++ 命令來完成 C++ 程式的編譯和連接,該程式會自動調用 gcc 實現編譯。
  gcc-c++也能編譯C源代碼,只不過把會把它當成C++源代碼,尾碼為.c的,gcc把它當作是C程式,而g++當作是c++程式;尾碼為.cpp的,兩者都會認為是c++程式,註意,雖然c++是c的超集,但是兩者對語法的要求是有區別的。
  automake是一個從Makefile.am文件自動生成Makefile.in的工具。為了生成Makefile.in,automake還需用到perl,由於automake創建的發佈完全遵循GNU標準,所以在創建中不需要perl。libtool是一款方便生成各種程式庫的工具。
  pcre pcre-devel:在Nginx編譯需要 PCRE(Perl Compatible Regular Expression),因為Nginx 的Rewrite模塊和HTTP 核心模塊會使用到PCRE正則表達式語法。
  zlip zlib-devel:nginx啟用壓縮功能的時候,需要此模塊的支持。
  openssl openssl-devel:開啟SSL的時候需要此模塊的支持。

3.根據系統情況自動生成編譯時所需的Makefile文件(如果依賴沒安裝則這一步就會出現報錯)

#生成Makefile
./configure

4.編譯和安裝

#編譯
make
#安裝
make install

5.安裝後,日誌中將會包含了Nginx的具體安裝目錄

  如果在./configure未指定安裝的目錄,則編譯安裝後的Nginx一般在/usr/local/nginx下。安裝後,有四個主要的目錄。

  conf:保存nginx所有的配置文件,其中nginx.conf是nginx伺服器的最核心最主要的配置文件,其他的.conf則是用來配置nginx相關的功能的,例如fastcgi功能使用的是fastcgi.conf和fastcgi_params兩個文件,配置文件一般都有個樣板配置文件,是文件名.default結尾,使用的使用將其複製為並將default去掉即可。
  html:保存了nginx伺服器的web文件,但是可以更改為其他目錄保存web文件,另外還有一個50x的web文件是預設的錯誤頁面提示頁面。
  logs:用來保存nginx伺服器的訪問日誌錯誤日誌等日誌,logs目錄可以放在其他路徑,比如/var/logs/nginx裡面。
  sbin:保存nginx二進位啟動腳本,可以接受不同的參數以實現不同的功能。

6.通過命令啟動和關閉nginx:

#啟動Nginx,一般來說編譯安裝時這個sbin下的命令是沒有填到PATH中的也沒有將Nginx作為系統服務
/usr/local/nginx/sbin/nginx/nginx #只能通過絕對路徑啟動Nginx

7.重讀配置文件和關閉服務:

/usr/local/nginx/sbin/nginx -s reload  #不停止服務重讀配置文件
/usr/local/nginx/sbin/nginx -s stop #停止服務 

8.查看進程和驗證埠是否開啟:

  一般來說在執行了啟動Nginx的那個命令後,沒有報錯則說明Nginx是啟動了的,如果想要確認是否啟動,可以通過下麵的命令進行查詢。

ps -ef | grep nginx

Nginx-PS

#使用下麵的命令來確認埠對應的進程是不是Nginx,如果沒有安裝lsof,則可以通過yum安裝先
lsof -i:80

查看埠占用的程式


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1 使用Office自帶的庫 前提是本機須安裝office才能運行,且不同的office版本之間可能會有相容問題,從Nuget下載 Microsoft.Office.Interop.Excel 讀寫代碼如下: 2. 使用NPOI 在不安裝office的時候也是可以讀寫的,速度很快,從Nuget下載 ...
  • 翻車了!!!一個小例子帶你瞭解閉包。事故現場:場景:6個button,上方1個text。點擊button,text會顯示button上的數字。代碼如下://在unity裡面賦值public List<Button> buttons = new List<Button>();public Text t ...
  • 在伺服器性能優化中,我們更多的是要考慮到緩存的使用,分享一個自己編寫的方法緩存的框架,使用非常方便。話不多說,先上使用例子: 1.定義要使用緩存的類及方法: 說明: 1.被緩存的方法必須使用虛方法 2.特性:CacheMethod.ExpirationSecond 指定緩存的相對失效時間(單位秒) ...
  • 當不允許多用戶同時登錄一個帳號時,就需要一種機制,當再登錄一個相同的帳號時,前面登錄的人被擠下線。 原文地址:http://www.cnblogs.com/f23wangj/p/4984302.html 實現原理:在伺服器端記錄登錄的用戶ID+SessionID,當重覆登錄時,根據用戶ID用新的Se ...
  • SliderView控制項 一、 樣式一 我們要實現上圖中的效果,需要如下的操作: 獲得和設置標簽視圖集合,打開集合編輯器,並點擊“添加”,分別填寫ResourceID屬性(菜單項圖片名稱),Text(菜單項文本),Value(內部值,不在界面上顯示),如圖1、圖 2; 圖 1設置界面1 圖 2設置界 ...
  • C#中的快捷鍵,可以更方便的編寫代碼 //CTRL + SHIFT + B 生成解決方案 //CTRL + F7 生成編譯 //CTRL + O 打開文件 //CTRL + SHIFT + O 打開項目 //CTRL + SHIFT + C 顯示類視圖視窗 //F4 顯示屬性視窗 //SHIFT +... ...
  • IComparable<T> .NET 里,IComparable<T>是用來作比較的最常用介面。 如果某個類型的實例需要與該類型的其它實例進行比較或者排序的話,那麼該類型就可以通過實現IComparable<T>介面來達到此目的。 IComparable<T>只提供了一個方法: 先看一個例子,這裡 ...
  • 字元串常用方法 string str =""; string[] strArray = str.Split('截取字元'); //按字元將字元串拆分為數組 str = str.Replace("n","m");//將字元串n替換為m str = str.Remove(i,length);//刪除字元... ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...