您好,登錄后才能下訂單哦!
本篇內容介紹了“LNMP架構的搭建及應用部署方法”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
一、準備工作:
Centos 7 服務器、光盤
MySQL 部署可參考博文:https://blog.51cto.com/14227204/2425596
Nginx 部署可參考博文:https://blog.51cto.com/14227204/2435579
準備 PHP 的源碼包:https://pan.baidu.com/s/1WARKfQ5ndcL5t5MqXq13zg
提取碼: 4zjx
二、安裝 PHP 解析環境:
較新版本的 PHP 已經自帶了 FPM 模塊,用來對PHP解析實例進行管理、優化解析效率。所以需要在編譯時 添加“--enable-fpm”來啟動此模塊。
[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 #配置及編譯安裝(過程較長)
安裝完畢后的調整:
[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/ # 創建鏈接文件,方便命令使用
安裝 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 文件復制到PHP目錄中 [root@mysql /]# vim /usr/local/php5/php.ini # 寫入以下兩行 ............... zend_extension=/usr/local/php5/lib/php/ZendGuardLoader.so zend_loader.enable=1
配置 Nginx 支持 PHP環境:
若要讓Nginx能夠解析PHP網頁,有兩種方法可以選擇:其一,充當中介,將訪問PHP頁面的web請求轉交給其他服務器(LAMP)去處理;其二,通過使用PHP的FPM模塊來調用本機的PHP環境。
1、啟用php-pfm進程(該進程默認監聽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 # 創建 PHP 用戶 [root@mysql etc]# vim php-fpm.conf ...................... pid = run/php-fpm.pid #確認pid文件位置 user = php #運行用戶 group = php #運行組 pm.start_servers = 20 #啟動時開啟的進程數 pm.min_spare_servers = 5 #最少空閑進程數 pm.max_spare_servers = 35 #最多空閑進程數 pm.max_children = 50 #最大子進程數 [root@mysql /]# /usr/local/sbin/php-fpm # 啟動 fpm 服務 [root@mysql /]# killall php-fpm # 停止服務
在 php-fpm.conf 配置文件中,pid配置項指出的PID信息的存放位置,對應的實際路徑為:/usr/local/php5/var/run/php-fpm.pid,根據上面的配置,可以修改Nginx服務腳本,以便在啟動/停止Nginx服務器時將php-fpm進程也自動啟動/停止。
[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 #重新加載守護進程,否則會有提示信息 [root@mysql /]# systemctl restart nginx # 重啟服務以確認腳本無誤 [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
經過上面配置,Nginx和fpm就被綁在一塊了,一旦啟動或關閉Nginx服務,php-fpm程序也會隨之啟動或關閉,不需要額外再啟動或關閉php-fpm。
配置Nginx支持PHP解析:
無論是將PHP頁面交給LAMP服務器去解析,還是調用本機的php-fpm進程進行操作,都需要在“server { }”配置段中添加location設置,以便指定當訪問php網頁時采用哪種操作。
兩種方法的配置項都可以在配置文件的末尾找到相應的模板。復制到相應位置,稍加修改即可用。
對于第一種方法,可以不執行上面php-fpm的配置(轉交給其他web服務器處理,使用如下配置語句):
[root@localhost etc]# vim /usr/local/nginx/conf/nginx.conf ...................#省略部分內容 server { ................... location ~ \.php$ { #訪問.php頁面的配置段 proxy_pass http://192.168.1.20:80; # apache服務器的監聽地址 } ................... // 省略部分內容 }
這里我使用第二種方法(調用本機的php-fpm進程),配置如下:
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 # 編寫測試網頁 <?php $link=mysqli_connect('localhost','root','pwd123'); if($link) echo "恭喜你,數據庫連接成功!!!"; mysqli_close($link); ?>
LNMP 平臺部署 web 應用:
這里我使用的是 Discuz!,一個社區論壇。可在 http://www.discuz.net 官方下載。
部署程序代碼:
[root@mysql /]# unzip Discuz_X3.3_SC_UTF8.zip [root@mysql /]# mv upload/ /var/www/test1/bbs # 將 upload 目錄放在網站根目錄下 [root@mysql tt]# chown -R php:php /var/www/test1/bbs/ # 修改屬主屬組
創建數據庫:
[root@mysql /]# mysql -u root -p Enter password: // 輸入密碼 mysql> create database bbs; // 創建一個專屬數據庫 mysql> grant all on bbs.* to runbbs@localhost identified by 'pwd123'; // 設置權限 和管理員用戶
安裝 Discuz:
訪問www.test1.com/bbs/admin.php 登錄到后臺看看:
“LNMP架構的搭建及應用部署方法”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。