天天看點

linux下的LNMP環境搭建

首先了解一下LNMP這四個字母的意思:可以把四個字母分開來看:L:linux的作業系統;N:Nginx網站服務;M:mysql資料庫;P:php解析環境。

本次主要能學會Nginx網站服務的基本建構;

學會建構Nginx主機;(這個和apache的網站服務的虛拟web主機類似,本次不做過多講解)

學會部署LNMP網站服務平台

一:Nginx服務基礎

        Nginx的優點:(1)穩定性;(2)系統資源消耗低;(3)并發連接配接的高處理能力

          1.安裝及運作控制

                編譯安裝Nginx

                        Nginx的配置及運作需要pcre,zlib等軟體包的支援,一遍提供相應的庫和頭檔案,能確定Nginx的安裝順利完成。是以需要安裝yum倉庫,友善安裝依賴包。

                建立運作使用者群組

                        預設以nodody身份運作。建議為其建立專門的使用者,能準确的控制起通路權限,增加靈活性,降低安全風險。這是Nginx網站服務的單獨運作使用者,不需要登入系統。

                        useradd -M -s /sbin/nologin nginx

                        --perfix            //指定Nginx的安裝路徑

                        --user              //用于指定運作的使用者

                        --group             //使用者指定運作的組

                        --with-http_stub_module    //啟動子產品以支援狀态統計

                        為了是Nginx伺服器的運作友善,可以為主程式nginx建立連結檔案,以便管理者直接執行“nginx”指令就可以調用Nginx的主程式。

                ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

        2.Nginx的運作控制

            檢查配置檔案

                    與apache的主程式httpd類似,Nginx的主程式也提供了“-t”選項來對配置檔案進行檢查,以便找出不當或錯誤的配置。配置檔案Nginx.conf預設位于安裝目錄下的conf/子目錄下。若要檢查其他位置的配置檔案,可使用“-c”選項來指定路徑

                 啟動.停止Nginx

                    直接運作Nginx即可啟動Nginx伺服器,這種方式是使用預設的配置檔案,若要該用其他配置檔案,需添加“-c配置檔案路徑”選項來指定路徑。

                    通過檢查Nginx程式的監聽狀态,或者在浏覽器中通路此web服務,可以确認Nginx服務是否正常運作

                        netstat -anpt | grep nginx

                    主程Nginx支援标準的程序信号,通過kill或killall指令發送HUP信号表示重新加載配置,OUT信号表示退出程序,KILL信号表示殺死程序。

                    Nginx程序運作時,PID号預設存放在log/目錄下的Nginx.pid檔案中

          3.配置檔案nginx.conf

                Nginx伺服器的主配置檔案/usr/local/nginx/conf/nginx.conf中,配置的語句格式為“關鍵字 值;”

                  全局配置

                        由各種配置語句組成,不使用特定的界定标記,全局配置部分包括Nginx服務的運作使用者;工作程序數,錯誤日志,PID存放位置

                        #user nobody;                //運作使用者

                        woker_processes 1;            //工作程序數量

                        #error_log logs/error.log;    //錯誤日志檔案的位置

                        #pid logs/nginx.pid;          //PID檔案位置

                  1/0事件配置

                        使用“events{}”界定标記,用來指定Nginx程序的1/0響應模型,每個程序的連接配接數等設定。

                        若工作程序數為8,每個程序處理4096個連接配接,則允許Nginx正常提供服務的連接配接數已超過3萬多個,具體還是要看伺服器的硬體,網絡帶寬等因素

                  HTTP配置

                        使用“http{}”界定标記,包括通路日志,HTTP端口,網頁目錄,預設字元集,連接配接保持以及後續講解的虛拟web主機,php解析等

