溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

LNMP架構(gòu)的搭建及應(yīng)用部署方法

發(fā)布時(shí)間:2021-09-09 13:37:47 來(lái)源:億速云 閱讀:158 作者:chen 欄目:系統(tǒng)運(yùn)維

本篇內(nèi)容介紹了“LNMP架構(gòu)的搭建及應(yīng)用部署方法”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!


一、準(zhǔn)備工作:

Centos 7 服務(wù)器、光盤(pán)
MySQL 部署可參考博文:https://blog.51cto.com/14227204/2425596
Nginx 部署可參考博文:https://blog.51cto.com/14227204/2435579
準(zhǔn)備 PHP 的源碼包:https://pan.baidu.com/s/1WARKfQ5ndcL5t5MqXq13zg
提取碼: 4zjx

二、安裝 PHP 解析環(huán)境:
較新版本的 PHP 已經(jīng)自帶了 FPM 模塊,用來(lái)對(duì)PHP解析實(shí)例進(jìn)行管理、優(yōu)化解析效率。所以需要在編譯時(shí) 添加“--enable-fpm”來(lái)啟動(dòng)此模塊。

[root@mysql /]# yum -y  install    gd    libxml2-devel     libjpeg-devel    libpng-devel
[root@mysql /]# tar zxf php-5.5.38.tar.gz  -C   /usr/src/
[root@mysql php-5.5.38]# ./configure   --prefix=/usr/local/php5 
--with-gd 
--with-zlib 
--with-mysql=/usr/local/mysql 
--with-mysqli=/usr/local/mysql/bin/mysql_config 
--with-config-file-path=/usr/local/php5 
--enable-mbstring 
--enable-fpm
--with-jpeg-dir=/usr/lib   && make && make install                  #配置及編譯安裝(過(guò)程較長(zhǎng))

安裝完畢后的調(diào)整:

[root@mysql php-5.5.38]# cp php.ini-development    /usr/local/php5/php.ini
[root@mysql /]# ln -s /usr/local/php5/bin/*   /usr/local/bin/
[root@mysql /]# ln -s /usr/local/php5/sbin/*   /usr/local/sbin/          # 創(chuàng)建鏈接文件,方便命令使用

安裝 ZendGuardLoader:(加速 Nginx 處理速度,可省略)

[root@mysql /]# tar zxf zend-loader-php5.5-linux-x86_64_update1.tar.gz   -C /usr/src/
[root@mysql /]# cd  /usr/src/zend-loader-php5.5-linux-x86_64/
[root@mysql zend-loader-php5.5-linux-x86_64]# cp ZendGuardLoader.so /usr/local/php5/lib/php/                 # 將 zend 文件復(fù)制到PHP目錄中
[root@mysql /]# vim /usr/local/php5/php.ini             # 寫(xiě)入以下兩行
...............
zend_extension=/usr/local/php5/lib/php/ZendGuardLoader.so
zend_loader.enable=1

配置 Nginx 支持 PHP環(huán)境:
若要讓Nginx能夠解析PHP網(wǎng)頁(yè),有兩種方法可以選擇:其一,充當(dāng)中介,將訪問(wèn)PHP頁(yè)面的web請(qǐng)求轉(zhuǎn)交給其他服務(wù)器(LAMP)去處理;其二,通過(guò)使用PHP的FPM模塊來(lái)調(diào)用本機(jī)的PHP環(huán)境。
1、啟用php-pfm進(jìn)程(該進(jìn)程默認(rèn)監(jiān)聽(tīng)9000端口):

[root@mysql ~]# cd /usr/local/php5/etc/
[root@mysql etc]# cp php-fpm.conf.default php-fpm.conf       
[root@mysql etc]# useradd -M -s /sbin/nologin php            # 創(chuàng)建 PHP 用戶
[root@mysql etc]# vim php-fpm.conf
 ......................
pid = run/php-fpm.pid            #確認(rèn)pid文件位置
user = php                            #運(yùn)行用戶
group = php                         #運(yùn)行組
pm.start_servers = 20                    #啟動(dòng)時(shí)開(kāi)啟的進(jìn)程數(shù)
pm.min_spare_servers = 5            #最少空閑進(jìn)程數(shù)
pm.max_spare_servers = 35         #最多空閑進(jìn)程數(shù)
pm.max_children = 50                   #最大子進(jìn)程數(shù)
[root@mysql /]# /usr/local/sbin/php-fpm             # 啟動(dòng) fpm 服務(wù)
[root@mysql /]# killall php-fpm                         # 停止服務(wù)

在 php-fpm.conf 配置文件中,pid配置項(xiàng)指出的PID信息的存放位置,對(duì)應(yīng)的實(shí)際路徑為:/usr/local/php5/var/run/php-fpm.pid,根據(jù)上面的配置,可以修改Nginx服務(wù)腳本,以便在啟動(dòng)/停止Nginx服務(wù)器時(shí)將php-fpm進(jìn)程也自動(dòng)啟動(dòng)/停止。

