LNMP环境搭建(Linux+nginx+Mysql+PHP)超详细攻略

news2024/12/23 14:14:58

目录

一.LNMP简介

1.1LNMP架构的特点

二.详细安装步骤

  2.1MySQL安装

  2.1-1Yum安装

  2.1-2 编译安装

  2.1-3二进制安装

2.1-4 RPM安装

2.2Nginx安装

2.2-1编译安装nginx

2.2-2yum安装nginx

2.3验证Nginx安装

2.4PHP安装 

2.4-1编译安装PHP

2.4-2yum安装PHP

2.5 Nginx 配置支持PHP

2.5-1添加 Nginx 配置

2.5-2添加 php 探测文件

2.5-3验证 Nginx 关联 php-fpm

2.6访问网页验证


一.LNMP简介

        L指Linux,N指Nginx,M一般指MySQL,也可以指MariaDB,P一般指PHP,也可以指Perl或Python。

        LNMP 是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写。L 指 Linux,N指 Nginx,M一般指 MySQL,也可以指 MariaDB,P 一般指 PHP,也可以指 Perl 或 Python。

1.1LNMP架构的特点

      LNMP架构是由Linux操作系统、Nginx Web服务器、MySQL数据库管理系统以及PHP编程语言组成的软件栈。这种架构因其高效、稳定和灵活的特点,在Web服务器领域得到了广泛应用。它的的主要特点有:

1. 高性能

  • Nginx:作为Web服务器,Nginx以其高性能、高并发处理能力和低资源消耗而闻名。它采用事件驱动的异步架构,能够高效处理大量并发请求,适合高流量网站。
  • PHP-FPM:PHP的FastCGI Process Manager(FPM)模式进一步提升了PHP的性能,使其能够更好地处理动态内容。

2. 低资源消耗

  • Nginx:Nginx的轻量级设计使其在运行时占用较少的系统资源,相比传统的Apache服务器,Nginx在处理静态内容和反向代理方面表现更出色。
  • Linux:作为操作系统,Linux以其稳定性和低资源消耗著称,适合作为服务器操作系统。

3. 高并发处理能力

  • Nginx:Nginx能够有效处理高并发请求,适合需要处理大量用户请求的Web应用。
  • MySQL:MySQL数据库在高并发环境下表现稳定,支持事务处理和数据一致性。

4. 易于扩展

  • 模块化设计:Nginx和PHP都支持模块化设计,可以根据需要添加或移除功能模块,实现灵活扩展。
  • 数据库扩展:MySQL支持主从复制、分片等扩展方式,满足不同规模应用的需求。

5. 开源免费

  • 所有组件:Linux、Nginx、MySQL和PHP都是开源软件,用户可以免费使用和修改,降低了成本。

6. 良好的社区支持

  • 庞大社区:LNMP组合拥有庞大的用户社区和丰富的文档资源,便于用户获取帮助和解决问题。
  • 活跃开发:各个组件都有活跃的开发团队,不断推出新版本和功能更新。

7. 安全性

  • 安全特性:Linux、Nginx、MySQL和PHP都提供了丰富的安全特性,如访问控制、数据加密、防火墙配置等,保障Web应用的安全性。

二.详细安装步骤

  2.1MySQL安装

   在Linux系统上安装MySQL有多种方法,包括使用Yum包管理器、编译安装、二进制安装和RPM安装。每种方法都有其特点和适用场景。这里我给大家介绍一下详细的安装步骤以及其适用特点:

  2.1-1Yum安装

  步骤:

  1. 配置yum源,保证你的yum源可用:

    sudo yum update
    
  2. 添加MySQL的Yum仓库:

    sudo yum install https://repo.mysql.com/mysql80-community-release-el7-3.noarch.rpm
    
  3. 安装MySQL:

    sudo yum install mysql-community-server
    
  4. 启动MySQL服务:

    sudo systemctl start mysqld
    
  5. 设置开机自启动:

    sudo systemctl enable mysqld
  6. 查看MySQL服务状态(确保已经启动):

    sudo systemctl status mysqld
  7. 获取初始密码(最后一行就是密码):

    sudo grep 'temporary password' /var/log/mysqld.log
  8. 登录MySQL并修改密码:

    #登录mysql
    mysql -u root -p'默认密码'
    
    
    #修改密码
    ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';

特点:

  • 简单方便:使用Yum安装非常简单,适合初学者。
  • 自动依赖管理:Yum会自动解决依赖关系,确保所有需要的组件都被安装。
  • 系统集成:与系统服务管理工具(如systemd)集成良好,便于管理。
  2.1-2 编译安装

    步骤:

  1. 下载MySQL源码包:

    wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.23.tar.gz
    
  2. 解压源码包:

    #解压
    tar -zxvf mysql-8.0.23.tar.gz
    
    #进入解压目录
    cd mysql-8.0.23
    
  3. 安装依赖包:

    sudo yum install cmake gcc-c++ ncurses-devel openssl-devel
    
  4. 配置编译选项:

    [root@mysql-server mysql-5.7.27]# cmake . \
    #参数详解:
    -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \   安装目录
    -DSYSCONFDIR=/etc \   配置文件存放 (默认可以不安装配置文件)
    -DMYSQL_DATADIR=/usr/local/mysql/data \   数据目录   错误日志文件也会在这个目录
    -DINSTALL_MANDIR=/usr/share/man \     帮助文档 
    -DMYSQL_TCP_PORT=3306 \     默认端口
    -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \  sock文件位置,用来做网络通信的,客户端连接服务器的时候用
    -DDEFAULT_CHARSET=utf8 \    默认字符集。字符集的支持,可以调
    -DEXTRA_CHARSETS=all \   扩展的字符集支持所有的
    -DDEFAULT_COLLATION=utf8_general_ci \  支持的
    -DWITH_READLINE=1 \    上下翻历史命令
    -DWITH_SSL=system \    使用私钥和证书登陆(公钥)  可以加密。 适用与长连接。坏处:速度慢
    -DWITH_EMBEDDED_SERVER=1 \   嵌入式数据库
    -DENABLED_LOCAL_INFILE=1 \    从本地倒入数据,不是备份和恢复。
    -DWITH_INNOBASE_STORAGE_ENGINE=1  默认的存储引擎,支持外键
  5. 编译并安装:

    sudo make && make install
    
  6. 初始化数据库:

    sudo /usr/local/mysql/bin/mysqld --initialize --user=mysql
    #初始化完成后一定记得最后的密码
    
  7. 启动MySQL服务:

    sudo /usr/local/mysql/bin/mysqld_safe --user=mysql &
    

    最后修改密码步骤都是一样的,根据上面的一样来就可

特点:

  • 高度定制:可以根据需要配置编译选项,实现高度定制化。
  • 灵活性:可以安装到任意目录,不受系统包管理器的限制。
  • 复杂性:需要手动解决依赖关系,配置和编译过程较为复杂。
  2.1-3二进制安装

  步骤:

  1. 下载MySQL二进制包:

    wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.23-linux-glibc2.12-x86_64.tar.xz
    
  2. 解压二进制包:

    tar -xvf mysql-8.0.23-linux-glibc2.12-x86_64.tar.xz
    sudo mv mysql-8.0.23-linux-glibc2.12-x86_64 /usr/local/mysql
    
  3. 创建MySQL用户和组:

    #添加用户mysql
    sudo groupadd mysql
    
    sudo useradd -r -g mysql -s /bin/false mysql
    
    
  4. 初始化数据库:

    sudo /usr/local/mysql/bin/mysqld --initialize --user=mysql
    
  5. 启动MySQL服务:

    sudo /usr/local/mysql/bin/mysqld_safe --user=mysql &
    

最后修改默认密码 

特点:

  • 预编译:二进制包是预编译的,安装过程相对简单。
  • 灵活性:可以安装到任意目录,不受系统包管理器的限制。
  • 性能优化:预编译的二进制包通常针对特定平台进行了优化。
2.1-4 RPM安装

步骤:

  1. 下载MySQL的RPM包:

    wget https://repo.mysql.com/mysql80-community-release-el7-3.noarch.rpm
    
  2. 安装RPM包:

    sudo rpm -ivh mysql80-community-release-el7-3.noarch.rpm
    
  3. 安装MySQL:

    sudo yum install mysql-community-server
    
  4. 启动MySQL服务:

    sudo systemctl start mysqld
    
  5. 设置开机自启动:

    sudo systemctl enable mysqld
    

   

特点:

  • 系统集成:与系统包管理工具(如Yum)集成良好,便于管理。
  • 自动依赖管理:RPM包会自动解决依赖关系,确保所有需要的组件都被安装。
  • 简单方便:使用RPM安装非常简单,适合初学者。

2.2Nginx安装

2.2-1编译安装nginx

1.安装相关依赖包

[root@localhost ~]# yum -y install gcc gcc-c++ make zlib-devel pcre pcre-devel openssl-devel perl-devel perl-ExtUtils-Embed gd-devel

 2.下载nginx安装包

[root@localhost ~]# wget https://nginx.org/download/nginx-1.16.0.tar.gz

3.创建 Nginx 运行用户

[root@localhost ~]# useradd -s /sbin/nologin -M nginx

4.解压配置 Nginx 编译

[root@localhost ~ ]# tar zxvf nginx-1.16.0.tar.gz -C /usr/local/
[root@localhost ~]# cd /usr/local/nginx-1.16.0/
[root@localhost nginx-1.16.0]# ./configure \
--user=nginx \
--group=nginx \
--prefix=/usr/local/nginx \
--conf-path=/etc/nginx/nginx.conf \
--sbin-path=/usr/sbin/nginx \
--error-log-path=/var/log/nginx/nginx_error.log \
--http-log-path=/var/log/nginx/nginx_access.log \
--pid-path=/usr/local/nginx/run/nginx.pid

5.Nginx 编译安装

[root@localhost nginx]# make && make install

6.启动nginx

[root@localhost nginx-1.16.0]# /usr/sbin/nginx

7.查看状态并配置开机自启

#查看nginx服务状态
[root@localhost ~]# ps -ef | grep nginx
root      31469      1  0 23:11 ?        00:00:00 nginx: master process /usr/sbin/nginx
nginx     31470  31469  0 23:11 ?        00:00:00 nginx: worker process
root      31554   1182  0 23:11 pts/0    00:00:00 grep --color=auto ngin

#配置开机自启
[root@localhost ~]# systemctl enable nginx
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.
2.2-2yum安装nginx

  1. 更新Yum仓库

  首先,确保你的Yum仓库是最新且可用的,以便获取最新的软件包信息:

sudo yum update

  2. 添加Nginx的Yum仓库

    Nginx官方提供了Yum仓库,需要先添加这个仓库到你的系统中。创建一个名为nginx.repo的   文件:

sudo nano /etc/yum.repos.d/nginx.repo

编辑配置文件(vim /etc/yum.repos.d/nginx.repo):

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1

3. 安装Nginx

添加了Nginx的Yum仓库后,使用Yum来安装Nginx:

sudo yum install nginx

4. 启动Nginx服务

安装完成后,启动Nginx服务:

sudo systemctl start nginx

5. 设置Nginx开机自启动

为了确保Nginx在系统重启后自动启动,你需要设置开机自启动:

sudo systemctl enable nginx

6. 查看Nginx服务状态

你可以查看Nginx服务的状态,确保它已经正常启动:

sudo systemctl status nginx

7. 配置防火墙

如果你的系统启用了防火墙,你需要允许HTTP和HTTPS流量通过防火墙。以下是使用firewalld的命令:

sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

2.3验证Nginx安装

打开浏览器,访问你的服务器IP地址或域名,如果能看到Nginx的默认欢迎页面,表示Nginx已经成功安装并运行。

2.4PHP安装 

2.4-1编译安装PHP

1.安装环境依赖包

#安装依赖包
[root@localhost ~]# yum -y install gcc gcc-c++ glibc automake autoconf libtool make

#安装依赖库
[root@localhost ~]#yum -y install libxslt-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5-devel libidn libidn-devel openssl openssl-devel

2.下载源码包

[root@localhost ~]# wget https://www.php.net/distributions/php-7.3.6.tar.gz

3.编辑配置文件

[root@localhost ~]# tar xzvf php-7.3.6.tar.gz -C /usr/local/
[root@localhost ~]# cd /usr/local/php-7.3.6/
[root@localhost php-7.3.6 ]# ./configure \
--prefix=/usr/local/php7 		# 配置安装目录
--with-config-file-path=/usr/local/php7 # 配置文件 php.ini 的路径
--enable-sockets 				# 开启 socket 
--enable-fpm 					# 启用 fpm 扩展
--enable-cli			 		# 启用 命令行模式 (从 php 4.3.0 之后这个模块默认开启所以可以不用再加此命令)
--enable-mbstring 				# 启用 mbstring 库
--enable-pcntl 					# 启用 pcntl (仅 CLI / CGI)
--enable-soap 					# 启用 soap 
--enable-opcache 				# 开启 opcache 缓存
--disable-fileinfo 				# 禁用 fileinfo (由于 5.3+ 之后已经不再持续维护了,但默认是开启的,所以还是禁止了吧)(1G以下内存服务器直接关了吧)
--disable-rpath  				# 禁用在搜索路径中传递其他运行库。
--with-mysqli 					# 启用 mysqli 扩展
--with-pdo-mysql 				# 启用 pdo 扩展
--with-iconv-dir 				# 启用 XMLRPC-EPI 字符编码转换 扩展
--with-openssl 					# 启用 openssl 扩展 (需要 openssl openssl-devel)
--with-fpm-user=nginx 			# 设定 fpm 所属的用户 
--with-fpm-group=nginx 			# 设定 fpm 所属的组别
--with-curl 					# 启用 curl 扩展
--with-mhash 					# 开启 mhash 基于离散数学原理的不可逆向的php加密方式扩展库
# GD
--with-gd 						# 启用 GD 图片操作 扩展
--with-jpeg-dir 				# 开启对 jpeg 图片的支持 (需要 libjpeg)
--with-png-dir 					# 开启对 png 图片支持 (需要 libpng)
--with-freetype-dir 			# 开启 freetype 

# xml
--enable-simplexml 				# 启用对 simplexml 支持
--with-libxml-dir 				# 启用对 libxml2 支持

--enable-debug 					# 开启 debug 模式

4.编译安装(30分钟左右)

make && make install 

5.配置php-fpm

#1.创建 php.ini 配置文件
[root@localhost php-7.3.6]# cp php.ini-production /usr/local/php7/etc/php.ini
[root@localhost php-7.3.6]# vim /usr/local/php7/etc/php.ini +1371 #php的Session存储目录
1371 session.save_path = "/tmp" #将注释打开

#2.设置php-fpm配置文件
[root@qfedu.com php-7.3.6]# cd /usr/local/php7/etc
[root@localhost etc]# cp php-fpm.conf.default php-fpm.conf
[root@localhost etc]# vim php-fpm.conf +17
pid = /var/run/php-fpm.pid  #将注释取消并修改
# php-fpm连接文件
[root@localhost etc]# cd /usr/local/php7/etc/php-fpm.d/
[root@localhost php-fpm.d]# cp www.conf.default www.conf
[root@localhost php-fpm.d]# vim www.conf
user = nginx
group = nginx
listen = 127.0.0.1:9000

#3.启动php-fpm
[root@localhost php-fpm.d]# /usr/local/php7/sbin/php-fpm

#4.查看是否启动
[root@localhost php-fpm.d]# ps aux | grep php-fpm

