構建LNMP(Linux、Nginx、MySQL、PHP)網站服務平臺


1、Nginx簡介

Nginx是一款高性能、輕量級Web服務軟件,特點是穩定性和低系統資源消耗,以及對HTTP併發連接的高處理能力,許多知名網站都使用Nginx提供Web服務,如新浪、網易、騰訊、51CTO、人人網等,其源於俄羅斯,市場佔有率第三,Apache第一,微軟的IIS第二。

2、LEMP(LNMP)網站平臺

LEMP也稱爲LNMP平臺,代表Linux下Nginx、MySQL、PHP這種網站服務器架構,同LAMP一樣,LEMP也是應用越爲廣泛的網站服務器架構,受到許多Linux系統工程師的青睞。

 

一、編譯安裝Nginx

1、編譯安裝Nginx

①安裝支持軟件、創建運行用戶

yum -y  install pcre-devel zlib-devel

useradd -M -s /sbin/nologin  nginx

②編譯安裝Nginx,啓用http_ stub_status_module模塊以支持狀態統計

tar zxf nginx-1.0.8.tar.gz -C /usr/src/

cd /usr/src/nginx-1.0.8/

./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module

make && make install

③調整、啓動Nginx服務

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

nginx

netstat -ntpl  | grep "80"

④安裝文本模式瀏覽器elinks並訪問web服務,按q退出

yum -y install elinks

elinks http://localhost

                    

Snip20181007_17.png

⑤編寫Nginx服務腳本並添加爲系統服務,方便管理

vi /etc/init.d/nginx

chmod a+x /etc/init.d/nginx

chkconfig --add nginx

chkconfig --list nginx

service nginx restart

注:elinks文本模式瀏覽器,速度快,但不顯示圖像等多媒體內容

 

二、狀態統計及虛擬主機應用

1、訪問狀態統計

編輯Nginx服務的主配置文件,添加如下內容,以指定訪問位置並打開狀態統計功能

vi /usr/local/nginx/conf/nginx.conf

Snip20181007_18.png

圓角矩形標註: 訪問位置爲/status 打開狀態統計功能 關閉此位置的日誌記錄 service nginx restart

在瀏覽器訪問http://192.168.1.1/status,查看訪問狀態統計信息

Snip20181007_19.png

Active connections表示當前的活動連接數,server accepts handled requests表示已處理的連接信息,三個數字分別表示已處理的連接數、成功的TCP握手次數、已處理的請求數

 

2、基於域名的虛擬主機

①準備網站目錄及測試文件

mkdir -p /var/www/benet

mkdir -p /var/www/accp

echo www.benet.com > /var/www/benet/index.html

echo www.accp.com > /var/www/accp/index.html

②調整主配置文件,添加如下內容

vi /usr/local/nginx/conf/nginx.conf

Snip20181007_24.png

service nginx restart

③分別輸入www.benet.comwww.accp.com進行訪問,驗證虛擬WEB主機,如下所示

 Snip20181007_25.png

注:域名的解析可以自行搭建DNS服務,也可通過修改/etc/hosts文件實現

 

三、構建LEMP網站平臺

1、安裝MySQL數據庫

yum -y remove mysql-server mysql

yum -y install compat-lib* termcap ncurses-devel

編譯安裝MySQL

useradd -M -u 27 -s /sbin/nologin mysql

tar zxf mysql-5.1.55.tar.gz -C /usr/src

cd /usr/src/mysql-5.1.55/

./configure  --prefix=/usr/local/mysql    --with-charset=utf8  --with-collation=utf8_general_ci  --with-extra-charsets=gbk,gb2312

make && make install

初始化數據庫

cp support-files/my-medium.cnf /etc/my.cnf

/usr/local/mysql/bin/mysql_install_db --user=mysql

chown -R root:mysql /usr/local/mysql/

chown -R mysql /usr/local/mysql/var/

ln -s /usr/local/mysql/bin/*  /usr/local/bin/

ln -s /usr/local/mysql/lib/mysql/*  /usr/lib/

ln -s /usr/local/mysql/include/mysql/*  /usr/include/

③配置啓動腳本,啓動服務

cp support-files/mysql.server /etc/init.d/mysqld

chmod a+x /etc/init.d/mysqld

chkconfig --add mysqld

service mysqld start

netstat -anptu | grep mysql

mysqladmin -u root password 123

mysql -u root -p

2、安裝PHP環境

yum -y remove php

yum -y install libxml2-devel libpng-devel pcre-devel

①編譯安裝PHP

tar zxf php-5.3.6.tar.gz -C /usr/src

cd /usr/src/php-5.3.6/

./configure --prefix=/usr/local/php5  --with-mysql=/usr/local/mysql --with-config-file-path=/usr/local/php5 --with-gd --with-zlib --enable-mbstring --enable-fpm

make && make install

:FPM(FastCGI Process Manager,FastCGI進程管理器用來對解析實例進行管理優化解析效率單服務器的LEMP架構通常使用這種方式配置時應啓用此模塊。

調整及配置

cp php.ini-development /usr/local/php5/php.ini

ln -s /usr/local/php5/bin/* /usr/local/bin/

ln -s /usr/local/php5/sbin/* /usr/local/sbin/

安裝PHP加速器ZendGuardLoader提高PHP解析效率

tar zxf ZendGuardLoader-php-5.3-linux-glibc23-i386.tar.gz

cd ZendGuardLoader-php-5.3-linux-glibc23-i386/php-5.3.x/

cp ZendGuardLoader.so /usr/local/php5/lib/php/

vi /usr/local/php5/php.ini     -----添加如下內容

zend_extension=/usr/local/php5/lib/php/ZendGuardLoader.so

zend_loader.enable=1

3、配置Nginx支持PHP環境

建立php-fpm.conf配置文件並進行修改啓動php-fpm程序

cd /usr/local/php5/etc/

cp php-fpm.conf.default php-fpm.conf             

vi php-fpm.conf

pid = run/php-fpm.pid                     -----確認pid文件位置

user = nginx                              -----運行用戶

group = nginx                             -----運行組

pm.start_servers = 20                     -----啓動時開啓的進程數

pm.min_spare_servers = 5                 -----最少空閒進程數

pm.max_spare_servers = 35                -----最多空閒進程數

/usr/local/sbin/php-fpm

netstat -anptu | grep "php-fpm"

②修改Nginx服務腳本,以便啓動/停止Nginx服務時也自動啓動/停止php-fpm

vi /etc/init.d/nginx

Snip20181007_20.png

③配置Nginx支持PHP解析

vi /usr/local/nginx/conf/nginx.conf

圓角矩形標註: 添加此部分內容Snip20181007_26.png

service nginx restart

4、創建PHP測試頁面

①編輯測試頁測試Nginx是否支持php功能

vi /var/www/benet/t.php

<?php

phpinfo();

?> 

訪問測試頁面,輸入http://www.benet.com/t.php,如下所示表示Nginx已支持PHP

Snip20181007_21.png

②編輯測試頁測試Nginx、MySQL、PHP是否協同工作

vi /var/www/benet/test.php

Snip20181007_22.png

訪問測試頁面,輸入http://www.benet.com/test.php,如下所示則表示PHP解析及數據庫連接均正常(可能需要稍等會纔會正常顯示)。

Snip20181007_27.png

 

四、使用LEMP平臺部署“天空網絡電影系統”

服務器:192.168.1.1

客戶機:192.168.1.200

1、部署程序代碼

tar jxf SKYUC_3.2.2_Free_For_PHP5.3.tar.bz2

mv SKYUC_3.2.2_Free_For_PHP5.3/wwwroot/ /var/www/benet/skyuc

cd /var/www/benet/skyuc/

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

2、創建數據庫和專用賬戶

mysql -u root -p

create database skyucdb;

grant all on skyucdb.* to runskyuc@localhost identified by '123';

3、安裝Web應用

在客戶端訪問http://www.benet.com/skyuc/install/index.php進行安裝

Snip20181007_28.png

確保系統環境、目錄權限、緩存可寫性等檢測通過,否則安裝將無法繼續。

Snip20181007_29.png

配置數據庫連接信息,並設置管理賬號和密碼

Snip20181007_30.png

轉移install/目錄並調整其權限,避免重複安裝

mv install install.lock

chmod 600 install.locak

訪問http://www.benet.com/skyuc/index.php站點,可以看到“天空網絡電影系統”站點的首頁

Snip20181007_31.png

訪問http://www.benet.com/skyuc/admincp/index.php輸入管理賬號,可登陸管理後臺

Snip20181007_32.png

結束!

 

補充:

LNMP一鍵安裝包是一個用Linux Shell編寫的可以爲CentOS/RadHat、Debian/Ubuntu VPS(VDS)或獨立主機安裝LNMP(Nginx、MySQL、PHP、phpMyAdmin)生產環境的Shell程序。

無需一個一個的輸入命令,無需值守,編譯安裝優化編譯參數,提高性能,解決不必要的軟件間依賴,特別針對VPS用戶進行了優化。

下載站點:http://lnmp.org/

 

附:

Nginx快速入門視頻課程:http://edu.51cto.com/course/14606.html


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章