当前位置: 首页 > news >正文

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博客

http://www.lryc.cn/news/102909.html

相关文章:

  • CAN转EtherNet/IP网关can协议破解服务
  • 最适合新手的Java项目/SpringBoot+SSM项目《苍穹外卖》/项目实战、笔记(超详细、新手)[持续更新……]
  • CloudDriver一款将各种网盘云盘挂在到电脑本地变成本地磁盘的工具 教程
  • 行为型模式之中介者模式
  • BPMNJS插件使用及汉化(Activiti绘制流程图插件)
  • STM32使用HAL库中外设初始化MSP回调机制及中断回调机制详解
  • Hutool工具类FileUtil----文件(夹)创建、删除、添加数据
  • Flink - souce算子
  • 使用vue creat搭建项目
  • 面试题 -- 基础知识
  • Zabbix分布式监控快速入门
  • 基于Spring包扫描工具和MybatisPlus逆向工程组件的数据表自动同步机制
  • leetcode 面试题 0106.字符串压缩
  • 三、Spring源码-实例化
  • 算法的法律框架:预测未来的关键趋势
  • Ubuntu Server版 之 共享文件 samba和NFS 两种方法
  • 实时协作:团队效率倍增的关键
  • 电脑选睡眠、休眠还是关机?
  • 算法通关村第三关——不简单的数组增删改查
  • 【Linux】动静态库
  • 《kubernetes权威指南》-第一章学习笔记
  • ubuntu 18.04 磁盘太满无法进入系统
  • 基于LNMP配置WordPress建站时出现的问题汇总
  • 【Spring Cloud】Gateway的配置与使用
  • 概念、框架简介--ruoyi学习(一)
  • IDEA的基础使用——【初识IDEA】
  • LeetCode刷题总结-动态规划篇
  • el-table使用xlsx实现导入文件编辑功能
  • Android9、11 有线网络开关设置
  • 【MySQL】mysql问题 | [ERROR] unknown variable ‘column-statistics=0‘