[root@mysql /]# vim /etc/init.d/nginx 
#!/bin/bash
# chkconfig: - 99 20
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
PROG_FPM="/usr/local/sbin/php-fpm"
PIDF_FPM="/usr/local/php5/var/run/php-fpm.pid"
case "$1" in
  start)
        $PROG
        $PROG_FPM
  ;;
  stop)
        kill -s QUIT $(cat $PIDF)
        kill -s QUIT $(cat $PIDF_FPM)
  ;;
  restart)
        $0 stop
        $0 start
  ;;
  reload)
        kill -s HUP $(cat $PIDF)
        kill -s HUP $(cat $PIDF_FPM)
  ;;
  *)
        echo "USAGE:$0 {start | stop | restart | reload}"
        exit 1
esac
exit 0
[root@mysql /]# systemctl daemon-reload          #重新加載守護(hù)進(jìn)程,否則會(huì)有提示信息
[root@mysql /]# systemctl restart nginx             # 重啟服務(wù)以確認(rèn)腳本無(wú)誤
[root@mysql /]# netstat -anpt | grep 9000
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      64964/php-fpm: mast 
[root@mysql /]# netstat -anpt | grep 80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      64961/nginx: master

經(jīng)過(guò)上面配置,Nginx和fpm就被綁在一塊了,一旦啟動(dòng)或關(guān)閉Nginx服務(wù),php-fpm程序也會(huì)隨之啟動(dòng)或關(guān)閉,不需要額外再啟動(dòng)或關(guān)閉php-fpm。

配置Nginx支持PHP解析:

無(wú)論是將PHP頁(yè)面交給LAMP服務(wù)器去解析,還是調(diào)用本機(jī)的php-fpm進(jìn)程進(jìn)行操作,都需要在“server { }”配置段中添加location設(shè)置,以便指定當(dāng)訪問(wèn)php網(wǎng)頁(yè)時(shí)采用哪種操作。

兩種方法的配置項(xiàng)都可以在配置文件的末尾找到相應(yīng)的模板。復(fù)制到相應(yīng)位置,稍加修改即可用。

對(duì)于第一種方法,可以不執(zhí)行上面php-fpm的配置(轉(zhuǎn)交給其他web服務(wù)器處理,使用如下配置語(yǔ)句):

[root@localhost etc]# vim /usr/local/nginx/conf/nginx.conf
                   ...................#省略部分內(nèi)容
server {
                ...................
location ~ \.php$ {         #訪問(wèn).php頁(yè)面的配置段
            proxy_pass   http://192.168.1.20:80;            # apache服務(wù)器的監(jiān)聽(tīng)地址
        }
             ...................   // 省略部分內(nèi)容
}

這里我使用第二種方法(調(diào)用本機(jī)的php-fpm進(jìn)程),配置如下:

server  {
.....................
location ~ \.php$ {
                root /var/www/test1;
                fastcgi_index  index.php;
                fastcgi_pass   127.0.0.1:9000;
                include        fastcgi.conf
        }
[root@mysql /]# vim /var/www/test1/test.php         # 編寫(xiě)測(cè)試網(wǎng)頁(yè)
<?php
$link=mysqli_connect('localhost','root','pwd123');
if($link) echo "恭喜你,數(shù)據(jù)庫(kù)連接成功?。?!";
mysqli_close($link);
?>

LNMP架構(gòu)的搭建及應(yīng)用部署方法
LNMP 平臺(tái)部署 web 應(yīng)用:
這里我使用的是 Discuz!,一個(gè)社區(qū)論壇??稍?http://www.discuz.net 官方下載。
部署程序代碼:

[root@mysql /]# unzip Discuz_X3.3_SC_UTF8.zip        
[root@mysql /]# mv upload/ /var/www/test1/bbs            # 將 upload 目錄放在網(wǎng)站根目錄下
[root@mysql tt]# chown -R php:php /var/www/test1/bbs/       # 修改屬主屬組

創(chuàng)建數(shù)據(jù)庫(kù):

[root@mysql /]# mysql -u root -p 
Enter password:                     // 輸入密碼
mysql> create database bbs;                     // 創(chuàng)建一個(gè)專(zhuān)屬數(shù)據(jù)庫(kù)
mysql> grant all on bbs.* to runbbs@localhost identified by 'pwd123';       // 設(shè)置權(quán)限
和管理員用戶

安裝 Discuz:
LNMP架構(gòu)的搭建及應(yīng)用部署方法
LNMP架構(gòu)的搭建及應(yīng)用部署方法
LNMP架構(gòu)的搭建及應(yīng)用部署方法
LNMP架構(gòu)的搭建及應(yīng)用部署方法
LNMP架構(gòu)的搭建及應(yīng)用部署方法
LNMP架構(gòu)的搭建及應(yīng)用部署方法
訪問(wèn)www.test1.com/bbs/admin.php 登錄到后臺(tái)看看:
LNMP架構(gòu)的搭建及應(yīng)用部署方法
LNMP架構(gòu)的搭建及應(yīng)用部署方法

“LNMP架構(gòu)的搭建及應(yīng)用部署方法”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI