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

目录

一.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 mysqlsudo 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.mzph.cn/web/51990.shtml

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

相关文章

PMP–一、二、三模、冲刺、必刷–分类–14.敏捷–技巧--累积流图

文章目录 技巧一模二模三模14.敏捷–敏捷团队的衡量结果–累积流图&#xff1a;1、 敏捷项目的项目经理担心团队在最近的迭代中失去了动力。项目经理应该使用哪两种工具来分析团队绩效&#xff1f;&#xff08;选择两个&#xff09; 冲刺必刷7.成本管理--挣值分析燃尽图仅能了解…

From Man vs Machine to Man + Machine

From Man vs. Machine to Man Machine: The Art and AI of Stock Analyses 论文阅读 文章目录 From Man vs. Machine to Man Machine: The Art and AI of Stock Analyses 论文阅读 AbstractConstruction and Performance of the AI AnalystMethodologyThe Performance of Ana…

一款用于分析java socket连接问题的工具

network-tools 介绍 network-tools基于sun jdk、Oracle jdk开发&#xff0c;拦截基于java socket请求&#xff0c;它包括 ​ http 客户端 ​ jdbc 客户端 ​ mq 客户端 ​ redis 客户端 目前提供如下功能&#xff1a; ​ 最近端点连接情况 ​ 最近与远程端点连接情况&am…

计算机网络 第1章 概述

文章目录 计算机网络概念计算机网络的组成计算机网络的功能三种数据交换技术电路交换&#xff08;Circuit Switching&#xff09;报文交换&#xff08;message&#xff09;分组交换 三种交换方式性能对比计算机网络的分类计算机网络的性能指标性能指标1&#xff1a;速率性能指标…

【优化】Nginx 配置页面请求不走缓存 浏览器页面禁用缓存

【优化】Nginx 配置页面请求不走缓存 禁用缓存 目录 【优化】Nginx 配置页面请求不走缓存 禁用缓存 对所有请求禁用缓存 对特定location禁用缓存 注意事项 全局禁用缓存 要配置Nginx使其不缓存内容&#xff0c;通常是指禁止浏览器缓存响应的内容&#xff0c;或者是在代理…

单片机-串口通信(二)

目录 一、串口概念 1.相关概念&#xff1a; 按数据传输方式分类&#xff1a; 按时钟分类 二、STM32F103ZET6中串口 USART特性&#xff1a; NRZ数据格式&#xff1a; 三、配置串口通信 查看硬件原理图 软件配置流程 USART相关的寄存器 新建my_usart1.c和my_usart1.h …

将Google Chrome或Microsoft Edge浏览器的地址栏隐藏的方法

将Google Chrome或Microsoft Edge浏览器的地址栏隐藏的方法 目标效果示范 我们以百度首页为例&#xff0c;普通模式启动的页面通常会显示地址栏&#xff0c;如下图所示&#xff1a; 而本文要实现的效果是隐去地址栏和书签栏&#xff08;如果有的话&#xff09;&#xff0c;无…

JDBC |封装JDBCUtils|PreparedStatement|事务|批处理|数据库连接池| Blob类型数据的读写|Apache—DBUtils简介

一.概述 在Java中&#xff0c;数据库存取技术可分为如下几类&#xff1a; JDBC直接访问数据库JDO技术&#xff08;Java Data Object&#xff09;第三方O/R工具&#xff0c;如Hibernate, Mybatis 等 JDBC是java访问数据库的基石&#xff0c;JDO, Hibernate等只是更好的封装了J…

交流耦合同相放大电路设计

1 简介 该电路在单电源供电时&#xff0c;可放大交流信号&#xff0c;并可对输出信号进行电平抬升&#xff0c;以使其集中于电源电压信号的二分之一处。 2 设计目标 2.1 输入 2.2 输出 2.3 电源 2.4 截止频率下限&#xff08;&#xff09; 2.5 截止频率上限&#xff08;&…

elementUI根据列表id进行列合并@莫成尘

本文章提供了elementUI根据列表id进行列合并的demo&#xff0c;效果如图&#xff08;可直接复制代码粘贴&#xff09; <template><div id"app"><el-table border :data"tableList" style"width: 100%" :span-method"objectS…

物联网之硬件元器件基础知识介绍、集成电路、电阻器、电容器、电感器、二极管、三极管、晶体管、连接器、传感器、开关、电源

MENU 前言电子元件采购网址三极管持续更新中 前言 序言 硬件元器件是电子设备和系统的基本构成部分&#xff0c;它们在电子产品的设计、制造和功能实现中起着至关重要的作用。 电阻器(Resistor) 功能&#xff1a;电阻器用于限制电流流过电路的流动&#xff0c;并分配电压。它们…

【数据结构】-----哈希

目录 一、哈希表概念 二、哈希函数 三、哈希冲突 Ⅰ、定义 Ⅱ、解决 ①闭散列--开放定址法 线性探测 二次线性探测 ②开散列--链地址法&#xff08;哈希桶&#xff09; 问题&#xff1a;哈希表何时扩容&#xff1f; 一、哈希表概念 哈希表又称散列表&#xff0c;它是一…

python网络爬虫(四)——实战练习

0.为什么要学习网络爬虫 深度学习一般过程:   收集数据&#xff0c;尤其是有标签、高质量的数据是一件昂贵的工作。   爬虫的过程&#xff0c;就是模仿浏览器的行为&#xff0c;往目标站点发送请求&#xff0c;接收服务器的响应数据&#xff0c;提取需要的信息&#xff0c…

【408DS算法题】034进阶-22年真题_判断顺序存储二叉树是否是BST

Index 真题题目分析实现总结 真题题目 已知非空二叉树T的结点值均为正整数&#xff0c;采用顺序存储方式保存&#xff0c;数据结构定义如下: typedef struct { // MAX_STZE为已定义常量int SqBiTNode[MAX_SIZE]; // 保存二叉树结点值的数组int ElemNum; …

Python简易IDE工作界面制作

、 休闲一下&#xff0c;学习编程还是要学习一些界面编程&#xff0c;能够根据需要制作图形操作界面&#xff0c;这样我们开发的程序才能方便操作和使用&#xff0c;同时获得更友好的人机交互体验。下面是一个用PyQt5制作的简易界面&#xff0c;供大学参考。如下图所示&a…

【淘宝采集项目经验分享】商品评论采集 |商品详情采集 |关键词搜索商品信息采集

商品评论采集 1、输入商品ID 2、筛选要抓取评论类型 3、填写要抓取的页数 4、立刻提交-启动测试 5、等爬虫结束后就可以到“爬取结果”里面下载数据 商品详情采集 1、输入商品ID 2、立刻提交-启动爬虫 3、等爬虫结束后就可以到“爬取结果”里面下载数据 taobao.item_…

【Python】Python 读取Excel、DataFrame对比并选出差异数据,重新写入Excel

背景&#xff1a;我在2个系统下载出了两个Excel&#xff0c;现在通过对下载的2个Excel数据&#xff0c;并选出差异数据 从新写入一个新的Excel中 differences_url rC:\Users\LENOVO\Downloads\differences.xlsx; //要生成的差异Excel的位置及名称 df1_url rC:\Users\LENOVO\Dow…

cocotb备忘录

按位给和int int后接的值&#xff0c;建议在32之内。大于32位建议按位给&#xff0c;因为int强制类型转换有范围 第二&#xff0c;低位给到低位&#xff0c;高位给到高位 # 将src_ip和dst_ip给到phv中,TMD以后只要报错在这个范围里面&#xff0c;TMD直接马上用手算一遍能不能…

【Qt】 QComboBox | QSpinBox

文章目录 QComboBox —— 下拉框QComboBox 属性核心方法核心信号QComboBox 使用 QSpinBox —— 微调框QSpinBox 属性核心信号QSpinBox 使用 QComboBox —— 下拉框 QComboBox 属性 QComboBox —— 表示下拉框 currentText ——当前选中的文本 currentindex ——当前选中的条…