您好,登錄后才能下訂單哦!
本篇內(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 平臺(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:
訪問(wèn)www.test1.com/bbs/admin.php 登錄到后臺(tái)看看:
“LNMP架構(gòu)的搭建及應(yīng)用部署方法”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
免責(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)容。