Linux操作系統(tǒng)基礎(chǔ)與應(yīng)用(CentOS Stream 9) 課件 項(xiàng)目11 使用LNMP架構(gòu)部署網(wǎng)絡(luò)_第1頁
Linux操作系統(tǒng)基礎(chǔ)與應(yīng)用(CentOS Stream 9) 課件 項(xiàng)目11 使用LNMP架構(gòu)部署網(wǎng)絡(luò)_第2頁
Linux操作系統(tǒng)基礎(chǔ)與應(yīng)用(CentOS Stream 9) 課件 項(xiàng)目11 使用LNMP架構(gòu)部署網(wǎng)絡(luò)_第3頁
Linux操作系統(tǒng)基礎(chǔ)與應(yīng)用(CentOS Stream 9) 課件 項(xiàng)目11 使用LNMP架構(gòu)部署網(wǎng)絡(luò)_第4頁
Linux操作系統(tǒng)基礎(chǔ)與應(yīng)用(CentOS Stream 9) 課件 項(xiàng)目11 使用LNMP架構(gòu)部署網(wǎng)絡(luò)_第5頁
已閱讀5頁,還剩114頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

項(xiàng)目11使用LNMP架構(gòu)部署網(wǎng)站SUBTITLEHEREMindShow.fun2023-06-05CONTENTS學(xué)習(xí)目標(biāo)項(xiàng)目情境思維導(dǎo)圖任務(wù)11-1了解LNMP架構(gòu)任務(wù)11-2安裝與配置Nginx服務(wù)器任務(wù)11-3安裝MariaDB數(shù)據(jù)庫任務(wù)11-4安裝配置PHP環(huán)境任務(wù)11-5部署基于LNMP的WordPress博客網(wǎng)站拓展知識(shí)項(xiàng)目實(shí)訓(xùn)項(xiàng)目小結(jié)項(xiàng)目11使用LNMP架構(gòu)部署網(wǎng)站01學(xué)習(xí)目標(biāo)學(xué)習(xí)目標(biāo)知識(shí)目標(biāo)能力目標(biāo)素養(yǎng)目標(biāo)知識(shí)目標(biāo)了解LNMP架構(gòu)的含義熟悉Nginx服務(wù)器熟悉MariaDB數(shù)據(jù)庫熟悉php-fpm服務(wù)能力目標(biāo)能熟練使用Nginx部署web服務(wù)器能熟練使用MariaDB數(shù)據(jù)庫能夠正確架設(shè)LNMP環(huán)境能夠運(yùn)維管理LNMP架構(gòu)環(huán)境素養(yǎng)目標(biāo)能夠嚴(yán)格按照職業(yè)規(guī)范要求進(jìn)行安全操作02任務(wù)11-1了解LNMP架構(gòu)任務(wù)11-1了解LNMP架構(gòu)任務(wù)目標(biāo)11.1.1LNMP是什么11.1.2Nignx是什么11.1.3Mysql、MariaDB是什么11.1.4PHP是什么11.1.5LNMP架構(gòu)工作原理11.1.6LNMP架構(gòu)部署方式任務(wù)目標(biāo)

小陳計(jì)劃在LNMP架構(gòu)下部署自己的個(gè)人博客。在開始實(shí)際部署之前,小陳決定先了解一下LNMP架構(gòu)的概念、基本工作流程以及常用的部署方式。

因此,小陳制定了如下的任務(wù)目標(biāo):了解LNMP是什么。了解Nginx,MYSQL和PHP。熟悉LNMP架構(gòu)工作原理和部署方式。11.1.1LNMP是什么LNMP指的是在Linux操作系統(tǒng)中分別安裝Nginx網(wǎng)頁服務(wù)器、MySQL數(shù)據(jù)庫服務(wù)器和PHP開發(fā)服務(wù)器,以及一些對(duì)應(yīng)的擴(kuò)展軟件而構(gòu)成的一種動(dòng)態(tài)網(wǎng)站運(yùn)行環(huán)境。LNMP簡單說就是:Linux+Nginx+MySQL+PHP或者Linux+Nginx+MARIADB+PHP。

相較于LAMP,LNMP使用Nginx網(wǎng)頁服務(wù)器取代了Apache網(wǎng)頁服務(wù)器。Nginx是一款高性能的HTTP網(wǎng)頁服務(wù)器和反向代理服務(wù)器,它的執(zhí)行效率極高,配置相比Apache也較為簡單,所以在短時(shí)間內(nèi)被國內(nèi)外很多大型公司所采用,大有取代Apache的勢(shì)頭(目前Apache和Ngnix使用量基本持平),這也是本文采用LNMP的原因。Nginx是一款高性能的開源Web服務(wù)器軟件,也可以用作反向代理、負(fù)載均衡器和HTTP緩存。它采用事件驅(qū)動(dòng)模型和異步非阻塞IO處理方式,能夠處理大量并發(fā)連接,同時(shí)占用較少的系統(tǒng)資源。Nginx被廣泛應(yīng)用于高流量的網(wǎng)站和Web應(yīng)用程序中,如亞馬遜、谷歌、微軟等公司都在使用Nginx。1.Nignx的功能Nginx的功能很多,如作為Web服務(wù)器、反向代理服務(wù)器、負(fù)載均衡服務(wù)器和緩存服務(wù)器等。(1)Web服務(wù)器Nginx是一個(gè)高性能的Web服務(wù)器軟件。與Apache相比,它能支持的并發(fā)連接更多,占用服務(wù)器資源較少,并且請(qǐng)求處理效率較高。(2)反向代理服務(wù)器Nginx可以作為HTTP服務(wù)器或數(shù)據(jù)庫服務(wù)的代理服務(wù)器,與Haproxy代理軟件的功能相似,但Nginx的代理功能相對(duì)簡單,處理請(qǐng)求的效率不及Haproxy。(3)負(fù)載均衡服務(wù)器Nginx可以作為負(fù)載均衡服務(wù)器,將客戶端的請(qǐng)求流量分配給后端多個(gè)應(yīng)用程序服務(wù)器,從而提高Web應(yīng)用程序服務(wù)器的性能、可伸縮性與可靠性。(4)緩存服務(wù)器Nginx可以用作緩存服務(wù)器,與專業(yè)的緩存軟件功能相似。11.1.2Nignx是什么2.Nignx的優(yōu)點(diǎn)Nginx的優(yōu)點(diǎn)包括:高性能:采用事件驅(qū)動(dòng)模型和異步非阻塞IO處理方式,能夠處理大量并發(fā)連接,同時(shí)占用較少的系統(tǒng)資源。高可靠性:Nginx具有優(yōu)秀的容錯(cuò)能力和穩(wěn)定性,支持熱部署,能夠在不中斷服務(wù)的情況下進(jìn)行軟件升級(jí)。高擴(kuò)展性:Nginx支持模塊化架構(gòu),用戶可以根據(jù)需要選擇和定制不同的模塊,以滿足不同的應(yīng)用場(chǎng)景。靈活性:Nginx支持反向代理、負(fù)載均衡、HTTP緩存等多種應(yīng)用場(chǎng)景,可以根據(jù)需要進(jìn)行配置和調(diào)整。安全性:Nginx具有豐富的安全功能,如SSL/TLS加密、基于IP地址的訪問控制、請(qǐng)求限速等,可以有效保護(hù)Web應(yīng)用程序的安全。11.1.2Nignx是什么11.1.3Mysql、MariaDB是什么1.Mysql簡介MySQL是一種開源的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS),由瑞典MySQLAB公司開發(fā),后被Sun公司收購,現(xiàn)在屬于Oracle旗下產(chǎn)品。MySQL支持多種操作系統(tǒng),包括Linux、Windows和MacOS等,以及多種編程語言,如C、C++、Java、Python等。MySQL具有高性能、可靠性和安全性等特點(diǎn),在Web應(yīng)用程序、企業(yè)應(yīng)用程序等各種場(chǎng)景中被廣泛應(yīng)用。MySQL數(shù)據(jù)庫有很多版本,具體介紹如下。Alpha版本:一般只在軟件開發(fā)公司內(nèi)部運(yùn)行,不對(duì)外公開。Beta版本:完成功能開發(fā)和所有測(cè)試工作后的產(chǎn)品,不會(huì)存在較大的功能或性能Bug。RC版本:屬于正式發(fā)布前的一個(gè)版本,是最終測(cè)試版本,進(jìn)一步收集Bug或不足之處,然后進(jìn)行修復(fù)和完善。GA版本:軟件產(chǎn)品正式發(fā)布的版本,也是生產(chǎn)環(huán)境中使用的版本。2.MaraiaDBMariaDB由MySQL的創(chuàng)始人MichaelWidenius主導(dǎo)開發(fā),他早前曾以10億美元的價(jià)格,將自己創(chuàng)建的公司MySQLAB公司賣給了SUN公司。此后,隨著SUN被Oracle收購,MySQL的所有權(quán)也落入Oracle的手中。在Oracle控制下的MySQL的開發(fā),有兩個(gè)主要問題:MySQL核心開發(fā)團(tuán)隊(duì)是封閉的,完全沒有Oracle之外的成員參加。很多高手即使有心做貢獻(xiàn),也沒辦法做到。MySQL新版本的發(fā)布速度,在Oracle收購Sun之后大為減緩。MariaDB數(shù)據(jù)庫管理系統(tǒng)是MySQL的一個(gè)分支,主要由開源社區(qū)在維護(hù),采用GPL授權(quán)許可。MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能輕松成為MySQL的代替品。MariaDB在擴(kuò)展功能、存儲(chǔ)引擎以及一些新的功能改進(jìn)方面都強(qiáng)過MySQL。在存儲(chǔ)引擎方面,使用XtraDB來代替MySQL的InnoDB。11.1.3Mysql、MariaDB是什么PHP是一種開源的服務(wù)器端腳本語言,用于Web開發(fā)和動(dòng)態(tài)網(wǎng)頁生成。它可以嵌入HTML中,也可以作為獨(dú)立的腳本運(yùn)行。PHP支持多種數(shù)據(jù)庫,如MySQL、Oracle、PostgreSQL等,以及多種協(xié)議,如HTTP、SMTP、FTP等。PHP的語法簡單易學(xué),具有很好的可移植性和擴(kuò)展性,因此被廣泛應(yīng)用于Web開發(fā)領(lǐng)域。許多知名的網(wǎng)站和Web應(yīng)用程序,如Facebook、Wikipedia、WordPress等都是使用PHP開發(fā)的。PHP具有以下特點(diǎn):1.開源免費(fèi)PHP是一個(gè)受眾大并且擁有眾多開發(fā)者的開源軟件項(xiàng)目,Linux+Nginx+Mysql+PHP是它的經(jīng)典安裝部署方式,相關(guān)的軟件全部都是開源免費(fèi)的,所以使用PHP可以節(jié)約大量的正版授權(quán)費(fèi)用。不過PHP作為一個(gè)開源軟件,它缺乏大型科技公司的支持背景,網(wǎng)絡(luò)上對(duì)它的唱衰也是經(jīng)久不衰,不過它的持續(xù)迭代和性能持續(xù)增強(qiáng)的現(xiàn)實(shí)卻是鼓舞人心的,PHP社區(qū)用實(shí)際行動(dòng)給予各種質(zhì)疑強(qiáng)有力的回?fù)簟?1.1.4PHP是什么2.快捷高效PHP的內(nèi)核是C語言編寫的基礎(chǔ)好效率高,可以用C語言開發(fā)高性能的擴(kuò)展組件;PHP的核心包含了數(shù)量超過1000的內(nèi)置函數(shù),功能應(yīng)有盡有很全面,開箱即用程序代碼簡潔;PHP數(shù)組支持動(dòng)態(tài)擴(kuò)容,支持以數(shù)字、字符串或者混合鍵名的關(guān)聯(lián)數(shù)組,能大幅提高開發(fā)效率;PHP是一門弱類型語言,程序編譯通過率高,相對(duì)其他強(qiáng)類型語言開發(fā)效率快;PHP天然熱部署,在php-fpm運(yùn)行模式下代碼文件覆蓋即完成熱部署;PHP經(jīng)過20多年的發(fā)展,在互聯(lián)網(wǎng)上可以搜到海量的參考資料供參考學(xué)習(xí)。3.性能提升PHP版本越高它的整體性能越高,根據(jù)官方介紹,PHP7.0對(duì)比PHP5.6性能就提升了2倍,PHP7.4已經(jīng)比PHP7.0快了約30%,PHP8.0在性能上又相對(duì)PHP7.4大約改進(jìn)了10%。PHP8.0引入了JIT編譯器特性,同時(shí)加入多種新的語言功能。PHP擁有自己的核心開發(fā)團(tuán)隊(duì),保持5年發(fā)布一個(gè)大版本。11.1.4PHP是什么4.跨平臺(tái)每個(gè)平臺(tái)都有對(duì)應(yīng)的php解釋器版本,指針對(duì)不同平臺(tái)均編譯出目標(biāo)平臺(tái)的二進(jìn)制碼(PHP解釋器),php開發(fā)的程序可以不經(jīng)修改運(yùn)行在Windows、Linux、unix等多個(gè)操作系統(tǒng)上。5.常駐內(nèi)存php-cli模式下可以實(shí)現(xiàn)程序常駐內(nèi)存,各種變量和數(shù)據(jù)庫連接都能長久保存在內(nèi)存實(shí)現(xiàn)資源復(fù)用,比較常用的做法是結(jié)合swoole組件編寫cli框架

