部署LNMP架構及其應用

部署企業LNMP架構

(一)首先安裝nginx服務,具體請見另外一篇關於nginx的博文php

(二)安裝MySQL數據庫html

1、安裝前準備
[root@localhost ~]# rpm -e mysql-server --nodeps      #卸載系統自帶的rpm方式安裝的mysql服務
[root@localhost ~]# rpm -e mysql --nodeps           #卸載系統自帶的rpm方式安裝的mysql客戶端
[root@localhost ~]# rpm -ivh ncurses-devel            #安裝光盤自帶的基礎包
[root@localhost ~]# useradd -M -s /sbin/nologin mysql
2、安裝cmake軟件,代替./configure配置mysql程序
[root@localhost ~]# tar -zxvf cmake-2.8.6.tar.gz -C /usr/src/
[root@localhost ~]# cd /usr/src/cmake-2.8.6/
[root@localhost cmake-2.8.6]# ./configure && gmake && gmake install
3、安裝mysql軟件
[root@localhost ~]# tar -zxvf mysql-5.5.22.tar.gz -C /usr/src/
[root@localhost ~]# cd /usr/src/mysql-5.5.22/
[root@localhost mysql-5.5.22]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DSYSCONFDIR=/etc -
DWITH_EXTRA_CHARSETS=all
[root@localhost mysql-5.5.22]# make && make install
4、安裝後調整
[root@localhost ~]# chown -R mysql:mysql /usr/local/mysql         
[root@localhost ~]# cp /usr/src/mysql-5.5.22/support-files/my-medium.cnf /etc/my.cnf     #建立配置文件
[root@localhost ~]# /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/#初始化數據庫
[root@localhost ~]# ln -s /usr/local/mysql/bin/* /usr/local/bin/                         #設置環境變量    

[root@localhost ~]# cp /usr/src/mysql-5.5.22/support-files/mysql.server /etc/init.d/mysqld   #添加系統服務
[root@localhost ~]# chmod +x /etc/init.d/mysqld
[root@localhost ~]# service mysqld restart [root@localhost ~]# chkconfig --add mysqld [root@localhost ~]# chkconfig mysqld on
[root@localhost ~]# netstat -anpt | grep mysqld           #mysql的端口默認爲3306
五、驗證登錄
[root@localhost ~]# mysqladmin -u root -p password "123.com";history -c         #設置mysql登錄密碼後面接;history -c是爲了安全起見清除命令歷史記錄
[root@localhost ~]# mysql -u root -p123.com        #登錄mysql,"-p+密碼"的方式不建議用,直接mysql -u root -p進入交互便可; 退出的話 quit或者ctrl+D
                                            

 (三)PHP解析環境的安裝node

  配置網頁動靜分離,解析PHP,有兩種方法能夠選擇:一、使用PHP的FPM模塊 二、將訪問PHP頁面的Web請求轉交給Apache服務器去處理,今天咱們介紹第一種。mysql

  FPM模塊(FastCGI Process Manager,FastCGI進程管理器)模塊,用來對PHP解析實例進行管理、優化解析效率。FastCGI將Http Server和動態腳本語言分離開,Nginx專門處理靜態請求,轉發動態請求,好比轉給Tomcat或者Apache等,單臺LNMP架構服務器轉發動態請求一般使用FPM方式來解析PHPlinux

 

一、安裝PHPnginx

 1 ~]# rpm -e php php-cli php-ldap php-common php-mysql --nodeps #將RPM方式安裝的php及相關依賴包(若是已存在)卸載
 2 ~]# yum -y install gd libxml2-devel libjpeg-devel libpng-devel zlib-devel
 3 
 4 ~]# tar -zxvf libmcrypt-2.5.8.tar.gz -C /usr/src/ #安裝數據加密工具
 5 ~]# cd /usr/src/libmcrypt-2.5.8/
 6 ~]# ./configure && make && make install
 7 ~]# ln -s /usr/local/lib/libmcrypt.* /usr/lib/
 8 
 9 ~]# tar -zxvf mhash-0.9.9.9.tar.gz -C /usr/src/ #安裝數據加密工具,依賴libmcrypt
10 ~]# cd /usr/src/mhash-0.9.9.9/
11 ~]# ./configure && make && make install
12 ~]# ln -s /usr/local/lib/libmhash* /usr/lib/
13 
14 ~]# tar -zxvf mcrypt-2.6.8.tar.gz -C /usr/src/ #安裝數據加密工具,依賴libmhash
15 ~]# cd /usr/src/mcrypt-2.6.8/
16 ~]# ./configure && make && make install
17 ~]# export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH #若是./configure報錯,執行此命令
18 
19 ~]# tar -zxvf php-5.3.28.tar.gz -C /usr/src/
20 ~]# cd /usr/src/php-5.3.28/
21 ~]# ./configure --prefix=/usr/local/php --with-mcrypt --with-apxs2=/usr/local/httpd/bin/apxs --with-mysql=/usr/local/mysql --with-config-file-path=/usr/local/php --enable-mbstring
22 
23 ~]#./configure --prefix=/usr/local/php --with-gd --with-zlib --with-
24 mysql=/usr/local/mysql/ --with-config-file-path=/usr/local/php --enable-mbstring --enable-fpm 
25 --with-jpeg-dir=/usr/lib --with-mcrypt
26 ~]# make && make install
27 #----------------------------------------------------------------
28 --with-mcrypt: 加載數據加密等擴展工具支持
29 --with-mysql: 設置Mysql數據庫服務程序的安裝位置
30 --with-config-file-path: 設置PHP的配置文件php.ini將要存放的位置
31 --enable-mbstring: 啓用多字節字符串功能,以便支持中文等代碼
32 #----------------------------------------------------------------

