搭建 LNMP 架構

一? 理論知識

(一)架構圖

(二)CGI? 由來

最早的Web服務器只能簡單她響應瀏覽器發來的HTTP請求,并將存儲在服務器上的HTML文件返回給瀏覽器,也就是靜態html文件,但是后期隨著網站功能增多網站開發也越來越復雜,以至于出現動態技術,比如像php(1995年)、java(1995)、python(1991)語言開發的網站,但是nginx/apache服務器并不能直接運行 php、java這樣的文件,apache實現的方式是打補丁,但是nginx卻通過與第三方基于協議實現,即通過某種特定協議將客戶端請求轉發給第三方服務處理,第三方服務器會新建新的洪程處理用戶的遺求,處理完成后返回數據給Nginx并回收進程,最后nginx在返回給客戶端,那這個約定就是通用網關接口(common gatewayinterface,簡稱CGI),CGI(協議)是web服務器和外部應用程序之間的接口標準,是cgi程序和web服務器之間傳遞信息的標準化接口。

(三)cgi? 和fastcgi? 區別

名稱在web服務器方面在對數據進行處理的進程方面
cgifork一個新的進程進行處理讀取參數,處理數據,然后就結束生命期
fastcgi用tcp方式跟遠程機子上的進程或本地進程建
立連接
要開啟tcp端口,進入循環,等待數據的到來,處理數據

二,??搭建 LNMP 架構具體步驟

(一)?實驗環境

準備安裝 nginx mysql php 軟件

(二)先裝nginx

1,?先安裝依賴包

2,創建程序用戶

(Nginx 服務程序默認以 nobody 身份運行,建議為其創建專門的用戶賬號,以便更準確地控制其訪問權限)

3,解壓?nginx?壓縮包

4, ./configure? 指明安裝目錄? 和模塊

5,make? make install? ? 安裝

6,讓系統識別nginx的操作命令可以自動補全??

7,寫?nginx?的systemctl?配置文件

8,systemctl?重新加載配置文件? ? 加權限? 開機自啟

9,檢測? nginx? 正常

(三)編譯安mysql

1,安裝Mysql環境依賴包

2,解壓?mysql? 壓縮包

3,? 去到源碼包? ?cmake?安裝

4,?make? make install? ?

有點慢? ?耐心等待

5,修改mysql 配置文件

6,更改mysql安裝目錄和配置文件的屬主屬組

7,設置路徑環境變量

檢查是否成功

8,初始化數據庫

9,??添加mysqld系統服務

10??修改mysql 的登錄密碼

給root賬號設置密碼為abc123,提示輸入的是原始密碼(為空)要求輸入的是原密碼直接回車即可

?

11,?授權遠程登錄

(四)?編譯安裝php軟件

1,安裝環境依賴包

2,去到opt?解壓php?壓縮包

3,?去到php? 源碼包? ?./configure

4,? make? make install

(此過程較長?可耐心等候? 建議用多核編譯? 如make? -j4)

make? -j4?后? ? 他會建議你測試? ?這個會有很多時間

這邊我們不聽建議? ? 直接make install

5,路徑優化

6,??調整PHP配置文件

php有三個配置文件:?
php.ini?? ??? ??? ?主配置文件 ?
php-fpm.conf?? ?進程服務配置文件?
www.conf?? ??? ?擴展配置文件

6.1??調整主配置文件

tips:?配置文件很長? ?可以set nu? 顯示行號

?再/? 搜索指定內容? ? ? ? ? ? ?想要跳到某一行?比如1170行? ?1170G

?

6.2??調整擴展配置文件

6.3??調整擴展配置文件

7,?啟動php-fpm

#PHP-FPM(FastCGI Process Manager:FastCGI 進程管理器)是一個 PHPFastCGI 管理器, 由于Nginx服務器不能處理動態頁面,需要由 Nginx 把動態請求交給 php-fpm 進程進行解析。

8,?把?php-fpm? 交給system?管理

(五)配置 Nginx 支持 PHP 解析

1,?改主配置文件

將65?到71行取消注釋

/usr/local/nginx/html$fastcgi_script_name;?? ?

將第69行? ? ?/scripts 修改為nginx的工作目錄

將45行? ?默認文件格式?加上? index.php

2,?重啟?nginx

?

3,??驗證PHP 測試頁

客戶機訪問php? 測試頁

(六)驗證數據庫工作是否正常

1,登錄數據庫

2,新建數據庫用戶,授權

新建數據庫用戶 bbsuser? 密碼是 admin123,并且授權bbsuser 可以 訪問 bbs 數據庫中的所有資源

?

3,??替換原來的測試頁內容

vim /usr/local/nginx/html/index.php ??

4,客戶機再次訪問? 測試頁? 出現access? 即為成功

(七)安裝論壇

1,解壓? Discuz?壓縮包

(這是社區論壇的web應用)

2,?復制論壇目錄

3,調整論壇目錄的權限

標出來的都要可寫 可執行

4,?論壇安裝
http://192.168.217.99/bbs/install/index.php

5? 跟著步驟安裝

5.1

5.2

5.3

注意:本地架設就用localhost,如何不是在在本機上就要填寫IP地址和端口號

5.4?安裝成功? 以管理員身份登錄

(八)安裝博客

1,解壓?博客的壓縮包

2,?把博客?放到nginx?主頁面,拉權限

3,?再建一個數據庫賬戶

4,?訪問安裝主頁面 開始安裝

4.1? 出現報錯

4.2? 去到? nginx?主頁面下的? wordpress? 按照指導手寫一個配置文件

4.3? ?繼續安裝

4.4?成功

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/716433.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/716433.shtml
英文地址,請注明出處:http://en.pswp.cn/news/716433.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

c++階梯之模板初階

1. 泛型編程 void Swap(int& x, int& y) {int tmp x;x y;y tmp; }void Swap(double& x, double& y) {double tmp x;x y;y tmp; }void Swap(char& x, char& y) {char tmp x;x y;y tmp; } int main() {int a 10, b 20;double c 1.1, d 2.2…

《Spring Security 簡易速速上手小冊》第7章 REST API 與微服務安全(2024 最新版)

文章目錄 7.1 保護 REST API7.1.1 基礎知識詳解7.1.2 重點案例:使用 JWT 進行身份驗證和授權案例 Demo 7.1.3 拓展案例 1:API 密鑰認證案例 Demo測試API密鑰認證 7.1.4 拓展案例 2:使用 OAuth2 保護 API案例 Demo測試 OAuth2 保護的 API 7.2 …

讀書筆記-三國演義-夏侯惇

夏侯惇(公元夏侯惇(公元190年-公元220年),字元讓,沛國譙縣(今安徽亳州市)人,是中國東漢末年至三國時期魏國重要將領之一。他是曹操麾下的得力將領,以勇猛忠誠而聞名于世。…

linux安裝matlab獲取許可證

1.點擊許可證 2. 3. 4. 4.主機ID 打開linux輸入 /sbin/ifconfigether后邊的就是 6.計算機登錄名 打開linux輸入 whoami7. 8. 9.

局域網https自簽名教程

們的客戶是在內網環境里面,所以就只能用自簽名證書來搞,我一想這還不容易,就迅速的百度了一下隨便找了個文章開始照貓畫虎,很快就弄完了,但是弄完后發現還是有問題,而且https 還是報不安全, 1、…

(規劃)24屆春招和25屆暑假實習路線準備規劃

春招&&暑假實習: 1.八股: 可以去一些八股網站上面進行閱讀。 2.項目:至少準備1-2個項目,可以條理清晰的進行項目介紹和難點剖析。 3.算法: hot100 ,劍指offer 能刷的很熟,算法關就差…

【R包報錯】使用sceasy包轉換rds文件與h5ad文件報錯PyType_GetFlags

想要將scanpy的h5ad文件轉為rds文件,有一個很方便的包sceasy可以使用,安裝簡單,代碼簡易。 安裝方式 # bioconda package:conda install -c bioconda r-sceasy# R package:devtools::install_github("cellgeni/sceasy")#額外需要…

android系統開發之--ROM編譯,repo使用指南

1、檢出代碼&#xff0c;指定git指定的分支和manifest repo init -u git://xxx/xxx/manifest.git -b <BRANCH> -m <MANIFEST> 這里-m和-b的含義是&#xff1a; 1. 注意到manifest.git本身也是一個git project 2. 所以&#xff0c;-b指定的是使用#1中這個git proj…

我的相關獎項

博士錄取證明 名單第53&#xff1a;https://yzb.bupt.edu.cn/content/content.php?p2_2_651 論文鏈接 第一篇&#xff1a;https://doi.org/10.1186/s13677-022-00373-8 第二篇&#xff1a;https://doi.org/10.1016/j.ipm.2022.103167 第三篇&#xff1a;https://doi.org/10…

Unity 腳本-生命周期常用函數

在Unity中&#xff0c;萬物皆是由組件構成的。 右鍵創建C&#xff03;腳本&#xff0c;拖動腳本到某物體的組件列表。 生命周期相關函數 using System.Collections; using System.Collections.Generic; using UnityEngine;// 必須要繼承 MonoBehaviour 才是一個組件 // 類名…

matplotlib——散點圖和條形圖(python)

散點圖 需求 我們獲得北京2016年三月和十月每天白天最高氣溫&#xff0c;我們現在需要找出氣溫隨時間變化的某種規律。 代碼 # 導入庫 from matplotlib import pyplot as plt import random# 解決中文亂碼 import matplotlib matplotlib.rc("font",family"F…

【筆記】-編程語言以及應用領域

C/C 永遠不會衰敗的語言&#xff0c;適合偏底層&#xff0c;例如&#xff1a;Windows操作系統80%以上都是由C/C完成的&#xff0c;C/C也集成用于寫應用層C/S架構的軟件 JAVA 是真正的跨平臺的語言 “一次編程&#xff0c;到處使用”Java適合應用層的開發&#xff0c;無論是…

Python的錯誤和異常

文章目錄 python的語法錯誤異常異常處理用戶自定義異常定義清理行為預定義的清理行為 python的語法錯誤 語法錯誤&#xff08;Syntax Error&#xff09;是指代碼不符合Python語言的語法規則。當解釋器在執行代碼之前對其進行解析時&#xff0c;如果發現代碼中有語法錯誤&#…

領域驅動設計(Domain-Driven Design DDD)——戰略設計1

一、概述 隨著系統的增長&#xff0c;它會越來越復雜&#xff0c;當我們無法通過分析對象來理解系統的時候&#xff0c;就需要掌握一些操縱和理解大模型的技術了。 最負雄心的企業欲實現一個涵蓋所有業務、緊密集成的系統。因大型公司的業務模型巨大且復雜&#xff0c;很難把它…

2403d,d的108版本更改

原文 編譯器更改 1,在object.d中給TypeInfo_Class添加了.nameSig字段 2,總是在調用點求值像__FILE__此類關鍵字 3,現在可按整數數組轉換十六進制串 4,添加支持插值式序列 庫更改 1,isForwardRange,isBidirectionalRange和isRandomAccessRange現在帶可選元素類型 2,std.uni已…

K8s 鏡像緩存管理 kube-fledged 認知

寫在前面 博文內容為K8s 鏡像緩存管理 kube-fledged 認知內容涉及&#xff1a; kube-fledged 簡單介紹部署以及基本使用 理解不足小伙伴幫忙指正 不必太糾結于當下&#xff0c;也不必太憂慮未來&#xff0c;當你經歷過一些事情的時候&#xff0c;眼前的風景已經和從前不一樣了。…

springboot236基于springboot在線課程管理系統的設計與實現

基于SpringBoot在線課程管理系統的設計與實現 摘要 本文首先介紹了在線課程管理系統的現狀及開發背景&#xff0c;然后論述了系統的設計目標、系統需求、總體設計方案以及系統的詳細設計和實現&#xff0c;最后對在線課程管理系統進行了系統檢測并提出了還需要改進的問題。本系…

Spring Data Redis 使用方式

在Java中操作Redis 1. 在Java中操作Redis1.1 Redis的Java客戶端1.2 Spring Data Redis使用方式1.2.1 介紹1.2.1 環境搭建1.2.3 操作常見類型數據 1. 在Java中操作Redis 1.1 Redis的Java客戶端 Redis 的 Java 客戶端很多&#xff0c;常用的幾種&#xff1a; JedisLettuceSpri…

關于Axios接口請求超時處理與重試的方法教程

在前端開發中&#xff0c;使用Axios作為HTTP客戶端庫進行接口請求是非常常見的做法。然而&#xff0c;在實際開發中&#xff0c;我們經常會遇到網絡不穩定或服務器響應緩慢導致接口請求超時的情況。為了提高用戶體驗和程序的穩定性&#xff0c;我們需要實現接口請求超時的處理與…

UnityAPI的學習——Transform類

Transform類繼承自Component類&#xff0c;并實現了IEnumberable接口。Transform是GameObject必須擁有得一個組件&#xff0c;用來管理所在GameObject對象的坐標位置、選擇角度、和大小縮放。 Transform實現了IEnumberable接口&#xff0c;因此可以在程序中使用foreach()方法快…