天天看點

Linux上搭建Nginx及簡單配置!

      最近階段自學Linux系統以及相關服務搭建,通過網上查閱前輩們的部落格和相關技術知識搭建了簡單的Nginx服務。過程如下(其中大部分步驟是ITEYE ffgghj前輩的教程,不過在安裝過程中有些細節性的問題,自己通過google以及度娘才得以解決,寫下作為自己以後的參考) 。

一,安裝 

1.標明源碼目錄 

可以是任何目錄,本文標明的是/usr/local/src 

cd /usr/local/src 

2.安裝PCRE庫 

ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/ 下載下傳最新的 PCRE 源碼包,使用下面指令下載下傳編譯和安裝 PCRE 包: 

wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.33.tar.gz 

tar -zxvf pcre-8.21.tar.gz 

cd pcre-8.21 

./configure 

make 

make install 

3.安裝zlib庫 

http://zlib.net/zlib-1.2.8.tar.gz 下載下傳最新的 zlib 源碼包,使用下面指令下載下傳編譯和安裝 zlib包: 

wget http://zlib.net/zlib-1.2.8.tar.gz 

tar -zxvf zlib-1.2.8.tar.gz 

cd zlib-1.2.8 

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

wget http://www.openssl.org/source/openssl-1.0.1c.tar.gz 

tar -zxvf openssl-1.0.1c.tar.gz 

5.安裝nginx 

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

wget http://nginx.org/download/nginx-1.4.2.tar.gz 

tar -zxvf nginx-1.4.2.tar.gz 

cd nginx-1.4.2 

./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.21 \ 

--with-zlib=/usr/local/src/zlib-1.2.8 \ 

--with-openssl=/usr/local/src/openssl-1.0.1c 

--with-pcre=/usr/src/pcre-8.21 指的是pcre-8.21 的源碼路徑。 

--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

在實作步驟5的過程中本人出現了無法實作啟用Nginx指令,通過分析,發現時由于本人的PATH環境變量中并不包括啟用Nginx指令的路徑是以通過手動添加才可以實作,指令如下:

        PATH=$PATH:/usr/local/nginx/sbin     具體的路徑要看個人配置

        可以通過echo $PATH 來确認環境變量路徑有沒有添加進去。

在接下來的過程中執行Nginx時又出現了缺少共享庫資源,可以通過如下指令來檢視缺少什麼庫資源:

    ldd $(which /usr/local/nginx/sbin/nginx)

   輸出結果如下:

    linux-gate.so.1 => (0x0071b000)

    libpthread.so.0 => /lib/libpthread.so.0

(0×00498000)

    libcrypt.so.1 => /lib/libcrypt.so.1

(0×00986000)

    libpcre.so.1 => not found

    libcrypto.so.6 =>

/lib/libcrypto.so.6 (0×00196000)

    libz.so.1 => /lib/libz.so.1

(0×00610000)

    libc.so.6 => /lib/libc.so.6

(0x002d7000)

    /lib/ld-linux.so.2 (0x006a8000)

    libdl.so.2 =>

/lib/libdl.so.2 (0x008c3000)

    其中少了    libpcre.so.1

    可以看出 libpcre.so.1 => not found 并沒有找到,進入/lib目錄中手動連結下

    [root@localhost

lib]# ln -s libpcre.so.0.0.1 libpcre.so.1  通過連結來實作!

  一般情況下這樣就可以啟用Nginx了,可是在本人的VM 虛拟機上還是無法啟用這條指令,是以本人耐着性質又到萬能的網際網路上尋找答案,因為本人沒有實戰經驗隻能向各位前輩學習來補充自己這方面的知識

Linux上搭建Nginx及簡單配置!

,也在此感謝各位技術前輩們在網際網路上共享您們的經驗,這是我對技術人員的崇敬原因之一!

    最終通過一個一個原因的分析和試驗終于找到了根本的原因是Centos 版本差異導緻了:

    在redhat 64位機器之上有這樣的情況.

    在redhat 64位機器上, nginx可能讀取的pcre檔案為/lib64/libpcre.so.1檔案.

    是以在改用下面的軟連接配接:

    Shell代碼  

    [hadoop@SCLABHADOOP01 ~]$ ln -s /usr/local/lib/libpcre.so.1 /lib64/

<b>由于Centos 是免費版的Redhat(本人了解,說的不對還請大家告知),是以可以借鑒以上方法,最終問題得以解決。</b>

6.啟動 

確定系統的 80 端口沒被其他程式占用,運作/usr/local/nginx/nginx 指令來啟動 Nginx, 

netstat -ano|grep 80 

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

sudo /usr/local/nginx/nginx 

打開浏覽器通路此機器的 IP,如果浏覽器出現 Welcome to nginx! 則表示 Nginx 已經安裝并運作成功。 

繼續閱讀