LNMP環境的搭建?

本文的主要目的是在centos上面搭建當今效能相對較好的一套伺服器環境 LNMP 。即:Linux + Nginx + MySQL + Php

工具/原料

centos系統

配置好的yum 和網路

方法/步驟

LNMP 環境搭建

作者:tao12345666333(百度ID)

部落格:

貼吧:centos 吧

時間:2013.9.29

一、寫在前面

本文的主要目的是在centos上面搭建當今效能相對較好的一套伺服器環境LNMP。即:Linux + Nginx + MySQL + Php 。由於 Nginx 比Apache更輕巧一些,而且在nginx的官方網站上面對於nginx處理的多併發量是100000。所以,在現在網站會面臨這種大併發量的時候,使用Nginx 來作為伺服器程式確實是一個不錯的選擇,不過如果使用LAMP環境的話,對於php的執行過程是使用mod-php這樣的一個apache 模組,但使用LNMP的話,是使用一個叫做php-fpm 的一個單獨的程序來完成處理,而且,Nginx 本身也是一個獨立的程序,所以對資源佔用就比LAMP環境下多了一個程序。至於對於LAMP和LNMP 環境的選擇就見仁見智吧。

本文的編譯安裝環境是在使用centos6.3 DVD 安裝的minimal Desktop 下的,只是安裝了預設的軟體包,所以,在編譯過程中需要安裝其他需要的軟體或者庫檔案,本次安裝的都是在此時官方提供的stable版本,適合現在的情況。為了方便截圖和寫文章的方便本次操作是在win 7 + VM 環境中的。在看本文時,如果有任何問題可以到百度centos吧提問。謝謝大家支援。

LNMP環境的搭建

LNMP環境的搭建

LNMP環境的搭建

在進行編譯安裝的過程前,因為這個是一個新安裝的系統,所以為了不必要的麻煩,我們需要安裝開發工具包,執行如下的命令

# yumgroupinstall "DevelopmentTools"–y

進行開發工具的安裝,確保編譯安裝的過程可以順利的執行

還有要確認一下本機是否有安裝過apache 服務,使用

# yum list grep httpd

或者是使用如下程式碼:

# rpm –qa grep http*

來確認一下在本機上面是否安裝了apache服務,因為同樣都是web服務,為了避免之後可能出現的問題,如果在本機上面之前有安裝過apache服務或者相關服務,請提前移除。在本次的編譯安裝過程中會使用到很多需要支援的庫檔案,可以在安裝的過程中,等到程式報錯,再進行安裝,或者是提前安裝完成,避免在安裝過程中出現的各種問題,其次在編譯安裝的過程中會有很多的依賴關係和編譯引數需要進行設定,所以最好是提前配置好本地的yum 源或者是確保網路正常,在對php進行編譯安裝的過程中需要用到很多的庫檔案支援,但是在centos的自帶源中是沒有提供的,需要 repoforge 的源的支援,可以在 官網上下載yum 源的包,安裝後就可以有repoforge源的支援了。下面先演示如何得到repoforge 源的支援:

首先登陸到repoforge的官網,在usage 目錄下面找到自己對應的版本的yum源的包,下載後,執行

# rpm –ivh repoforgeXXXX.rpm

安裝過程結束後,就獲得了repoforge源的支援了,可以到/etc/yum.repos.d/目錄下進行檢視

1、編譯安裝Nginx

首先上Nginx 的官網 右側的download頁面下載所需要的Nginx的原始碼包,注意選擇linux下的stable版本,如下圖:

下載完成後,切換到下載目錄,如圖:

LNMP環境的搭建

LNMP環境的搭建

執行了./configure之後就會進行一系列的檢查,以便於之後的編譯過程(編譯過程的原理自行搜尋進行學習)然後的操作如下圖,執行make 會生成makefile 用於引導之後的安裝過程,操作如下圖:可能會報錯,那就按照提示安裝即可

LNMP環境的搭建

執行了./configure之後就會進行一系列的檢查,以便於之後的編譯過程(編譯過程的原理自行搜尋進行學習)然後的操作如下圖,執行make 會生成makefile 用於引導之後的安裝過程,操作如下圖:可能會報錯,那就按照提示安裝即可

執行過了 #make install操作就安裝完成了,Nginx的預設安裝路徑是在/usr/local/nginx目錄下的

接下來我們啟動Nginx 服務,進入到/usr/local/nginx/sbin目錄,執行./nginx就可以啟動Nginx服務了。

接下來,我們使用預設設定可以直接在瀏覽器中訪問localhost ,看到如下的介面就說明我們已經安裝而且啟動成功了Nginx 了,當然我安裝完成後修改了Nginx的預設監聽埠,預設埠是8000,我修改成了80 ,所以預設訪問的話,可以輸入 localhost:8000 進行訪問,即可。

至此,我們的Nginx 已經編譯安裝完成,我們接下來開始對php進行編譯安裝!

LNMP環境的搭建

LNMP環境的搭建

LNMP環境的搭建

LNMP環境的搭建

LNMP環境的搭建

LNMP環境的搭建

2、編譯安裝php

首先還是同樣的上 官網下載php的原始碼包,然後進入下載目錄,進行解壓,接下來我們仍然可以看見有 configure 檔案,但是我們不直接執行編譯過程,這裡涉及到一些編譯引數的問題,我來進行一些說明:

(1)在執行./configure時是可以使用 – 進行引數連線設定的,比如安裝位置、還有支援的功能、不支援的功能,以及對其他服務的關聯設定等等都是在編譯的過程就可以直接自定義的,在上一篇的LAMP 環境安裝的文章中,我們對php進行測試的頁面,裡面顯示了php的編譯方式那些引數已經支援功能的

這裡我先上一張php安裝完成之後,phpinfo的介面截圖 :

這裡就是那部分引數我貼出來,然後進行說明:

LNMP環境的搭建

LNMP環境的搭建

LNMP環境的搭建

LNMP環境的搭建

LNMP環境的搭建

LNMP環境的搭建

我們進入到php的安裝目錄/usr/local/php下,在sbin目錄下面有一個可執行檔案php-fpm但是這個時候我們不能直接執行,因為我們還沒有配置檔案,在/usr/local/php/etc/ 有一個php-fpm.conf.default檔案,這個其實就是php 本身提供的一個配置檔案的模板,只要改名成為php-fpm.conf 即可,此外我們還沒有php的配置檔案php.ini。這個檔案要到php 的原始碼包檔案中的目錄中找,有一個php.int. production 檔案,這個檔案其實就是php官方提供的預設的php的配置檔案,只要複製到/usr/local/php/etc/改名為php.ini 即可。具體程式碼操作是:

cp php.ini.production /usr/local/php/etc/php.ini

這樣php 也就成功編譯完成!

3、關聯nginx 和 php-fpm

這個時候我們要開始修改nginx的配置檔案了,進行nginx和php-fpm的關聯,這個檔案的預設位置是/usr/local/nginx/conf/nginx.conf其實在nginx的預設配置檔案中就已經寫入了對php-fpm的支援了,只不過是註釋掉了,我們可以刪除掉那部分註釋,並且修改部分引數即可完成配置。如下圖:

修改用紅色框選的部分為 $符合前面是網站根目錄。儲存之後我們就已經關聯結束。接下來是測試階段。

4、測試是否安裝成功

在/usr/local/nginx/html/建立一個php 頁面進行測試。如下圖:

輸入php程式碼,呼叫phpinfo()方法進行測試。下面的訪問我是在windows下訪問的,有些朋友可能訪問會失敗,這個還是我之前在LAMP環境安裝中提到過的iptables和selinux的訪問控制。只要執行

#iptables –F 和 # setenforce 0 即可清除iptables表和設定selinux為可訪問。

同時注意下面的關於mysql的資訊,因為在編譯的時候我就已經在編譯引數裡面設定過了mysql的配置資訊,包括mysql的安裝位置和服務之類的。所以這個時候mysql應該也是會關聯成功的

LNMP環境的搭建

LNMP環境的搭建

LNMP環境的搭建

LNMP環境的搭建

LNMP環境的搭建

LNMP環境的搭建

LNMP環境的搭建

LNMP環境的搭建

LNMP環境的搭建

文章資訊

授權資訊:

本文采用署名-非商業性使用-相同方式共享2.5 中國大陸進行許可

在傳播過程中您

可以

複製、發行、展覽、表演、放映、廣播或通過資訊網路傳播本作品

創作演繹作品

必須

署名—您必須按照作者或者許可人指定的方式對作品進行署名。

非商業性使用—您不得將本作品用於商業目的。

相同方式共享—如果您改變、轉換本作品或者以本作品為基礎進行創作,您只能採用與本協議相同的許可協議釋出基於本作品的演繹作品。

LNMP環境的搭建

環境, 效能, 伺服器, 目的,
相關問題答案