搭建 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.mzph.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()方法快…