搭建 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.rhkb.cn/news/265555.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

k8s service的概念以及创建方法

Service 的功能: Service主要用于提供网络服务,通过Service的定义,能够为客户端应用提供稳定的访问地址(域名或IP地址)和负载均衡功能,以及屏蔽后端Endpoint的变化,是K8s实现微服务的核心资源。…

java面试说自己的优势,2022必看

纯手打“RocketMQ笔记” 第一节:RocketMQ介绍 1.1 核心概念(主题、生产者、消费者、消息) 1.2 RocketMQ的设计理念和目标(设计理念、设计目标) 第二节:RocketMQ中消息的发送 2.1 单向[OneWay]发送&#…

深度学习 精选笔记(5)多层感知机

学习参考: 动手学深度学习2.0Deep-Learning-with-TensorFlow-bookpytorchlightning ①如有冒犯、请联系侵删。 ②已写完的笔记文章会不定时一直修订修改(删、改、增),以达到集多方教程的精华于一文的目的。 ③非常推荐上面(学习参考&#x…

加密与安全_探索常用编码算法

文章目录 概述什么是编码编码分类ASCII码 (最多只能有128个字符)Unicode (用于表示世界上几乎所有的文字和符号)URL编码 (解决服务器只能识别ASCII字符的问题)实现:编码_URLEncoder实现&#xf…

【大数据架构(1)】Lambda Architecture – Realtime Data Processing 论文重点翻译

文章目录 1. INTRODUCTION2. LAMBDA ARCHITECTUREA) BATCH LAYERB) SPEED LAYERC) SERVICE LAYER 3. LIMITATIONS OF THE TRADITIONAL LAMBDAARCHITECTURE4. A PROPOSED SOLUTION1. 架构说明2. 前后架构改进对比 1. INTRODUCTION Lambda架构背后的需求是由于虽然MR能够处理大数…

Gitflow:一种依据 Git 构建的分支管理工作流程模式

文章目录 前言Gitflow 背景Gitflow 中的分支模型Gitflow 的版本号管理简单模拟 Gitflow 工作流 前言 Gitflow 工作流是一种版本控制流程,主要适用于较大规模的团队。这个流程在团队中进行合作时可以避免冲突,并能快速地完成项目,因此在很多软…

Android res/values/locale_config.xml文件

Android res/values/locale_config.xml文件 各个国家/地区在android系统里面的缩写代码。最典型的用途是本地化。 <?xml version"1.0" encoding"utf-8"?> <!-- Copyright (C) 2015 The Android Open Source ProjectLicensed under the Apache L…

How to implement multiple file uploads based on Swagger 3.x in Spring boot 3.x

How to implement multiple file uploads based on Swagger 3.x in Spring boot 3.x Projectpom.xmlOpenAPIConfigFileUploadControllerapplication.yaml Project pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://…

安全防御-第六次

内容安全 攻击可能只是一个点&#xff0c;防御需要全方面进行 DFI和DPI技术--- 深度检测技术 DPI --- 深度包检测技术--- 主要针对完整的数据包&#xff08;数据包分片&#xff0c;分段需要重组&#xff09;&#xff0c;之后对数据包的内容进行识别。&#xff08;应用层&…

ROS 2基础概念#1:计算图(Compute Graph)| ROS 2学习笔记

在ROS中&#xff0c;计算图&#xff08;ROS Compute Graph&#xff09;是一个核心概念&#xff0c;它描述了ROS节点之间的数据流动和通信方式。它不仅仅是一个通信网络&#xff0c;它也反映了ROS设计哲学的核心——灵活性、模块化和可重用性。通过细致探讨计算图的高级特性和实…

使用 JMeter 生成测试数据对 MySQL 进行压力测试

博主历时三年精心创作的《大数据平台架构与原型实现&#xff1a;数据中台建设实战》一书现已由知名IT图书品牌电子工业出版社博文视点出版发行&#xff0c;点击《重磅推荐&#xff1a;建大数据平台太难了&#xff01;给我发个工程原型吧&#xff01;》了解图书详情&#xff0c;…

算法沉淀——动态规划之子序列问题(下)(leetcode真题剖析)

算法沉淀——动态规划之子序列问题 01.最长定差子序列02.最长的斐波那契子序列的长度03.最长等差数列04.等差数列划分 II - 子序列 01.最长定差子序列 题目链接&#xff1a;https://leetcode.cn/problems/longest-arithmetic-subsequence-of-given-difference/ 给你一个整数数…

Promise 介绍与基本使用 - 学习笔记

Promise 介绍与基本使用 1、 Promise 是什么&#xff1f;2、创建 Promise 实例对象3、Promise 实例方法4、Promise 的基本工作流程5、实例方法6、静态方法7、async 和 await7.1、关键字7.2、实例7.3、区别7.4、为什么使用 async/await 比较好&#xff1f; 1、 Promise 是什么&a…

【Vite】解决Vite http proxy error: Error: connect ECONNREFUSED

今天写bug&#xff0c;发现了这个问题 我经过我一晚上的搜索努力&#xff0c;在github上找到了解决办法&#xff0c;不得不说&#xff0c;交友网站还是很好用的。 参考 这一行是关键代码。 因为我连的是本地后台服务&#xff0c;所以最后配置成这样 server: {open: true,pro…

Linux浅学笔记04

目录 Linux实用操作 Linux系统下载软件 yum命令 apt systemctl命令 ln命令 日期和时区 IP地址 主机名 网络传输-下载和网络请求 ping命令 wget命令 curl命令 网络传输-端口 进程 ps 命令 关闭进程命令&#xff1a; 主机状态监控命令 磁盘信息监控&#xff1a…

大数据之Flink优化

文章目录 导言&#xff1a;Flink调优概览第1章 资源配置调优1.1 内存设置1.1.1 TaskManager 内存模型1.1.2 生产资源配置示例 1.2 合理利用 cpu 资源1.2.1 使用 DefaultResourceCalculator 策略1.2.2 使用 DominantResourceCalculator 策略1.2.3 使用DominantResourceCalculato…

消息中间件篇之Kafka-消息不丢失

一、 正常工作流程 生产者发送消息到kafka集群&#xff0c;然后由集群发送到消费者。 但是可能中途会出现消息的丢失。下面是解决方案。 二、 生产者发送消息到Brocker丢失 1. 设置异步发送 //同步发送RecordMetadata recordMetadata kafkaProducer.send(record).get();//异…

机器学习:SVM算法(Python)

一、核函数 kernel_func.py import numpy as npdef linear():"""线性核函数:return:"""def _linear(x_i, x_j):return np.dot(x_i, x_j)return _lineardef poly(degree3, coef01.0):"""多项式核函数:param degree: 阶次:param …

K8S-001-Virtual box - Network Config

A. 配置两个IP&#xff0c; 一个连接内网&#xff0c;一个链接外网: 1. 内网配置(Host only&#xff0c; 不同的 virutal box 的版本可以不一样&#xff0c;这些窗口可能在不同的地方&#xff0c;但是配置的内容是一样的): 静态IP 动态IP 2. 外网&#xff08;创建一个 Networ…

【Linux】进程优先级以及Linux内核进程调度队列的简要介绍

进程优先级 基本概念查看系统进程修改进程的优先级Linux2.6内核进程调度队列的简要介绍和进程优先级有关的概念进程切换 基本概念 为什么会存在进程优先级&#xff1f;   进程优先级用于确定在资源竞争的情况下&#xff0c;哪个进程将被操作系统调度为下一个运行的进程。进程…