LNMP架构介绍及配置--部署Discuz社区论坛与wordpress博客

一、LNMP架构定义

1、LNMP定义

LNMP(Linux Nginx Mysql Php)是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写;Linux系统下Nginx+MySQL+PHP这种网站服务器架构。

  • Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统。代表版本有:debian、centos、ubuntu、fedora、gentoo等。
  • Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好
  • MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。MySQL不仅是开放源代码的,也因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。
  • PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。因为PHP的开源性、免费性、快捷性等特点使其成为目前最流行的编程语言。
四种软件均为免费开源软件,组合到一起,成为一个免费、高效、扩展性强的网站服务系统。Nginx使用更少的资源,支持更多的并发连接,体现更高的效率;Nginx 既可以在内部直接支持Rails和PHP,也可以支持作为 HTTP代理服务器对外进行服务;Nginx 安装非常的简单,配置文件非常简洁(还能够支持perl语法);Nginx支持平滑加载新的配置,还能够在不间断服务的情况下进行软件版本的升级。

1.LNMP工作原理

  • 第一步:用户在浏览器输入域名或者IP访问网站
  • 第二步:用户在访问网站的时候,向web服务器发出http request请求,服务器响应并处理web请求,返回静态网页资源,如CSS、picture、video等,然后缓存在用户主机上。
  • 第三步:服务器调用动态资源,PHP脚本调用fastCGI传输给php-fpm,然后php-fpm调用PHP解释器进程解析PHP脚本。
  • 第四步:出现大流量高并发情况,PHP解析器也可以开启多进程处理高并发,将解析后的脚本返回给php-fpm,然后php-fpm再调给fast-cgi将脚本解析信息传送给nginx,服务器再通过http response传送给用户浏览器。
  • 第五步:浏览器再将服务器传送的信息进行解析与渲染,呈现给用户。

2、PHP

1.什么是PHP-FPM

PHP官网:http://www.php.net/

PHP-FPM(FastCGl Process Manager:FastCG!进程管理器)是一个实现了Fastcgi的程序,并且提供进程管理的功能。进程包括master进程和worker进程。master进程只有一个,负责监听端口,接受来自web server的请求。worker进程一般会有多个,每个进程中会嵌入一个PHP解析器,进行PHP代码的处理。

PHP(Hypertext Preprocessor 超文本预处理器)是通用服务器端脚本编程语言,主要用于web开发实现动态web页面,也是最早实现将脚本嵌入HTML源码文档中的服务器端脚本语言之一。同时,php还提供了一个命令行接口,因此,其也可以在大多数系统上作为一个独立的shell来使用
Rasmus Lerdor于1994年开始开发PHP,最初是一组被Rasmus Lerdor称作“PersonalHome Page Too”的Per)脚本,可以用于显示作者的简历并记录用户对其网站的访问。后来,RasmusLerdorf使用C语言将这些Perl脚本重写为CG!程序,还为其增加了运行Web forms的能力以及与数据库交互的特性,并将其重命名为“Personal Home Page/Forms Interpreter”或“PHP/EI”。此时,PHP/F!已经可以用于开comp.infosystems.www.authoring.cgi Usenet讨论组,从此PHP开始走进人们的视野。1997年,其2.0版本发布

2.PHP配置

php的配置文件:/etc/php.ini,/etc/php.d/*.ini

配置文件在php解释器启动时被读取
1.对配置文件的修改生效方法
  • Modules:重启httpd服务
  • FastCGI:重启php-fpm服务
2./etc/php.ini配置文件格式
[foo]:Section Header
directive = value
3.注释符:
  • 以#开头,纯粹的注释信息
  • 以;开头,用于注释可启用的directive
提示:较新的版本中,已经完全使用“ ; ” 进行注释
4.php.ini配置参考文档
  • php.ini的核心配置选项文档:http://php.net/manual/zh/ini.core.php
  • php.ini配置选项列表:http://php.net/manual/zh/ini.list.php
5.php常见设置
expose_php = On
#响应报文显示首部字段x-poered-by:PHP/x.y.z,暴露php版本,建议为offmax_execution_time = 30
#最长执行时间为30smemory_limit=128M
#可调大display_errors=off
#调试使用,不要打开,否则可能暴露重要信息display_startup_errors=off
#建议关闭post_max_size=8M
#最大上传数据大小,可能调大,比下面的项大upload_max_filesize=2M
#最大上传文件,可能调大max_file_uploads = 20
#同时上传最多文件数date.timezone = Asia/Shanghai
#指定时区short_open_tag=on
#开启短标签,如:<? phpinfo();?>

二、LNMP架构

1、编译安装Nginx

cd /opt上传nginx-1.22.0.tar.gztar xf nginx-1.22.0.tar.gz cd nginx-1.22.0/yum -y install pcre-devel zlib-devel gcc gcc-c++ makeuseradd -M -s /sbin/nologin nginx./configure \
> --prefix=/usr/local/nginx \
#指定nginx的安装路径
> --user=nginx \
#指定用户名
> --group=nginx \
#指定组名
> --with-http_stub_status_module
#启用http_stub_status_module 模块以支持状态统计make -j2make installln -s /usr/local/nginx/sbin/nginx /usr/bin
#让系统识别nginx的操作命令可以自动补全   nginx     $PATHtee /lib/systemd/system/nginx.service   <<eof
> [Unit]
> Description=nginx
> After=network.target
> [Service]
> Type=forking
> PIDFile=/usr/local/nginx/logs/nginx.pid
> ExecStart=/usr/local/nginx/sbin/nginx
> ExecReload=/bin/kill -1 $MAINPID
> ExecStop=/bin/kill -3 $MAINPID
> PrivateTmp=true
> [Install]
> WantedBy=multi-user.target
> eofsystemctl daemon-reloadsystemctl enable --now nginx.servicesystemctl status nginx

2、编译安装Mysql

初始化数据库

3、编译安装php

4、修改Nginx配置

nginx的主配置

5、搭建论坛

友情提示:如果访问页面出现这样的情况,那就检查,有个服务没启动

6、搭建博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2821952.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

线性规划在多种问题形式下的应用

线性规划的用处非常的广泛,这主要是因为很多类型的问题是可以通过转化的方式转化为线性规划的问题。例如需要再图论中寻找起始点到给定的点的最短路径问题: 添加图片注释,不超过 140 字(可选) 假设要计算从节点0到节点4的最短路径,用变量d1到d4来表示节点0到节点1,2,3,…

HTML5+CSS3+JS小实例:右键菜单

实例:右键菜单 技术栈:HTML+CSS+JS 效果: 源码: 【HTML】 <!DOCTYPE html> <html lang="zh-CN"> <head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><met…

插混、油混、增程式、轻混、强混,啥区别

这里写自定义目录标题 随着我国新能源汽车的大力推进&#xff0c;电车可以说是世界未来的主流&#xff0c;只不过现在是处在一个过渡时代 这是个好时代&#xff0c;因为我们见证并体验着历史过渡的细节 这是个不好的时代&#xff0c;因为我们可能只是未来新新人类的试验品 帮他…

javascript中的class基础入门(1)

javascript中的class start 最近在学习&#xff1a;cocos &#xff0c;准备自己制作小游戏。过程中遇到不少疑问&#xff0c;我计划将这些疑问写成一个系列博客&#xff0c;用以记录。这篇文章来了解 class 1. 前言 1. 前言 本文对应版本 Cocos Creator 3.8。Cocos Creato…

mysql-Synch-clickhouse

Synch GitHub - long2ice/synch: Sync data from the other DB to ClickHouse(cluster) 环境&#xff1a; mysql5.7 redis > 5.0 clickhouse21.2 postgresql python3 binlog_formatrow XREAD default pg_config synch 1&#xff1a;安装clickhouse rpm下载地址&…

今日arXiv最热大模型论文:点击即可播放!港中文发布大模型写歌神器!

一首歌&#xff0c;包含作词作曲两个部分。擅长作词or作曲就已经很牛了。比如方文山是周杰伦的御用作词人&#xff0c;而周杰伦写过很多耳熟能详的曲子。而兼具作词作曲才华的全能创作人却是难得一见。 最近港中文发布了一款歌曲创作大模型SongComposer&#xff0c;作词作曲都…

DiskMirror-spring-boot-starter 技术|

DiskMirror-spring-boot-starter 技术 diskMirror 实现了 SpringBoot 的 starter 能够集成到 SpringBoot 中。 DiskMirror 的 starter&#xff0c;通过引入此类&#xff0c;可以直接实现 diskMirror 在 SpringBoot 中的自动配置&#xff0c;接下来我们将使用案例逐步的演示 d…

飞腾平台编译安装openGauss数据库

1. 环境检查 1.1 检查OS版本 openGauss支持的操作系统&#xff1a; CentOS 7.6&#xff08;x86_64 架构&#xff09;openEuler-20.03-LTS&#xff08;aarch64 架构&#xff09;openEuler-20.03-LTS&#xff08;x86_64架构&#xff09;Kylin-V10&#xff08;aarch64 架构&…

作业1-224——P1015 [NOIP1999 普及组] 回文数

题目描述 思路 首先此题为一道高精度题&#xff0c;然后本题按照题目意思模拟即可。我们可以开两个数组来记录高精度数字&#xff0c;这样方便我们处理。判断“该数组是否回文”、“c翻转存入d再做cd”可以写成两个单独的函数。然后主程序组织一下他们即可。注意好退出循环的…

String类的使用

String常用的构造方法 String的源码 内部是一个数组和hash值&#xff0c;涉及到常量池后续补充&#xff08;常量池&#xff1a;存储相同的字符时只会存储一租&#xff09; String的比较 equals()与&#xff1a;String里面为我们提供了许多方法&#xff0c;可直接调用&#xf…

electron 项目环境变量使用注意 public

问题 最近项目中&#xff0c;electron需要调用唤醒本地的另一个客户端程序&#xff0c;但是这个客户端程序报错了。sqlite3 报out of memory. apiSHGetFolderPathW 获取CSIDL_COMMON_DOCUMENTS报 1008&#xff0c;试图引用不存在的令牌。 排查 一看到这个&#xff0c;首先想…

苍穹外卖Day03——解决总结3中存在的问题

解决Day03中存在的问题 1. ResponseBody 与 RequestBody2. RequestParam 与 PathVariable3. 字段填充技术&#xff08;注解、AOP、反射&#xff09;3.1. AOP3.2. 注解3.3. 反射3.5 字段填充在项目应用 4. 阿里云云存储OOS 1. ResponseBody 与 RequestBody ResponseBody&…

varFormatter 数据格式化库 以性能优先的 快速的 内存对象格式转换

varFormatter 数据格式化 技术 开源技术栏 对象/变量格式化工具库&#xff0c;其支持将一个对象进行按照 JSON XML HTML 等格式进行转换&#xff0c;并获取到结果字符串&#xff01; 目录 文章目录 varFormatter 数据格式化 技术目录介绍获取方式 使用实例格式化组件的基本使…

WIN10 无密码自动登录

1、家里重装了一下WIN10系统&#xff0c;第一次登陆居然用了微软网站账号&#xff0c;结果密码忘记了&#xff0c;后面只能用PIN码登陆系统。 2、需要登录微软的网站修改密码&#xff1a; Microsoft account | Sign In or Create Your Account Today – Microsoft 3、在运行…

【C语言】动态内存管理常用函数

前言 我们在之前学习的数组开辟的空间是固定不变的&#xff0c;有时候我们需要的空间⼤⼩在程序运⾏的时候才能知道~ c语言中的动态内存开辟&#xff0c;让程序员⾃⼰可以根据实际需求申请和释放相应空间&#xff0c;这使得空间的开辟变得灵活了许多。 欢迎关注个人主页&#x…

数据库原理及应用 第三章:关系数据模型

文章目录 三、关系数据模型3.1.1关系模型概述3.1.2候选键和外键3.2关系模型的完整性 三、关系数据模型 3.1.1关系模型概述 3.1.2候选键和外键 3.2关系模型的完整性

写作软件,批量写作文章的软件

在信息爆炸的时代&#xff0c;写作软件成为许多人提高效率、优化内容的利器。本文将介绍6款不同的写作软件&#xff0c;以及知名的147GPT生成工具和文心一言AI生成软件&#xff0c;它们不仅可以帮助用户快速生成原创文章&#xff0c;还支持全自动SEO优化&#xff0c;提升文章在…

wy的leetcode刷题记录_Day79

wy的leetcode刷题记录_Day79 声明 本文章的所有题目信息都来源于leetcode 如有侵权请联系我删掉! 时间&#xff1a;2024-3-1 前言 目录 wy的leetcode刷题记录_Day79声明前言2369. 检查数组是否存在有效划分题目介绍思路代码收获 61. 旋转链表题目介绍思路代码收获 82. 删除排…

【Vue】npm run build 打包报错:请在[.env.local]中填入key后方可使用...

报错如下 根目录添加 .env.local 文件 .env.local &#xff1a;本地运行下的配置文件 配置&#xff1a;VUE_GITHUB_USER_NAME 及 VUE_APP_SECRET_KEY 原因

【研发日记】Matlab/Simulink技能解锁(二)——在Function编辑窗口Debug

目录 前言 行断点 条件断点 前言 见《【研发日记】Matlab/Simulink技能解锁(一)——在Simulink编辑窗口Debug》 行断点 当Matlab Function出现异常时&#xff0c;如果能确定大致的代码段&#xff0c;就可以在相应的行上设置一个断点&#xff08;Breakpoint&#xff09;&…