6.頁面級(jí)生命周期在php-fpm模式下,所有的變量都是頁面級(jí)的,無論是全局變量還是類的靜態(tài)成員,都會(huì)在頁面執(zhí)行完畢后被清空,對(duì)程序員水平要求低,占用內(nèi)存非常少,特別適合中小型系統(tǒng)的開發(fā)11.1.4PHP是什么11.1.5LNMP架構(gòu)工作原理1.Nginx與PHP的協(xié)同工作機(jī)制Nginx是一個(gè)靜態(tài)Web服務(wù)器和HTTP請(qǐng)求轉(zhuǎn)發(fā)器,它可以直接回應(yīng)客戶端對(duì)靜態(tài)資源的請(qǐng)求,對(duì)動(dòng)態(tài)資源的請(qǐng)求需要通過快速通用網(wǎng)關(guān)接口(FastCommonGatewayInterface,F(xiàn)astCGl)轉(zhuǎn)發(fā)給后臺(tái)的腳本程序解析服務(wù)器進(jìn)行處理。FastCGI采用C/S結(jié)構(gòu),可以將Web服務(wù)器和腳本程序解析服務(wù)器相分離,讓W(xué)eb服務(wù)器專一地處理靜態(tài)請(qǐng)求和轉(zhuǎn)發(fā)動(dòng)態(tài)請(qǐng)求,而腳本程序解析服務(wù)器則專一地處理動(dòng)態(tài)請(qǐng)求。在LNMP架構(gòu)的服務(wù)器中,處理PHP動(dòng)態(tài)資源的后臺(tái)服務(wù)是PHPFastCGI進(jìn)程管理器(PHPFastCGlProcessManager,PHP-FPM)。PHP-FPM啟動(dòng)后包含master和worker兩種進(jìn)程:master進(jìn)程只有一個(gè),它負(fù)責(zé)監(jiān)聽、接收來自Nginx服務(wù)器的請(qǐng)求和管理調(diào)度worker進(jìn)程;而worker進(jìn)程一般有多個(gè),每個(gè)進(jìn)程的內(nèi)部都嵌入了一個(gè)PHP解釋器,負(fù)責(zé)解析執(zhí)行PHP程序。由此可見Nginx服務(wù)器負(fù)責(zé)處理靜態(tài)資源請(qǐng)求,PHP-FPM負(fù)責(zé)處理PHP腳本程序,兩者都遵循FastCGI協(xié)議進(jìn)行通信,完成協(xié)同工作。2.LNMP服務(wù)器的工作原理LNMP服務(wù)器的工作流程如圖11.2所示。11.1.5LNMP架構(gòu)工作原理圖11.2LNMP服務(wù)器工作流程LNMP服務(wù)器的具體工作過程如下:用戶通過瀏覽器發(fā)送HTTPRequest請(qǐng)求到Nginx服務(wù)器,該服務(wù)器響應(yīng)并處理請(qǐng)求。如果請(qǐng)求的是靜態(tài)資源,則該服務(wù)器直接將靜態(tài)資源(CSS、圖片、視頻等)返回。如果請(qǐng)求的是動(dòng)態(tài)數(shù)據(jù),則Nginx服務(wù)器將PHP腳本程序通過FastCGI協(xié)議傳輸給PHP-FPM,由PHP-FPM響應(yīng),然后將PHP腳本程序交給worker進(jìn)程(內(nèi)嵌了PHP解釋器)解析執(zhí)行??梢酝瑫r(shí)啟動(dòng)多個(gè)worker進(jìn)程,并發(fā)執(zhí)行。PHP腳本程序執(zhí)行完畢,將解析后的腳本返回到PHP-FPM,PHP-FPM再以FastCGI的形式將腳本信息傳送給Nginx服務(wù)器。Nginx服務(wù)器再以HTTPReponse形式傳送給瀏覽器,瀏覽器進(jìn)行解析與渲染,最后呈現(xiàn)給用戶。11.1.5LNMP架構(gòu)工作原理

部署LNMP環(huán)境的方式有多種,一般根據(jù)應(yīng)用的實(shí)際情況來進(jìn)行選擇。常見的LNMP部署方式有三種,分別是:使用dnf安裝:簡單,部署速度快,適合新手,不能定制化。使用二進(jìn)制源碼:部署需要的時(shí)間長,需要配置的項(xiàng)較多,但能夠自由定制。使用一鍵安裝包:簡單,部署時(shí)間適中,可以進(jìn)行定制化部署。11.1.6LNMP架構(gòu)部署方式03任務(wù)11-2安裝與配置Nginx服務(wù)器任務(wù)11-2安裝與配置Nginx服務(wù)器任務(wù)目標(biāo)11.2.1安裝Nginx軟件包11.2.2熟悉Nginx的配置文件任務(wù)目標(biāo)

小陳經(jīng)過比較后發(fā)現(xiàn),Nginx作為一款高性能的靜態(tài)Web服務(wù)器,具有占用內(nèi)存少且具備強(qiáng)大的并發(fā)能力的特點(diǎn)。因此,小陳決定在他的博客服務(wù)器上使用Nginx來搭建。

因此,小陳制定了如下的任務(wù)目標(biāo):掌握Nginx軟件的基本安裝方法。熟悉Nginx服務(wù)器主配置文件。能夠配置虛擬主機(jī)。說明:為了學(xué)習(xí)方便,小陳的服務(wù)器部署在虛擬機(jī)環(huán)境下。以最小化方式安裝了CentOSStream9系統(tǒng),以NAT模式連接外網(wǎng)??蛻舳耸褂梦锢頇C(jī)模擬。虛擬機(jī)節(jié)點(diǎn)的具體規(guī)劃如表11.1所示。11.2.1安裝Nginx軟件包1.安裝Nignx(1)安裝Nginx所需要的依賴庫軟件。首先配置啟用epel-release源,增加可用的rpm軟件包。(2)使用dnf安裝Nignx軟件包。(3)啟動(dòng)Nginx服務(wù),并設(shè)置為開機(jī)自啟并檢查服務(wù)狀態(tài)。(4)查看80端口的監(jiān)聽狀態(tài)。11.2.1安裝Nginx軟件包(5)查看Nginx進(jìn)程運(yùn)行狀態(tài)。11.2.1安裝Nginx軟件包2.配置防火墻配置firewalld防火墻,開啟服務(wù)器的TCP80號(hào)端口。3.關(guān)閉SElinux安全系統(tǒng)11.2.1安裝Nginx軟件包11.2.1安裝Nginx軟件包4.訪問測(cè)試頁

