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,如果沒有安裝lsof,則可以通過yum安裝先
lsof -i:80