二、配置PHPsql

 1 ~]#cp /usr/src/php-5.3.28/php.ini-development /usr/local/php/php.ini # php.ini-development開發板樣例,用於學習測試php.ini-production生產版,用於實際運營
 2 ~]#vim /usr/local/php/php.ini
 3 修改:
 4 default_charset = "utf-8」            #需修改 //設置默認字符集
 5 file_uploads = On //容許經過PHP網頁上傳文件
 6 upload_max_filesize = 2M //容許上傳的文件大小限制
 7 max_file_uploads = 20 //每一個HTTP最多容許請求上傳的文件數
 8 post_max_size = 8M //每次經過表單post提交的數據量限制
 9 short_open_tag = On                  #需修改 //容許識別PHP短語法標記,即<?…?>
10 ~]#ln -s /usr/local/php/bin/* /usr/local/bin/
11 ~]#ln -s /usr/local/php/sbin/* /usr/local/sbin/

三、添加優化模塊ZendGuardLoader
  ZendGuardLoader適用於PHP 5.3版本,若使用 PHP 5.2版本,應改成較早的ZendOptimizer.數據庫

1 ~]#tar -zxvf ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz -C /usr/src/
2 ~]#cp /usr/src/ZendGuardLoader-php-5.3-linux-glibc23-x86_64/php-5.3.x/ZendGuardLoader.so /usr/local/php/lib/php/
3 ~]#vim /usr/local/php/php.ini
4 添加:
5 zend_extension=/usr/local/php/lib/php/ZendGuardLoader.so
6 zend_loader.enable=1

 

四、啓用php-fpm進程apache

 1 ~]#useradd -M -s /sbin/nologin php
 2 ~]#cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
 3 ~]#vim php-fpm.conf
 4 修改
 5 pid = run/php-fpm.pid    #確認pid文件位置
 6 user = php
 7 group = php
 8 pm.max_children = 50     #最多空閒進程數
 9 pm.start_servers = 20    #啓動時開啓的進程數
10 pm.min_spare_servers = 5 #最少空閒進程數
11 pm.max_spare_servers = 35
12 ~]#/usr/local/sbin/php-fpm
13 ~]#netstat -anpt | grep php-fpm   #默認9000端口
14 ~]#cp /usr/src/php-5.3.28/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm #這裏和apache不一樣,apache調用php模塊不須要php手動開啓,可是LNMP架構須要開啓php-fpm模塊,也能夠把開啓此模塊寫在nginx腳本里,所以,一旦啓動或關閉Nginx服務,php-fpm程序也會隨之啓動或關閉,不須要額外再啓動或關閉php-fpm,具體方法請見文章末尾
15 ~]#chmod +x /etc/init.d/php-fpm
16 ~]#service php-fpm stop
17 ~]#service php-fpm start
18 ~]#chkconfig --add php-fpm
19 ~]#chkconfig php-fpm on

 

(五)配置Nginx支持PHP解析
  不管是將PHP頁面交給LAMP服務器去解析,仍是調用本機的php-fpm進行解析,都須要在"server {}"配置段中添加location 設置,以便指定當訪問.php網頁時候採起何種操做,配置完畢後別忘了重啓Nginxvim

  第一種方法:轉交給其餘Web服務器處理
  使用的配置語句以下,例如,交給IP地址爲 192.168.4.253的LAMP服務器處理,從而實現由Nginx負責靜態頁面,LAMP負責動態頁面的動靜分離效果。

~]#vim /usr/local/nginx/conf/nginx.conf
修改:
server {
……
location ~ \.php$ {                 #訪問.php頁面的配置段 
proxy_pass http://192.168.4.253:80; #Apache服務器的監聽地址
         }
}

  第二種方法:調用本機的php-fpm進程
  使用的配置語句以下,在conf/目錄下的fastcgi.conf 文件中已經包含必需的宏設置,可經過include語句添加進來,打開nginx.conf文件:

server {
……
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000; #修改,這是php-fpm的監聽地址
fastcgi_index index.php; #PHP首頁文件
include fastcgi.conf; #修改包括fastcgi.conf樣本配置
         }
}

(六)PHP頁面訪問測試,請參考LAMP架構

(七)把php-fpm服務控制寫入nginx控制腳本的方法

分別在start和stop下進入相應語句便可,首先定義php-fpm的主程序文件和pid的路徑

PROG_FPM="/usr/local/sbin/php-fpm"
PIDF_FPM="/usr/local/php5/var/run/php-fpm.pid"

而後調用兩個變量

start)
$PROG_FPM
stop)
kill -s QUIT $(cat $PIDF_FPM)
相關文章
相關標籤/搜索