在物理機(jī)的瀏覽器地址欄中輸如“00”,打開Nginx服務(wù)器的測(cè)試頁面,如圖11.3所示。圖11.3Nginx服務(wù)器測(cè)試頁面安裝完Nginx后,需記住如表11.2所示的Nginx常用目錄。11.2.2熟悉Nginx的配置文件1.Nginx主配置文件Nginx的主配置文件/etc/nginx/nginx.conf中的每個(gè)指令必須以分號(hào)結(jié)束,文中以#號(hào)開頭的行是注釋行。整個(gè)配置文件以“塊”的形式組織在一起,每個(gè)塊一般以一對(duì)大括號(hào)“{}”表示(全局塊例外)。Nginx的配置文件相當(dāng)簡潔,主要分為三部分:全局塊、events塊、http塊。全局塊:配置服務(wù)器整體運(yùn)行的配置指令,如worker_processes1。events塊:影響Nginx服務(wù)器與用戶的網(wǎng)絡(luò)連接,如worker_connections1024。http塊:此塊包含兩個(gè)子塊,http全局塊和server塊。11.2.2熟悉Nginx的配置文件11.2.2熟悉Nignx的配置文件11.2.2熟悉Nginx的配置文件2.配置NginxNginx提供了三種類型的虛擬主機(jī)配置,包括基于域名的虛擬主機(jī)、基于IP的虛擬主機(jī)和基于端口的虛擬主機(jī)。接下來將逐一介紹這三種虛擬主機(jī)的配置方法。配置基于域名的虛擬主機(jī)創(chuàng)建基礎(chǔ)站點(diǎn)目錄這里不再使用Nginx默認(rèn)的站點(diǎn)目錄,在生產(chǎn)環(huán)境下也不建議使用默認(rèn)目錄。手工創(chuàng)建需要的站點(diǎn)目錄并設(shè)置相關(guān)權(quán)限。11.2.2熟悉Nginx的配置文件②創(chuàng)建默認(rèn)首頁文件創(chuàng)建好站點(diǎn)目錄后,接下來創(chuàng)建兩個(gè)站點(diǎn)的默認(rèn)首頁文件。11.2.2熟悉Nginx的配置文件③配置基于域名的虛擬主機(jī)

在/etc/nginx/conf.d/目錄下新建ceshi.conf虛擬機(jī)配置文件,內(nèi)容如下。11.2.2熟悉Nginx的配置文件11.2.2熟悉Nginx的配置文件注意:對(duì)于Nginx,servername參數(shù)可以是一個(gè)域名,也可以是多個(gè)域名并列,域名之間用空格隔開。訪問多個(gè)域名時(shí),其實(shí)訪問的是同一個(gè)網(wǎng)站。其格式如下:在servername中還可以使用通配符“*",同樣是由3部分組成的,其格式如下:11.2.2熟悉Nginx的配置文件④修改/etc/hosts文件,實(shí)現(xiàn)本機(jī)地址解析

由于本服務(wù)器是用來在本地測(cè)試,沒有公網(wǎng)上的正是域名,所以這里采取本機(jī)地址解析的方法,操作如下。(生產(chǎn)環(huán)境下請(qǐng)用其他方式解析域名)11.2.2熟悉Nginx的配置文件⑤語法檢查并重載服務(wù)配置文件⑥瀏覽器測(cè)試在本服務(wù)器中打開瀏覽器訪問相對(duì)應(yīng)的域名,訪問結(jié)果如圖11.4所示。(注意:使用物理機(jī)訪問可能會(huì)出錯(cuò))。圖11.4使用域名訪問結(jié)果11.2.2熟悉Nginx的配置文件(2)配置基于ip的虛擬主機(jī)添加IP地址Linux系統(tǒng)支持IP別名的功能。配置基于IP的虛擬主機(jī),即給Nginx服務(wù)器主機(jī)配置多個(gè)不同的IP,所以需要在同一物理網(wǎng)卡中使用nmcli命令添加多個(gè)不同的IP地址。具體執(zhí)行命令如下:11.2.2熟悉Nginx的配置文件②改虛擬機(jī)配置文件

修/etc/nginx/conf.d/目錄下ceshi.conf虛擬機(jī)配置文件,內(nèi)容如下:11.2.2熟悉Nginx的配置文件11.2.2熟悉Nginx的配置文件③語法檢查并重載服務(wù)配置文件④瀏覽器測(cè)試在客戶機(jī)中打開瀏覽器訪問相對(duì)應(yīng)的IP,訪問結(jié)果如圖11.5所示。圖11.5使用IP訪問結(jié)果11.2.2熟悉Nginx的配置文件(3)配置基于端口的虛擬主機(jī)通過上面兩種虛擬主機(jī)配置方式可以看出,虛擬機(jī)配置起來相當(dāng)?shù)暮唵??;诙丝诘奶摂M主機(jī)配置也一樣,只需要開放不同的端口給Nginx,然后客戶端通過訪問不同的端口來訪問不同的虛擬主機(jī)。修改虛擬機(jī)配置文件修/etc/nginx/conf.d/目錄下ceshi.conf虛擬機(jī)配置文件,內(nèi)容如下:11.2.2熟悉Nginx的配置文件11.2.2熟悉Nginx的配置文件②設(shè)置防火墻配置firewalld防火墻,開啟服務(wù)器的TCP8001和TCP8002號(hào)端口。11.2.2熟悉Nginx的配置文件③語法檢查并重載服務(wù)配置文件④瀏覽器測(cè)試在客戶機(jī)中打開瀏覽器訪問相對(duì)應(yīng)的IP端口號(hào),訪問結(jié)果如圖11.6所示。圖11.6使用IP端口訪問結(jié)果04任務(wù)11-3安裝MariaDB數(shù)據(jù)庫任務(wù)11-3安裝MaraiaDB數(shù)據(jù)庫任務(wù)目標(biāo)11.3.1安裝MaraiaDB11.3.2初始MaraiaDB

11.3.3管理MaraiaDB任務(wù)目標(biāo)

陳通過之前的學(xué)習(xí)了解到,MariaDB是MySQL的一個(gè)分支,并且在幾乎所有方面都與MySQL兼容,甚至在某些方面更優(yōu)越。最重要的是,MariaDB是由一個(gè)開放的社區(qū)進(jìn)行維護(hù),不存在版權(quán)問題。因此,小陳決定在自己的服務(wù)器上使用MariaDB來提供數(shù)據(jù)庫服務(wù)。因此,小陳制定如下的任務(wù)目標(biāo):能夠正確安裝MariaDB。熟悉MariaDB的配置。能完成MariaDB的基本管理操作。11.3.1安裝MaraisDB