#5.配置与重新载入环境变量
[root@localhost ~]# vim /etc/profile
export PHP_HOME=/usr/local/php7
export PATH=$PATH:$PHP_HOME/bin:$PHP_HOME/sbin
[root@localhost ~]# source /etc/profile

6.配置php-fpm开机自启

[root@localhost ~]# vim /lib/systemd/system/php-fpm.service
[Unit]:服务的说明
Description:描述服务
After:描述服务类别
[Service]服务运行参数的设置
Type=forking是后台运行的形式
ExecStart为服务的具体运行命令
ExecReload为重启命令
ExecStop为停止命令
PrivateTmp=True表示给服务分配独立的临时空间
注意:[Service]的启动、重启、停止命令全部要求使用绝对路径
[Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3

[root@localhost ~]# systemctl enable php-fpm.service
2.4-2yum安装PHP

1. 更新Yum仓库

确保Yum仓库是最新的,不再过多缀述:

sudo yum update

2. 安装EPEL和Remi仓库

PHP的某些版本和扩展可能不在默认的Yum仓库中,需要添加EPEL和Remi仓库。EPEL提供了许多额外的软件包,而Remi仓库提供了最新版本的PHP。

安装EPEL源:

sudo yum install epel-release

安装Remi源:

sudo yum install yum-utils
sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm

3. 启用Remi仓库中的PHP模块

Remi仓库中有多个PHP版本,需要启用你想要安装的PHP版本。例如,启用PHP 7.4版本:

sudo yum-config-manager --enable remi-php74

CopyInsert

4. 安装PHP

启用Remi仓库中的PHP模块后,就可以使用Yum来安装PHP及其常用扩展:

sudo yum install php php-cli php-fpm php-mysqlnd php-zip php-devel php-pear php-gd php-mbstring php-curl php-xml php-xmlrpc php-soap php-intl php-zip

5. 启动PHP-FPM服务

启动并设置开机自启动:

sudo systemctl start php-fpm
sudo systemctl enable php-fpm

6. 查看PHP版本

安装完成后,查看PHP的版本,确保安装成功:

php -v

2.5 Nginx 配置支持PHP

2.5-1添加 Nginx 配置
[root@localhost ~]# cd /etc/nginx/
[root@localhost nginx]# vim nginx.conf
#配置如下
server
{
	listen 80;
	server_name localhost;
	index index.html index.htm index.php;
	root /usr/local/nginx/html;
	location ~ \.php$
	{
		include fastcgi_params;        #指定nginx连接php-fpm的常量
		fastcgi_pass 127.0.0.1:9000;    #连接php-fpm的地址和端口
		fastcgi_index index.php;        #指定默认页面
		fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name; #指定站点根目录
	}
}
2.5-2添加 php 探测文件
[root@localhost nginx]# cd /usr/local/nginx/html/
[root@locolhost html]# vim index.php
<?php
phpinfo();
?>
2.5-3验证 Nginx 关联 php-fpm
[root@localhost html]# systemctl restart php-fpm.service
[root@localhost ~]# ps -ef|grep php-fpm
root      69652      1  0 14:02 ?        00:00:00 php-fpm: master process (/usr/local/php7/etc/php-fpm.conf)
nginx     69653  69652  0 14:02 ?        00:00:00 php-fpm: pool www
nginx     69654  69652  0 14:02 ?        00:00:00 php-fpm: pool www
nginx     69655  69652  0 14:02 ?        00:00:00 php-fpm: pool www
nginx     69656  69652  0 14:02 ?        00:00:00 php-fpm: pool www
nginx     69657  69652  0 14:02 ?        00:00:00 php-fpm: pool www

重新载入配置:

[root@localhost html]# systemctl restart nginx
[root@localhost html]# systemctl status nginx

2.6访问网页验证

输入你的服务器IP地址+index.php

如图所示:

如果显示该页面表示LNMP环境至此配置成功! 

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

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

相关文章

OpenCSG all in one 安装

https://github.com/OpenCSGs/CSGHub/tree/main/deploy/all_in_one 先下载下来 记得前提是docker 和docker-compose 已经安装好了 进入到deploy 中得all_in_one中 修改.env 中得domain 地址本机地址 修改权限后 运行startup.sh $sudo ./startup.sh 运行相应得docker 信息 可以…

基本放大电路

以输入、输出信号的位置为判断依据&#xff1a; 信号由基极输入&#xff0c;集电极输出——共射极放大电路 信号由基极输入&#xff0c;发射极输出——共集极放大电路 信号由发射极输入&#xff0c;集电极输出——共基极放大电路 三种组态的特点及用途&#xff1a;共射极放大电…

软件设计之JDBC(1)

软件设计之JDBC(1) 此篇应在MySQL之后进行学习: 路线图推荐&#xff1a; 【Java学习路线-极速版】【Java架构师技术图谱】 尚硅谷2024最新JDBC教程 | jdbc基础到高级一套通关&#xff01; 资料可以去尚硅谷官网免费领取 学习内容&#xff1a; 前言JDBCPreparedStatement实现…

IAR查看程序占用的内存空间

参考&#xff1a;IAR分析内存重要的神器 - map文件全解析-CSDN博客 IAR软件*.map文件查看程序占用ROM和RAM大小_iar 通过map文件查看占用内存空间-CSDN博客 编译工程后&#xff0c;可以在MAP文件的最后面查看&#xff0c;程序占用空间的大小 readonly code和readonly data使用…

OPenCV结构分析与形状描述符(1)近似多边形轮廓顶点的函数approxPolyDP()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 按指定的精度近似一个多边形曲线 cv::approxPolyDP 函数使用另一条曲线或多边形来近似一条曲线或多边形&#xff0c;新曲线或多边形的顶点数较少…

PYTHON发送邮件详细流程

不求别的你要是觉得有用给我一个关注攒攒❤ 安装第三方库 dos命令窗口 pip install pyEmail 两个邮箱准备齐&#xff1a; 我让我的163邮箱做服务器向qq邮箱发邮件 互联网上的两个软件要想通信要有协议&#xff0c;因此开启协议 import smtplib #协议包 from email.mime.t…

【路径规划】2D/3D RRT* 算法 - 使用快速探索随机树进行最优路径规划

摘要 本文介绍了快速探索随机树星&#xff08;RRT* &#xff09;算法在2D和3D空间中的实现&#xff0c;用于最优路径规划。RRT*算法通过增量采样的方法&#xff0c;不断优化路径&#xff0c;以收敛到全局最优解。2D版本结合避障功能&#xff0c;能够有效避开给定的障碍物&…

IP地址与物理地址:‌区别解析及在网络通信中的作用

在网络通信的广阔领域中&#xff0c;‌IP地址与物理地址是两个至关重要的概念。‌尽管它们在网络连接和数据传输中都扮演着举足轻重的角色&#xff0c;‌但二者之间存在着本质的区别。‌下面一起跟着虎观代理小二了解IP地址与物理地址的区别&#xff0c;‌并解析它们在网络通信…

ActiViz实战:使用Actor2D画一个二维网格

文章目录 一、效果预览二、交互三、C#源码示例一、效果预览 二、交互 1、能实现等比缩放 2、不允许平移和旋转 3、能够与三维坐标大小匹配 三、C#源码示例 private void AddCudeAxes2D() {double scale =

SprinBoot+Vue餐厅点餐系统的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 application.yml3.5 SpringbootApplication3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍&#xff1a;CSDN认证博客专家&#xff0c;CSDN平台Java领域优质…

【自动驾驶】控制算法(七)离散规划轨迹的误差计算

写在前面&#xff1a; &#x1f31f; 欢迎光临 清流君 的博客小天地&#xff0c;这里是我分享技术与心得的温馨角落。&#x1f4dd; 个人主页&#xff1a;清流君_CSDN博客&#xff0c;期待与您一同探索 移动机器人 领域的无限可能。 &#x1f50d; 本文系 清流君 原创之作&…

SOMEIP_ETS_086: Eventgroup_EventsAndFieldsAll_2_TCP

测试目的&#xff1a; 验证设备&#xff08;DUT&#xff09;是否能够针对事件组0x02发送SubscribeEventgroupAck&#xff0c;并且发送所有初始字段。 描述 本测试用例旨在检查DUT在接收到针对事件组0x02的SubscribeEventgroup消息后&#xff0c;是否能够正确响应SubscribeEv…

覆盖 7 百万问答数据,上海 AI Lab 发布 ChemLLM,专业能力比肩 GPT-4

随着人工智能技术的飞速发展&#xff0c;大语言模型 (LLMs) 凭借其强大的自然语言处理能力&#xff0c;在生命科学、海洋学、材料化学等科学研究中被广泛应用。虽然&#xff0c;LLMs 在分子特性预测、分子生成和实验方案设计等化学相关任务上表现良好&#xff0c;但在处理各种化…

IDEA莫名奇妙自动选择光标所在行 -罪魁祸首居然是钉钉

请看受害者视角 作为开发者&#xff0c;工作时基本都会运行钉钉吧。最近&#xff0c;钉钉更新了AI功能&#xff0c;但不知道是不是开发团队平时不使用IDE&#xff0c;竟然让这个AI功能影响到了其他软件&#xff0c;简直让人无语。不仅仅是IDEA受影响&#xff0c;就连WebStorm也…

<C++> AVLTree

目录 1. AVL概念 2. AVL树节点的定义 3. AVL树的插入 4. AVL树的旋转 5. AVL树的验证 6. AVL树的删除 7. AVL树的性能 暴力搜索、二分搜索、二叉搜索树、二叉平衡搜索树&#xff08;AVL、红黑树&#xff09;、多叉平衡搜索树&#xff08;B树&#xff09;、哈希表 1. AVL概念 二…

RAG 实践- Ollama+RagFlow 部署本地知识库

前言 本文我们介绍另一种实现方式&#xff1a;利用 OllamaRagFlow 来实现&#xff0c;其中 Ollama 中使用的模型仍然是Qwen2 我们再来回顾一下 RAG 常见的应用架构 RagFlow的安装和部署 前置条件 CPU > 4 核RAM > 16 GBDisk > 50 GBDocker > 24.0.0 & Dock…

迅为RK3568 开发板赋能数字广告,推动智能化使用北京迅为RK3568核心板作为广告机主控

广告机作为一种高效且灵活的宣传工具&#xff0c;正逐步成为商场、车站、机场等各类公共场所的标配。广告机通过数字化的方式展示广告内容和提供实时信息更新&#xff0c;有效地提升了广告和信息的覆盖率。 如何设计一款广告机&#xff0c;根据广告机的需求和工作环境&#x…

2024年住宅代理市场概况:趋势与选择指南

在数字化时代&#xff0c;网络安全和数据保护越来越受到重视。尤其在网络环境中&#xff0c;真实的IP地址成为保护个人信息安全和数据安全的重要抓手。住宅代理作为一种有效的解决方案&#xff0c;在这个领域扮演了关键角色。本文将探讨2024年住宅代理市场的概况&#xff0c;分…

【CTF Web】BUUCTF Upload-Labs-Linux Pass-03 Writeup(文件上传+PHP+特殊可解析扩展名绕过)

Upload-Labs-Linux 1 点击部署靶机。 简介 upload-labs是一个使用php语言编写的&#xff0c;专门收集渗透测试和CTF中遇到的各种上传漏洞的靶场。旨在帮助大家对上传漏洞有一个全面的了解。目前一共20关&#xff0c;每一关都包含着不同上传方式。 注意 1.每一关没有固定的…

数据库:笔记01绪论

基本概念 数据&#xff08;Data) 描述事物的符号记录称为数据&#xff0c;并且可以数字化存入计算机。 数据的含义称为数据的语义&#xff0c;数据与其语义是不可分的。 数据库&#xff08;DataBase&#xff0c;DB&#xff09; 存放数据的仓库 数据库数据具有永久存储、有…