本篇內(nèi)容介紹了“LNMP架構(gòu)的搭建及應(yīng)用部署方法”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的唐縣網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
一、準(zhǔn)備工作:
Centos 7 服務(wù)器、光盤
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 模塊,用來對(duì)PHP解析實(shí)例進(jìn)行管理、優(yōu)化解析效率。所以需要在編譯時(shí) 添加“--enable-fpm”來啟動(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 #配置及編譯安裝(過程較長(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 # 寫入以下兩行 ............... zend_extension=/usr/local/php5/lib/php/ZendGuardLoader.so zend_loader.enable=1
配置 Nginx 支持 PHP環(huán)境:
若要讓Nginx能夠解析PHP網(wǎng)頁(yè),有兩種方法可以選擇:其一,充當(dāng)中介,將訪問PHP頁(yè)面的web請(qǐng)求轉(zhuǎn)交給其他服務(wù)器(LAMP)去處理;其二,通過使用PHP的FPM模塊來調(diào)用本機(jī)的PHP環(huán)境。
1、啟用php-pfm進(jìn)程(該進(jìn)程默認(rèn)監(jiān)聽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í)開啟的進(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)過上面配置,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)訪問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$ { #訪問.php頁(yè)面的配置段 proxy_pass http://192.168.1.20:80; # apache服務(wù)器的監(jiān)聽地址 } ................... // 省略部分內(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 # 編寫測(cè)試網(wǎng)頁(yè)
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è)專屬數(shù)據(jù)庫(kù) mysql> grant all on bbs.* to runbbs@localhost identified by 'pwd123'; // 設(shè)置權(quán)限 和管理員用戶
安裝 Discuz:
訪問www.test1.com/bbs/admin.php 登錄到后臺(tái)看看:
“LNMP架構(gòu)的搭建及應(yīng)用部署方法”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。