在LNMP架構(gòu)中,早期的M表示MySQL數(shù)據(jù)庫系統(tǒng),因?yàn)樵缙诘腖inux發(fā)行版本多數(shù)都使用MySQL,而近年來,RHEL及CentOS等新的發(fā)行版本中,開始陸續(xù)采用MariaDB代替MySQL。MariaDB兼容MySQL,支持多種類型的操作系統(tǒng)及編程語言。MariaDB可用于GPL、LGPL和BSD等多種許可協(xié)議,避免了MySQL被Oracle收購后引發(fā)的許可證問題,它提供了多種存儲(chǔ)引擎(包括高性能存儲(chǔ)引擎),用于與其他關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)的數(shù)據(jù)源一起工作。MariaDB和MySQL在性能上基本保持一致,兩者的操作命令也十分相似。從務(wù)實(shí)的角度來講,在掌握了MariaDB數(shù)據(jù)庫的命令和基本操作之后,在今后的工作中即使遇到MySQL數(shù)據(jù)庫,也可以快速上手。1.MaraiaDBCentOSStream9的資源庫中已經(jīng)包含了MariaDB,所以這里我們直接安裝:2.MaraiDB初始位置這里要做三件事情。首先啟動(dòng)MariaDB服務(wù),然后將其設(shè)置為開機(jī)自啟,最后查看其運(yùn)行狀態(tài)。11.3.1安裝MaraisDB11.3.2初始化MaraisDB1.初始化MariaDB數(shù)據(jù)庫MariaDB數(shù)據(jù)庫軟件安裝完畢并成功啟動(dòng)后請(qǐng)不要立即使用。為了確保數(shù)據(jù)庫的安全性和正常運(yùn)轉(zhuǎn),需要先對(duì)數(shù)據(jù)庫程序進(jìn)行初始化操作。這個(gè)初始化操作涉及下面5個(gè)步驟:設(shè)置root管理員在數(shù)據(jù)庫中的密碼值(注意,該密碼并非root管理員在系統(tǒng)中的密碼,這里的密碼值默認(rèn)應(yīng)該為空,可直接按回車鍵)。設(shè)置root管理員在數(shù)據(jù)庫中的專有密碼。刪除匿名用戶,并使用root管理員從遠(yuǎn)程登錄數(shù)據(jù)庫,以確保數(shù)據(jù)庫上運(yùn)行的業(yè)務(wù)的安全性。刪除默認(rèn)的測(cè)試數(shù)據(jù)庫,取消測(cè)試數(shù)據(jù)庫的一系列訪問權(quán)限。刷新授權(quán)列表,讓初始化的設(shè)定立即生效。11.3.2初始化MaraisDB2.登錄MariaDB數(shù)據(jù)庫

配置完畢,即可使用root(初始化時(shí)設(shè)置的密碼是000000)用戶登錄MariaDB數(shù)據(jù)庫,操作如下:

1.數(shù)據(jù)庫操作對(duì)數(shù)據(jù)庫的常用操作包括:創(chuàng)建數(shù)據(jù)庫、選擇數(shù)據(jù)庫和刪除數(shù)據(jù)庫(1)創(chuàng)建數(shù)據(jù)庫登錄數(shù)據(jù)庫后,使用“createdatabase數(shù)據(jù)庫名;”完成對(duì)數(shù)據(jù)庫的創(chuàng)建。然后可以使用“showdatabases;”命令來查看目前所有數(shù)據(jù)庫信息。MySQL數(shù)據(jù)庫默認(rèn)自帶3個(gè)數(shù)據(jù)庫,information_schema數(shù)據(jù)庫存儲(chǔ)相關(guān)信息,mysql數(shù)據(jù)庫存儲(chǔ)授權(quán)表,performance_schema數(shù)據(jù)庫存儲(chǔ)數(shù)據(jù)庫性能參數(shù),可以用來提升數(shù)據(jù)庫的性能。創(chuàng)建couman數(shù)據(jù)庫操作如下:11.3.3管理MaraisDB(2)選擇數(shù)據(jù)庫

當(dāng)需要對(duì)某一數(shù)據(jù)庫進(jìn)行操作時(shí),首先需要選擇該數(shù)據(jù)庫才能操作,使用“use數(shù)據(jù)庫名字;”命令來完成。選擇couman數(shù)據(jù)庫操作如下:(3)刪除數(shù)據(jù)庫使用“dropdatabase數(shù)據(jù)庫名;”命令刪除指定數(shù)據(jù)庫。刪除數(shù)據(jù)庫時(shí),連同數(shù)據(jù)庫里的所有表(包括其中的數(shù)據(jù))和數(shù)據(jù)庫目錄都將被刪除。刪除couman數(shù)據(jù)庫操作如下:11.3.3管理MaraisDB

當(dāng)刪除不存在的數(shù)據(jù)庫時(shí),會(huì)提示錯(cuò)誤信息,為了避免這種情況發(fā)生,可以在命令中加入ifexists子句。刪除一個(gè)可能不存在的數(shù)據(jù)庫操作如下:11.3.3管理MaraisDB2.數(shù)據(jù)表操作

創(chuàng)建數(shù)據(jù)庫之后,需要進(jìn)一步創(chuàng)建和管理數(shù)據(jù)表。每個(gè)表由行和列組成,每行是一條記錄,每個(gè)記錄包含多個(gè)列(字段)。對(duì)數(shù)據(jù)庫表的常用操作主要包括:創(chuàng)建表,修改表,克隆表,刪除表。(1)創(chuàng)建表

創(chuàng)建表的SQL語句格式如下。11.3.3管理MaraisDB

其中字段類型,也稱作列類型,規(guī)定了某個(gè)字段所允許輸入的數(shù)據(jù)類型。常見的字段類型見表11.3。11.3.3管理MaraisDB字段約束用于進(jìn)一步約束某個(gè)字段允許輸入的數(shù)據(jù)。常見的字段約束見表11.4。表11.4字段約束11.3.3管理MaraisDB表約束用于確定表的主鍵、外鍵和索引等。見表11.5。表11.5表級(jí)約束11.3.3管理MaraisDB

表類型指明了表中數(shù)據(jù)存儲(chǔ)的格式,MariaDB支持多個(gè)存儲(chǔ)引擎作為不同類型的處理器。默認(rèn)的為“innoDB”處理器,對(duì)應(yīng)的存儲(chǔ)引擎為“innoDB”。MariaDB數(shù)據(jù)庫支持的表存儲(chǔ)引擎見表11.6。表11.6表存儲(chǔ)引擎11.3.3管理MaraisDB11.3.3管理MaraisDB11.3.3管理MaraisDB

一旦數(shù)據(jù)庫創(chuàng)建成功,會(huì)在/var/lib/mysql下生成一個(gè)與數(shù)據(jù)庫同名的目錄。表創(chuàng)建成功后會(huì)在該目錄中生成“表名.frm”文件表示新建的表格式,表數(shù)據(jù)和索引放在“表名.ibd”文件中。

本例中我們要?jiǎng)?chuàng)建以下三個(gè)表:員工信息表(employee),字段:員工號(hào)(eno)、姓名(ename)、性別(sex)、項(xiàng)目組(groups);考核內(nèi)容表(exam),字段:內(nèi)容序號(hào)(exid)、考核內(nèi)容(cname);員工考核信息表(score,)字段:序號(hào)(scid)、員工號(hào)(eno)、內(nèi)容序號(hào)(exid)、成績(score)。11.3.3管理MaraisDB(2)修改表

修改表的SQL語句格式如下。

可以對(duì)表的結(jié)構(gòu)進(jìn)行修改,包括添加、刪除或修改字段,更改表名或類型等。操作包括add、change、modify、drop和rename等。11.3.3管理MaraisDB(3)克隆表

克隆表的SQL語句格式如下。

克隆的內(nèi)容包括表結(jié)構(gòu)、表中的數(shù)據(jù)和約束,并用源表數(shù)據(jù)填充副本。(4)刪除表

刪除表的SQL語句格式如下。

用于刪除一個(gè)或多個(gè)已存在的表,表結(jié)構(gòu)和表中的數(shù)據(jù)都將被刪除。11.3.3管理MaraisDB3.處理表數(shù)據(jù)