二:LNMP架構及應用部署

                衆所周知,LAMP平台是目前應用最為廣泛的網站伺服器架構,其中的“A”對應這web服務軟體Apache HTTP Server。随着Nginx在企業中的使用呈上升趨勢,相信不久的将來LNMP架構會成為這個行業的主流,是以也受更多的Linux工程師所青昧。

            1.建構LNMP平台

                安裝Mysql資料庫

                        為了與Nginx,php環境保持一緻,仍選擇采用源代碼編譯的方式安裝Mysql元件

                        yum -y install ncurses-devel(需要安裝yum倉庫,這是一個很多依賴包的軟體,以便支援mysql資料庫)

                        tar zxvf cmake-2.8.6.tar.gz

                        cd cmake-2.8.6

                        ./configure && gmake && gmake install(編譯安裝Mysql時需要用這個軟體來編譯,是以需要把這個軟體裝上)

                        tar zxvf mysql-5.5.22.tar.gz

                        cd mysql-5.5.22

                        cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 --DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DSYSCONFDIR=/etc && make && make install

                        安裝完畢後還沒有完事,還需要優化資料庫,初始化資料庫,啟動mysql服務

             2.安裝php解析環境

                            較新版本的php已經自帶FPM(程序管理器)子產品,用來對php解析執行個體進行管理,優化解析效率。需要添加“--enable-fpm”以啟用此子產品 

                    編譯安裝php

                            yum -y install gd libxm12-devel libjped-devel libpng-devel

                            tar zxvf php-5.3.28.tar.gz

                            cd php-5.3.28

                            ./configure --prefix=/usr/local/php5 --with-gd --with-zlib --with-mysql=/usr/local/mysql --with-config-file-path=/usr/local/php5 --with-mbstring --enable-fpm --with-fpm --with-jpeg-dir=/usr/lib && make && make install

                     配置Nginx支援PHP環境

                            讓Nginx能解析PHP網頁,兩種方法可以選擇。其一:充當中介,将通路PHP頁面的web請求轉交給其他伺服器去處理,其二:通過使用PHP的FPM子產品來調用本機的PHP環境

                            啟用php-fpm程序

                                    參考php-fpm.conf配置檔案,并修改其中的PID檔案,運作使用者,服務數等相關設定。然後啟動php-fpm程式即可(預設監聽本機的9000端口号)

                                    php-fpm.conf檔案中,pid配置行指出了PID資訊的存放位置,對應的實際路徑/usr/local/php5/var/php-rpm.pid.

                     配置Nginx至此PHP解析

                                 無論是将PHP頁面交給LAMP伺服器去解析,還是調用本機的php=fpm程序進行解析,都需要在“server{}”配置段中添加location設定,以便指定當通路.php網頁是采取何種操作。

                                對于第一種方法(轉交給其他web伺服器處理),使用的配置語句如下

                                    server {

                                        ......

                                            location ~ \.php${ 

                                            }

                                        }

                                對于第二種方法(調用本機的php-fpm程序),使用的配置如下:

                            server {

                                ......

                                      location ~ \.php$ {

                                        root    /var/www/tanhong;

                                        fastcgi_pass    127.0.0.1:9000;

                                        fastcgi_index   index.php

                                        include    fastcgi.conf;

                                       }

                                   }

三。在LNMP平台中部署web應用

            1.下載下傳并部署程式代碼

                        将下載下傳的程式檔案解壓,找到其中的wwwroot檔案夾并将其放置到LNMP伺服器的網站預設根目錄(一般不會根據實際情況,可能網站的目錄會放置在一個隐秘的位置)

                        yum -y install unzip

                        unzip SKYNC.v3.4.2.SOURCE.zip

                        cd SKYNC.v3.4.2.SOUTCE

                        mv wwwroot /usr/local/nginx/html/skync

                        cd /usr/local/nginx/html/skync

                        chown -R php:php admincp/ data/ templates/ upload    

            2.建立資料庫

                    為了降低web應用程式對資料庫的風險,建議設定專用的資料庫及授權使用者,而不是直接使用資料庫的預設root使用者

                        mysql -u root -p     //驗證root使用者的密碼

                        mysql> CREATE DATABASE skyncdb;        //建立資料庫

                        mysql>GRANT all ON skyncdb.* TO RUNSKYNC@localhost IDENTIFIED BY 'sky@uc123'

本文轉自   宏強   51CTO部落格,原文連結:http://blog.51cto.com/tanhong/1881223