搭建博客(二) - 編譯安裝Nginx

System Version: CentOS 6.8

阿里云的ECS服務(wù)器剛買來(lái)是很干凈的,沒(méi)有PHP運(yùn)行的環(huán)境,但是可以購(gòu)買的時(shí)候直接買成套的服務(wù)器,有的需要花錢,有的不需要花錢,這是后來(lái)才知道的。
  我現(xiàn)在的只有一個(gè)操作系統(tǒng),也可以選擇安裝那些自動(dòng)化的腳本。但自己買來(lái)的東西,不去花點(diǎn)時(shí)間折騰折騰,感覺(jué)有點(diǎn)浪費(fèi)這個(gè)機(jī)會(huì),索性就自己安裝一個(gè)LNMP的運(yùn)行環(huán)境好了。

軟件下載

  1. Nginx官方網(wǎng)站
  2. PCRE 8.0

零、編譯環(huán)境準(zhǔn)備

yum -y install gcc gcc-c++ automake autoconf libtool

  • gcc gcc-c++ C編譯器
  • automake autoconf 在Linux環(huán)境下編譯安裝軟件時(shí),用于自動(dòng)生成Makefile文件,后續(xù)可以用./configure、 make、make install編譯安裝
  • libtool 解決庫(kù)的依賴問(wèn)題

一、 Nginx

  1. 訪問(wèn)Nginx官方網(wǎng)站并選擇穩(wěn)定版Nginx,點(diǎn)擊進(jìn)入下載地址。


    選擇穩(wěn)定版Nginx
  2. 找到穩(wěn)定版本的安裝包,右鍵復(fù)制鏈接地址


    復(fù)制鏈接地址
  3. 終端遠(yuǎn)程連接服務(wù)器,并下載到指定目錄(我這里下載到/usr/local/src/),寫此文時(shí),Nginx官方最新的穩(wěn)定版本的包為nginx-1.12.0.tar.gz
    執(zhí)行命令:

    // 下載安裝包
    wget http://nginx.org/download/nginx-1.12.0.tar.gz
    
    // 解壓
    tar -zxvf nginx-1.12.0.tar.gz
    
  4. 進(jìn)入剛解壓出來(lái)的目錄,執(zhí)行:./configure --prefix=/usr/local/web/檢測(cè)編譯環(huán)境,報(bào)錯(cuò)如下:


    大概意思就是HTTP重寫模塊需要PCRE這個(gè)庫(kù)(顯示我當(dāng)前沒(méi)有),還給出了解決辦法:

    • 關(guān)閉這個(gè)模塊:--without-http_rewrite_module
    • 安裝PCRE庫(kù)
    • 把Nginx和PCRE庫(kù)一起靜態(tài)編譯:--with-pcre=<path>

    顯然,逃避不是解決問(wèn)題的好辦法,我需要去安裝這個(gè)庫(kù),然后和Nginx一起編譯。

  5. 安裝PCRE庫(kù)

        # 下載
        wget https://ftp.pcre.org/pub/pcre/pcre-8.00.tar.bz2
            
        # 解壓
        tar jxvf pcre-8.00.tar.bz2
 **報(bào)錯(cuò)**
![](http://upload-images.jianshu.io/upload_images/1818988-74f81aa40404c744.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
還是那一套,下載安裝解決,但是總?cè)ゾ幾g安裝未免太麻煩了,直接yum吧~

**又報(bào)錯(cuò)**
![](http://upload-images.jianshu.io/upload_images/1818988-990c18bf9e271ae1.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

大概意思是說(shuō),zlib這個(gè)玩意兒早已經(jīng)安裝了最新版本了,不能安了。

以前遇到過(guò)這樣的問(wèn)題,zlib這玩意兒是用于壓縮和解壓的模塊,有些應(yīng)用依賴于這個(gè)庫(kù),所以要安裝。

而安裝PHP的運(yùn)行環(huán)境需要編譯zlib擴(kuò)展,就要用到zlib庫(kù)的頭文件等zlib.h,而zlib.h是在zlib-devel包中的,所以解決辦法是:**安裝zlib-devel包**`yum -y install zlib-devel`

安裝`zlib-devel`之后,再次運(yùn)行`./configure --prefix=/usr/local/web/nginx/ --with-pcre=/usr/local/src/pcre-8.00/`終于看到如下界面,說(shuō)明編譯環(huán)境沒(méi)有問(wèn)題了,終于可以編譯安裝了。
![](http://upload-images.jianshu.io/upload_images/1818988-acf8c19914952ab5.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

`make && make install` 安裝。

進(jìn)入到`/usr/loca/web/`目錄下,果然看到nginx的目錄。

`nginx/sbin/nginx` 啟動(dòng)nginx。

`ps aux | grep nginx` 看到已經(jīng)可以看到nginx的兩個(gè)進(jìn)程。

> 通過(guò)內(nèi)網(wǎng)訪問(wèn)查看nginx已經(jīng)工作

![](http://upload-images.jianshu.io/upload_images/1818988-912e234a1b6ef6e5.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

> **外網(wǎng)無(wú)法通過(guò)IP直接訪問(wèn)**
> * ping了一下可以ping通,但telnet 80端口不通。
> * 防火墻壓根沒(méi)開(kāi)啟。
> * `netstat -anp` 看到nginx已經(jīng)在監(jiān)聽(tīng)80端口

最后查到原因:**阿里云ECS的安全組列表里沒(méi)有開(kāi)放80端口**
解決辦法:**添加一個(gè)安全組規(guī)則,開(kāi)放80端口**

至此,外網(wǎng)終于可以通過(guò)IP訪問(wèn)。

**Welcome to nginx!**(2017-05-18 00:45)

![](http://upload-images.jianshu.io/upload_images/1818988-bf3a54246e1ef797.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容