創(chuàng)建數(shù)據(jù)庫和表后,下一步要做的就是處理數(shù)據(jù)。一般情況下,需要使用SQL語句來增加,更新,查詢和刪除數(shù)據(jù)表中的記錄。(1)增加記錄

增加的SQL語句格式如下。(2)更新記錄

更新的SQL語句格式如下。11.3.3管理MaraisDB(3)查詢記錄

查詢的SQL語句格式如下。(4)刪除記錄

刪除的SQL語句格式如下。11.3.3管理MaraisDB4.數(shù)據(jù)庫的權(quán)限管理(1)數(shù)據(jù)庫權(quán)限介紹與處理邏輯MariaDB數(shù)據(jù)庫服務(wù)采用了基于白名單的權(quán)限策略,這意味著明確指定了哪些用戶可以執(zhí)行哪些操作,但無法明確指定哪些用戶不能執(zhí)行某些操作。權(quán)限驗(yàn)證主要通過MariaDB庫中的五個(gè)數(shù)據(jù)字典表(mysql.user、mysql.db、mysql.tables_priv、mysql.columns_priv、c_priv)來實(shí)現(xiàn)對(duì)不同粒度權(quán)限需求的控制。下表列出了MariaDB數(shù)據(jù)庫中授權(quán)表的表名和說明。11.3.3管理MaraisDB表11.7MariaDB數(shù)據(jù)庫中授權(quán)表11.3.3管理MaraisDB

當(dāng)用戶登錄數(shù)據(jù)庫時(shí),會(huì)根據(jù)這幾張表中的內(nèi)容來決定用戶的訪問權(quán)限,決定過程如下:首先從user表中的host,user,passwd這三個(gè)字段判斷連接的IP,用戶名,密碼是否存在表中,存在則通過身份驗(yàn)證;然后進(jìn)行權(quán)限分配,首先檢查全局表user,如果user中對(duì)應(yīng)的操作權(quán)限為Y,則此用戶對(duì)所有數(shù)據(jù)庫的該操作權(quán)限為Y,將不再檢查db,tables_priv和columents_priv中的權(quán)限;如果為N,則到db表中檢查此用戶對(duì)應(yīng)的具體數(shù)據(jù)庫,并得到db中為Y的權(quán)限;如果db中為N,則檢查tables_priv表中此數(shù)據(jù)庫對(duì)應(yīng)的具體表,取得表中的權(quán)限Y,并依次進(jìn)行類推。MariaDB數(shù)據(jù)庫提供了兩種方法修改授權(quán)表中的訪問權(quán)限??梢允褂胕nsert、update和delete等SQL語句手工修改權(quán)限表中的信息或者使用grant和revoke命令。對(duì)比兩種方法,后一種更加簡單而方便。

grant命令用于授予權(quán)限,而revoke命令用戶撤銷權(quán)限。11.3.3管理MaraisDBgrant命令的格式:revoke命令的格式:11.3.3管理MaraisDB

數(shù)據(jù)庫的權(quán)限級(jí)別見表11.8,如果針對(duì)數(shù)據(jù)庫所有內(nèi)容或所有訪問地址進(jìn)行設(shè)置可以使用“%”。

表11.8數(shù)據(jù)庫的權(quán)限級(jí)別11.3.3管理MaraisDB11.3.3管理MaraisDB通常在管理數(shù)據(jù)庫權(quán)限時(shí)可以基于以下幾點(diǎn)來設(shè)置用戶權(quán)限:只賦予能滿足用戶需要的最小權(quán)限,防止用戶操作不當(dāng)。比如用戶只是需要查詢數(shù)據(jù)信息,則只賦予select權(quán)限,不用給用戶賦予update、insert或delete權(quán)限。創(chuàng)建用戶的時(shí)候限制用戶的登錄主機(jī),一般是限制成指定IP或者內(nèi)網(wǎng)IP段。如果安裝完數(shù)據(jù)庫自動(dòng)創(chuàng)建了無密碼用戶,則最好將這些用戶刪除。為每個(gè)用戶設(shè)置滿足密碼復(fù)雜度的密碼。定期清理不需要的用戶,回收權(quán)限或者刪除用戶。11.3.3管理MaraisDB(2)數(shù)據(jù)庫權(quán)限及用戶管理Grant命令創(chuàng)建一個(gè)只允許本地登錄的用戶zhangping,并允許將權(quán)限賦予別的用戶,密碼為Zhangping11??!。說明:allprivileges:表示所有權(quán)限,也可以是select、update等具體權(quán)限。on:用來指定權(quán)限針對(duì)的數(shù)據(jù)庫和表。*.*:前面的*號(hào)用來指定數(shù)據(jù)庫名稱,后面的*號(hào)用來指定表名。如果使用*,則表示所有。to:表示將權(quán)限賦予某個(gè)用戶。zhangping@'localhost':表示zhangping用戶,@后面接限制的主機(jī),可以是IP,IP段,域名以及%,%號(hào)表示任何地方。identifiedby:指定用戶的登錄密碼。withgrantoption:表示該用戶可以將自己的權(quán)限賦予別的用戶。11.3.3管理MaraisDB②權(quán)限刷新當(dāng)管理員對(duì)用戶的權(quán)限進(jìn)行了修改操作,是否即時(shí)生效呢?針對(duì)這個(gè)問題,答案是:看情況!如果是通過GRANT、REVOKE、SETPASSWORD、RENAMEUSER等MySQL提供的命令執(zhí)行修改,那么權(quán)限將馬上生效,因?yàn)檫@些命令將觸發(fā)系統(tǒng)重新載入授權(quán)表(GRANTTABLES)到內(nèi)存。如果是手動(dòng)修改字典表方式(INSERT、UPDATE、DELETE),這種情況下權(quán)限并不會(huì)馬上生效,除非重啟MariaDB服務(wù),或者DBA主動(dòng)觸發(fā)授權(quán)表的重新裝載。當(dāng)授權(quán)表被重新加載后,對(duì)當(dāng)前已連接的客戶端又會(huì)產(chǎn)生哪些影響呢?具體如下:表或列粒度的權(quán)限將在客戶端下次執(zhí)行操作時(shí)生效。數(shù)據(jù)庫級(jí)的權(quán)限將在客戶端執(zhí)行USEdb_name語句,切換數(shù)據(jù)庫時(shí)生效。全局權(quán)限和密碼修改,對(duì)當(dāng)前已連接的客戶端無效,下次連接時(shí)才會(huì)生效。11.3.3管理MaraisDB③查看權(quán)限

查看當(dāng)前用戶權(quán)限:

查看dpuser0101用戶權(quán)限:11.3.3管理MaraisDB

查看dpuser0102用戶權(quán)限:④收回權(quán)限

回收用戶zhangping的權(quán)限:11.3.3管理MaraisDB⑤對(duì)用戶重命名

將用戶名zhangping重命名為liqiang;⑥修改用戶密碼

將liqiang用戶的密碼修改為liqiang123?、邉h除用戶

刪除數(shù)據(jù)庫的用戶liqiang;11.3.3管理MaraisDB5.數(shù)據(jù)庫的備份與恢復(fù)

數(shù)據(jù)庫的備份與恢復(fù)是非常重要的環(huán)節(jié)。由于意外或者其他人為失誤而導(dǎo)致的數(shù)據(jù)丟失,會(huì)造成數(shù)據(jù)的嚴(yán)重?fù)p失。因此,定期進(jìn)行數(shù)據(jù)庫備份是非常有必要的。

在MariaDB數(shù)據(jù)庫中,可以使用命令進(jìn)行數(shù)據(jù)備份與恢復(fù)。它是將數(shù)據(jù)庫中的數(shù)據(jù)備份成一個(gè)擴(kuò)展名為.sql的文本文件,此文件可以用于數(shù)據(jù)庫的恢復(fù)。

(1)備份數(shù)據(jù)庫

用于進(jìn)行數(shù)據(jù)備份的命令是mysqldump命令。這個(gè)命令存儲(chǔ)于mariaDB目錄的bin目錄中。mysqldump命令格式如下:例如:備份couman數(shù)據(jù)庫,到root用戶的家目錄,備份名為couman.sql。操作如下:11.3.3管理MaraisDB

(2)恢復(fù)數(shù)據(jù)庫

恢復(fù)數(shù)據(jù)庫的命令格式如下:

輸入命令后,根據(jù)提示輸入相應(yīng)密碼就可以完成數(shù)據(jù)庫的恢復(fù)。需要注意,在恢復(fù)數(shù)據(jù)庫之前首先要?jiǎng)h除已有數(shù)據(jù)庫,然后再次創(chuàng)建數(shù)據(jù)庫,最后再恢復(fù)。11.3.3管理MaraisDB6.重置MariaDB數(shù)據(jù)庫管理員root密碼

在工作學(xué)習(xí)過程中,很多人在初始設(shè)置之后會(huì)較長時(shí)間不再使用MariaDB數(shù)據(jù)庫,從而導(dǎo)致數(shù)據(jù)庫管理員密碼遺忘,這時(shí)候就需要通過重置密碼來登錄數(shù)據(jù)庫。不同版本的MariaDB數(shù)據(jù)庫在進(jìn)行密碼重置時(shí)方法略有差異,下面介紹的方法適用于10.1.20-MariaDB及更高版本。這里我們以10.5.16-MariaDB版本為例,具體的操作過程如下:(1)確認(rèn)數(shù)據(jù)庫版本號(hào)。(2)停止數(shù)據(jù)庫11.3.3管理MaraisDB(3)在沒有權(quán)限檢查的情況下重新啟動(dòng)數(shù)據(jù)庫服務(wù)器。如果在不加載有關(guān)用戶權(quán)限的信息的情況下運(yùn)行MariaDB,則可以使用root權(quán)限訪問數(shù)據(jù)庫命令行而無需提供密碼。為此,我們需要停止數(shù)據(jù)庫加載授權(quán)表,該表存儲(chǔ)用戶權(quán)限信息。因?yàn)檫@個(gè)操作有安全風(fēng)險(xiǎn),所以我們還要跳過網(wǎng)絡(luò)以防止其他客戶端連接。11.3.3管理MaraisDB(4)更改數(shù)據(jù)庫管理員root密碼。11.3.3管理MaraisDB(5)重啟并登錄數(shù)據(jù)庫服務(wù)器。05任務(wù)11-4安裝配置PHP環(huán)境任務(wù)11-4安裝配置PHP環(huán)境任務(wù)目標(biāo)11.4.1安裝PHP環(huán)境11.4.2配置php-fpm服務(wù)11.4.3配置Nginx服務(wù)器對(duì)PHP程序的支持任務(wù)目標(biāo)Nginx服務(wù)器本身無法處理PHP程序,因此需要與php-fpm服務(wù)配合來解析PHP程序。為了完成LNMP平臺(tái)的搭建,小陳需要進(jìn)一步學(xué)習(xí)如何配置PHP環(huán)境以完成LNMP平臺(tái)的部署。

因此,小陳制定如下的任務(wù)目標(biāo):配置EPEL擴(kuò)展源。正確安裝php-fpm軟件。正確架設(shè)LNMP平臺(tái)。11.4.1安裝PHP環(huán)境php-fpm是用于解析PHP程序的fastCGI接口管理程序,提供了Nginx服務(wù)器和PHP語言交互的接口。php-fpm是配置php-fpm服務(wù)的軟件包,它作為PHP環(huán)境擴(kuò)展模塊進(jìn)行安裝。在某些版本的Linux系統(tǒng)中默認(rèn)沒有提供php-fpm包,建議在系統(tǒng)中安裝EPEL源。如果安裝過程中EPEL源中沒有我們需要的軟件包,則可以考慮安裝Remi源。

1.配置EPEL源2.安裝php-fpm軟件(1)安裝php-fpm軟件使用dnf命令安裝php、php-mysqlnd、php-fpm軟件包。其中:php-mysqlnd是PHP的擴(kuò)展模塊,可以是PHP程序連接MySQL。php-fpm用來并發(fā)處理所有的PHP動(dòng)態(tài)請(qǐng)求。11.4.1安裝PHP環(huán)境(2)啟動(dòng)php-fpm服務(wù),將其置為開機(jī)自啟并檢查運(yùn)行狀態(tài)(3)查看PHP版本號(hào)11.4.2配置php-fpm服務(wù)1.主配置文件

php-fpm的主配置文件為/etc/php-fpm.conf,主要包含php-fpm的全局配置,一般不需要修改。

在php-fpm的配置文件中,以分號(hào)“;”開頭的行是注釋行。下面為了方便介紹php-fpm配置文件中的代碼,我們過濾了文件中原有的注釋行。

查看/etc/php-fom.conf文件中有效的配置(過濾掉分號(hào)“;”開頭的注釋行)內(nèi)空如下:11.4.2配置php-fpm服務(wù)2.進(jìn)程池配置文件php-fpm作為一個(gè)獨(dú)立的服務(wù)運(yùn)行,在php-fpm的進(jìn)程池中運(yùn)行多個(gè)子進(jìn)程,用來并發(fā)處理所有的PHP動(dòng)態(tài)請(qǐng)求。Nginx服務(wù)器接收到PHHP動(dòng)態(tài)請(qǐng)求時(shí),會(huì)轉(zhuǎn)發(fā)給php-fpm,php-fpm服務(wù)調(diào)用進(jìn)程池中的子進(jìn)程來處理動(dòng)態(tài)請(qǐng)求。如果進(jìn)程池中的資源耗盡,會(huì)導(dǎo)致請(qǐng)求無法處理。php-fpm進(jìn)程池的配置文件存放在/etc/php-fpm.d/目錄中,配置文件名一般以“.conf”作為后綴。php-fpm默認(rèn)只配置了一個(gè)進(jìn)程池,其配置文件是/etc/php-fpm.d/www.conf。查看到/etc/php-fpm.d/www.conf文件中有效的配置內(nèi)容如下。11.4.2配置php-fpm服務(wù)11.4.3配置Nginx服務(wù)器對(duì)PHP程序的支持Nginx服務(wù)器本身只是一個(gè)靜態(tài)Web文件服務(wù)器,無法處理PHP程序。通過配置Nginx服務(wù)器以支持PHP,當(dāng)Nginx服務(wù)器接收到客戶端的PHP請(qǐng)求時(shí),它會(huì)將請(qǐng)求發(fā)送給后端的php-fpm進(jìn)行處理,然后接收php-fpm返回的處理結(jié)果,并將結(jié)果返回給客戶端。這樣實(shí)現(xiàn)了Nginx對(duì)PHP程序的支持。11.4.3配置Nginx服務(wù)器對(duì)PHP程序的支持1.配置Nginx服務(wù)器的虛擬主機(jī)以默認(rèn)的虛擬主機(jī)為例,配置Nginx服務(wù)器支持PHP程序,步驟如下。(1)使用nano編輯器打開/etc/nginx/conf.d/default.conf文件。

