Debian LNMP架构的简单配置使用
一、LNMP简介
Linux+Nginx+Mysql+PHP组成的网站架构,常用于中小型网站服务。
二、环境
Debian 6.1.27-1kali1 (2023-05-12)
Nginx/1.22.1
10.11.2-MariaDB(mysql)
PHP 8.2.7
(Debian 6.1.27包含以上包,直接使用即可)
三、Nginx使用
1、服务开启
systemctl start nginx
浏览器输入主机ip直接访问默认页面
2、配置文件
Nginx配置文件在/etc/nginx/目录下,nginx_conf下有events 、http、mail数据块,mail一般不用所以注销掉了
这里讲下主进程号、日志文件和server块配置;
主进程号=> pid /run/nginx.pid
日志文件就access.log(服务日志),error.log(错误日志),在/var/log/nginx目录下
server块主要作用于虚拟主机配置,http块内没有server块 ,在/etc/nginx/sites-enabled/default文件里配置
含监听端口,默认页面配置
root /var/www/html 可以自定义,主页面index.html也可自定义
这里自定义如下:
root /var/www/html/shiyan
mkdir /var/www/html/shiyan
cd /var/www/html/shiyan
vi index.html
重新访问发现页面发生变化(配置修改,服务需要重启)
四、php使用
1、安装php-fpm
安装的Debian自带php8.2,但是查询没有安装php-fpm,所以自行安装。
apt-cache search php*8.2 | grep fpm --查询需安装的包名称
apt-get install php8.2-fpm
启动php-fpm服务
systemctl start php8.2-fpm
2、配置nginx服务server块
vi /etc/nginx/sites-enabled/default
默认注释,去掉注释“#”就行,注意fastcgi_pass参数只能选一种且需与php-fpm配置一致;
fastcgi_pass参数代表nginx与php-fpm进程通信方式:
--不经过网络,只能用于nginx和php-fpm在同一服务器的场景
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
--通过tcp协议,支持跨服务器
fastcgi_pass 127.0.0.1:9000;
php-fpm配置文件
主:/etc/php/8.2/fpm/php8.2-fpm.conf
子: /etc/php/8.2/fpm/pool.d/www.conf
查看php-fpm配置 /etc/php/8.2/fpm/pool.d/www.conf 默认是采用第一种通信方式
两种参数都尝试下
1>fastcgi_pass unix:/run/php/php8.2-fpm.sock;
创建一个简单测试php文件,看能否正常展示
vi /var/www/html/test.php
<?php
echo "This is a test!";
重启nginx服务,浏览能输入【ip】/test.php测试
这个时候能看到,php-fpm服务启动没有网络连接,端口开放
2>fastcgi_pass 127.0.0.1:9000;
需要将php-fpm配置文件修改
; listen = /run/php/php8.2-fpm.sock 注释掉
换成tcp通信,与nginx配置文件(sites-enabled/default)fastcgi_pass 保持一致
listen = 127.0.0.1:9000
重启nginx,php8.2-fpm服务,这时查看tcp监听服务有php8.2-fpm
测试的php文件也正常解析并能访问。
注:php-fpm日志文件在/var/log/php8.2-fpm.log,php-fpm启动不起来,可以从日志里看报错信息
五、Mysql
Debian6.1.27-1kali1自带MySQL数据库
systemctl start mysql
mysql -u root -p
自带的默认登陆不需要密码,直接回车
设置密码并将其配置为需要密码认证
alter user 'root'@'localhost' IDENTIFIED BY 'password'; password<=自定义密码
1、创建数据库实例便于测试
CREATE DATABASE test;
user test;
CREATE TABLE `country` (
`id` int(11) NOT NULL,
`name` varchar(100) DEFAULT NULL,
PRIMARY KEY (`id`)
);
insert into country values (1,'beijing'),(2,'shanghai');
CREATE USER 'guest'@'localhost' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON test.* TO 'guest'@'localhost';
FLUSH PRIVILEGES;
EXIT;
2、配置nginx代理
vi /etc/nginx/sites-available/default,添加如下配置
procy_pass为数据库开放端口
3、编写测试php文件
vi index.php
重启nginx服务,浏览器访问,country表数据正常显示
五、总结
LNMP架构简单的搭建测试就完成了,Debian 6.1.27系统都包含这些包确实方便,但相应版本都较为高级,许多书籍以及网上教程都是针对一些旧版本的,配置文件都较为老久,所以好多配置都需要自己去理解去摸索,通过一遍遍的探测才知道每条配置的作用。每次服务启动失败的时候时是非常痛苦的,日志文件和配置文件是必看的,只有通过这两个才知道哪里部署有问题。
六、参考文献
1、《零基础Linux从入门到精通》--零壹快学
2、https://www.cnblogs.com/leon2659/p/9409151.html
3、2019-02-14笔记—php-fpm配置_ai_benwoniu的博客-CSDN博客
4、nginx怎么配置mysql数据库_mob649e8167c4a3的技术博客_51CTO博客
5、解决Mariadb无密码也可以登录的问题_mariadb无密码登录_AmandaTai的博客-CSDN博客
相关文章:

Debian LNMP架构的简单配置使用
一、LNMP简介 LinuxNginxMysqlPHP组成的网站架构,常用于中小型网站服务。 二、环境 Debian 6.1.27-1kali1 (2023-05-12) Nginx/1.22.1 10.11.2-MariaDB(mysql) PHP 8.2.7 (Debian 6.1.27包含以上包,直接使用即…...

CAN转EtherNet/IP网关can协议破解服务
JM-EIP-CAN 是自主研发的一款 ETHERNET/IP 从站功能的通讯网关。该产品主要功能是将各种 CAN 总线和 ETHERNET/IP 网络连接起来。 本网关连接到 ETHERNET/IP 总线中做为从站使用,连接到 CAN 总线中根据节点号进行读写。 技术参数 ETHERNET/IP 技术参数 网关做为 …...

最适合新手的Java项目/SpringBoot+SSM项目《苍穹外卖》/项目实战、笔记(超详细、新手)[持续更新……]
小知识 软件设计中提到的UI设计中的UI是什么意思? 在软件设计中,UI设计中的UI是User Interface的简称,即用户界面。UI设计是指对软件的人机交互、操作逻辑、界面美观的整体设计。好的UI设计可以让软件变得有个性有品位,同时让操作…...

CloudDriver一款将各种网盘云盘挂在到电脑本地变成本地磁盘的工具 教程
平时我们的电脑可能由于大量的文件资料之类的导致存储空间可能不够,所以我们可以选择将网盘我们的本地磁盘用来存放东西。 CloudDrive 是一款可以将 115、阿里云盘、天翼云盘、沃家云盘、WebDAV 挂载到电脑中,成为本地硬盘的工具,支持 Window…...
行为型模式之中介者模式
中介者模式(Mediator Pattern) 中介者模式是一种行为型设计模式,旨在通过封装一系列对象之间的交互方式,使其能够独立地进行通信。 中介者模式的核心思想是将对象之间的直接通信改为通过一个中介者对象来进行间接通信,…...

BPMNJS插件使用及汉化(Activiti绘制流程图插件)
BPMNJS插件运行最重要的就是需要安装nodejs插件,这不一定要安装和测试好。 主要是使用npm命令 1、配置BPMNJS插件绘制activiti7工作流 1.1、安装和配置nodejs 插件 1.1.1、下载nodejs 下载地址:https://nodejs.org/en 1.1.2、安装nodejs,傻瓜式安装 安装之后在安装…...

STM32使用HAL库中外设初始化MSP回调机制及中断回调机制详解
STM32使用HAL库之Msp回调函数 1.问题提出 在STM32的HAL库使用中,会发现库函数大都被设计成了一对: HAL_PPP/PPPP_Init HAL_PPP/PPPP_MspInit 而且HAL_PPP/PPPP_MspInit函数的defination前面还会有__weak关键字 上面的PPP/PPPP代表常见外设的名称为…...
Hutool工具类FileUtil----文件(夹)创建、删除、添加数据
1.文件(夹)创建 //创建文件,多级目录会循环创建出来String path "d:/hutool_test/hutool_test.txt";File touch FileUtil.touch("d:/hutool_test/hutool_test.txt");2.文件(夹)的校验 boolean isFile FileUtil.isFil…...

Flink - souce算子
水善利万物而不争,处众人之所恶,故几于道💦 目录 1. 从Java的集合中读取数据 2. 从本地文件中读取数据 3. 从HDFS中读取数据 4. 从Socket中读取数据 5. 从Kafka中读取数据 6. 自定义Source 官方文档 - Flink1.13 1. 从Java的集合中读取数据 …...

使用vue creat搭建项目
一、查看是否安装node和npm(显示版本号说明安装成功) node -v npm -v 显示版本号说明安装成功,如果没有安装,则需要先安装。 二、安装vue-cli脚手架 查看安装的版本(显示版本号说明安装成功) vue -V 三…...
面试题 -- 基础知识
文章目录 1. 深拷贝 和 浅拷贝的区别2. 懒加载模式3. frame和bounds有什么不同?4. What is push notification?推送实现 5. 什么是序列化?6. 什么是安全释放7. 响应者链8. 简述沙盒机制 1. 深拷贝 和 浅拷贝的区别 浅拷贝是指针拷贝…...

Zabbix分布式监控快速入门
目录 1 Zabbix简介1.1 软件架构1.2 版本选择1.3 功能特性 2 安装与部署2.1 时间同步需求2.2 下载仓库官方源2.3 Zabbix-Server服务端的安装2.3.1 安装MySQL2.3.1.1 创建Zabbix数据库2.3.1.2 导入Zabbix库的数据文件 2.3.2 配置zabbix_server.conf2.3.3 开启Zabbix-Server服务2.…...

基于Spring包扫描工具和MybatisPlus逆向工程组件的数据表自动同步机制
公司产品产出的项目较多。同步数据库表结构工作很麻烦。一个alter语句要跑到N个客户机上执行脚本。超级费时麻烦。介于此,原有方案是把增量脚本放到一resource包下,项目启动时执行逐行执行一次。但由于模块开发人员较多,总有那么一两个机灵鬼…...

leetcode 面试题 0106.字符串压缩
⭐️ 题目描述 🌟 leetcode链接:面试题 0106.字符串压缩 思路: 开辟一个新的空间(空间要大一点,因为可能压缩后的字符串比原字符串大),然后遍历原字符串统计当前字符的个数,再写入到…...

三、Spring源码-实例化
Spring源码-Bean的实例化 接下来我们看看Bean的实例化处理 一、BeanDefinition 首先我们来看看BeanDefinition的存放位置。因为Bean对象的实例化肯定是BeanFactory基于对应的BeanDefinition的定义来实现的,所以在这个过程中BeanDefinition是非常重要的,…...
算法的法律框架:预测未来的关键趋势
随着科技的飞速发展,算法和人工智能(AI)已成为我们社会生活的重要组成部分。然而,它们也带来了许多新的法律和道德挑战,这使得算法的法律框架变得日益重要。在这个背景下,预测未来算法法律框架的关键趋势成…...

Ubuntu Server版 之 共享文件 samba和NFS 两种方法
NFS 和 Samba NFS : linux之间资源共享 Samba: 是windows系统与Linux系统之间资源共享的 samba 安装samba 工具 sudo apt install samba 创建共享目录 sudo mkdir /home/shared sudo chmod 777 /home/shared 配置sambd sudo vim /etc/samba/smb.con…...

实时协作:团队效率倍增的关键
实时协作是指团队在当前时刻共同完成项目的能力。无论是否使用技术,都能实现这一点。然而,随着远程工作的盛行,安全的协作工具被用来让团队成员在项目和一般业务之间保持联系和同步。 传统协作与实时协作的区别 两种类型的协作最明显的区别…...

电脑选睡眠、休眠还是关机?
关机 这是大家最熟悉的。关机时,系统首先关闭所有运行中的程序,然后关闭系统后台服务。随后,系统向主板请求关机,主板断开电源的供电使能,让电源切断对绝大多数设备的供电(只剩一些内部零件仍会维持电源供应…...

算法通关村第三关——不简单的数组增删改查
线性表基础 线性表概念 线性表就是具有相同特征数据元素的一个有限序列,其中包含元素的个数称为线性表的长度 线性表类型 从不同的角度看,线性表有不同的分类 语言实现角度 顺序表有两种实现方式 一体式 分离式 一体式结构 一体式:存储信息…...
深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法
深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业
6月9日,国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解,“超级…...

Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...
力扣-35.搜索插入位置
题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...

安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)
船舶制造装配管理现状:装配工作依赖人工经验,装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书,但在实际执行中,工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...
代码随想录刷题day30
1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...
【学习笔记】erase 删除顺序迭代器后迭代器失效的解决方案
目录 使用 erase 返回值继续迭代使用索引进行遍历 我们知道类似 vector 的顺序迭代器被删除后,迭代器会失效,因为顺序迭代器在内存中是连续存储的,元素删除后,后续元素会前移。 但一些场景中,我们又需要在执行删除操作…...
提升移动端网页调试效率:WebDebugX 与常见工具组合实践
在日常移动端开发中,网页调试始终是一个高频但又极具挑战的环节。尤其在面对 iOS 与 Android 的混合技术栈、各种设备差异化行为时,开发者迫切需要一套高效、可靠且跨平台的调试方案。过去,我们或多或少使用过 Chrome DevTools、Remote Debug…...

Elastic 获得 AWS 教育 ISV 合作伙伴资质,进一步增强教育解决方案产品组合
作者:来自 Elastic Udayasimha Theepireddy (Uday), Brian Bergholm, Marianna Jonsdottir 通过搜索 AI 和云创新推动教育领域的数字化转型。 我们非常高兴地宣布,Elastic 已获得 AWS 教育 ISV 合作伙伴资质。这一重要认证表明,Elastic 作为 …...