(2)配置location/{}塊。在index參數(shù)的最前面位置增加“index.php",設(shè)置網(wǎng)站的首頁為index.php。(3)刪除location~\.php${}塊前的“#”注釋符。(4)配置location~\.php${}塊。修改網(wǎng)站的根目錄,將root參數(shù)值改為/usr/share/nginx/html。將參數(shù)SCRIPTFILENAME值更改為$document_root$fastcgi_script_name。(5)保存配置文件。11.4.3配置Nginx服務(wù)器對(duì)PHP程序的支持(5)保存配置文件。修改完畢的/etc/nginx/conf.d/default.cond文件內(nèi)容如下。11.4.3配置Nginx服務(wù)器對(duì)PHP程序的支持2.檢查生效的Nginx和php-fpm(1)檢查配置文件/etc/nginx/nginx.conf的語法正確性(2)重新Nginx配置說明:執(zhí)行“nginx-sreload”命令與“systemctlrestartnginx”命令都可以更新Nginx配置,它們的區(qū)別如下:執(zhí)行“nginx-sreload”命令表示向Nginx發(fā)送reload(重新加載)信號(hào),可以實(shí)現(xiàn)不停服務(wù),平滑地更新Nginx配置文件。執(zhí)行“systemctlrestartnginx”命令會(huì)重啟Nginx,造成服務(wù)中斷,不適合生產(chǎn)環(huán)境。11.4.3配置Nginx服務(wù)器對(duì)PHP程序的支持(3)檢查配置文件/etc/php-fpm.conf語法正確性(4)重新載入php-fpm服務(wù)11.4.3配置Nginx服務(wù)器對(duì)PHP程序的支持3.測(cè)試LNMP服務(wù)器

在LNMP服務(wù)器上創(chuàng)建PHP測(cè)試頁文件phpinfo.php,保存到網(wǎng)站的根目錄/usr/share/nginx/html中,phpinfo.php的內(nèi)容如下:之后在本地物理機(jī)打開瀏覽器。在地址欄輸入00/phpinfo.php。返回結(jié)果如圖11.7所示,表示LNMP環(huán)境部署成功。(建議測(cè)試完成之后刪除phpinfo.php文件)

圖11.7PHP測(cè)試頁06任務(wù)11-5部署基于LNMP的WordPress博客網(wǎng)站任務(wù)11-5部署基于LNMP的WordPress博客網(wǎng)站任務(wù)目標(biāo)11.5.1安裝WordPress

11.5.2為WordPress創(chuàng)建MaraiaDB數(shù)據(jù)庫環(huán)境11.5.3配置WordPress

11.5.4配置Nginx虛擬主機(jī)11.5.5通過Web界面完成WordPress配置

任務(wù)目標(biāo)

通過之前的學(xué)習(xí),小陳成功地部署了LNMP平臺(tái),離自己的目標(biāo)也越來越近了。下一步的工作是在LNMP平臺(tái)上部署自己的個(gè)人網(wǎng)站。WordPress是一款使用PHP語言和MySQL數(shù)據(jù)庫開發(fā)的免費(fèi)個(gè)人博客網(wǎng)站系統(tǒng),用戶可以在WordPress中文網(wǎng)站獲取WordPress網(wǎng)站的安裝包,然后在LNMP服務(wù)器上搭建自己的博客網(wǎng)站。接下來,小陳計(jì)劃在單節(jié)點(diǎn)LNMP服務(wù)器上部署WordPress網(wǎng)站。

因此,小陳制定如下的任務(wù)目標(biāo):獲取WordPress程序代碼。在LNMP平臺(tái)安裝WordPress。完成參數(shù)配置。11.5.1安裝WordPressWordPress是一種開源的內(nèi)容管理系統(tǒng)(CMS),用于創(chuàng)建和管理網(wǎng)站和博客。它基于PHP語言和MySQL數(shù)據(jù)庫,提供了豐富的功能和插件,可以輕松創(chuàng)建各種類型的網(wǎng)站,如個(gè)人博客、商業(yè)網(wǎng)站、新聞門戶等。WordPress具有易用性、靈活性和可擴(kuò)展性等特點(diǎn),用戶可以通過安裝不同的主題和插件,來定制自己的網(wǎng)站風(fēng)格和功能。WordPress是目前最流行的CMS之一,被廣泛應(yīng)用于全球各地的網(wǎng)站建設(shè)。圖11.8WordPress圖標(biāo)11.5.1安裝WordPress1.下載WordPress至網(wǎng)站根目錄并解壓

注意:這時(shí)候WordPress的目錄是/usr/share/nginx/html/WordPress。這個(gè)目錄就是WordPress網(wǎng)站的根目錄,后面配置其他參數(shù)時(shí)會(huì)用到。當(dāng)然你也可以使用其他目錄。11.5.1安裝WordPress2.創(chuàng)建上傳目錄Wordpress使用過程中需要上傳圖片和附件。因此,這里我們要?jiǎng)?chuàng)建一個(gè)專用的上傳目錄。3.修改網(wǎng)絡(luò)根目錄權(quán)限

將網(wǎng)站根目錄的權(quán)限用戶更新為Nginx對(duì)應(yīng)的用戶,解決WordPress更新版本、上傳主題或安裝插件時(shí),提示需要FTP登錄憑證或無法創(chuàng)建目錄問題。

11.5.2為WordPress創(chuàng)建MaraiaDB環(huán)境

使用root賬戶登錄MariaDB數(shù)據(jù)庫,創(chuàng)建WordPress數(shù)據(jù)庫,然后創(chuàng)建wp用戶(密碼為KUt*&3421),并授予wp用戶對(duì)WordPress數(shù)據(jù)庫的所有權(quán)限。

注意:生產(chǎn)環(huán)境下一定要注意密碼的強(qiáng)度,弱密碼很容易被攻破,會(huì)產(chǎn)生極大的安全隱患。11.5.3配置WordPress

將工作目錄切換到

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論