LNMP环境介绍和搭建

news2025/1/10 20:23:52

一.LNMP简介

1.含义

2.工作原理

二.部署LNMP环境

1.Nginx环境

(1)上传nginx包,下载编译安装工具并解包到指定目录(tar 参数 tar包 - C 目录路径)

(2) 开始编译安装,每次编译后会出现一些包确实报错,按照报的包名安装完成即可,安装好又继续编译

(3)直到出现这个界面就可以开始安装

 2.Mysql环境

(1)如下新增yum库 

(2)安装MariaDB-client.x86_64和MariaDB-server.x86_64并启动mariadb

(3)设置数据库密码并登录 

3.PHP环境

(1)新增扩展源,安装PHP相关包

(2)启动php-fpm 

(3)到安装nginx目录下去修改nginx.conf文件,找到这部分内容并取消注释1,更改为时间html文件存放路径

(4)重启nginx


一.LNMP简介

1.含义

LNMP分贝指的是Linux、Nginx、Mysql、PHP首字母缩写,四者组合起来工作

2.工作原理

用户通过浏览器输入域名时首先访问的是nginx的web服务静态页面由nginx处理,“.php”的动态文件就会由nginx利用FastCGI(可伸缩、高速的在http服务器和脚本语言之间通信的接口,Linux下这个交口是socket,会把动态语言文件和http服务器分离开处理,让http服务器专心处理静态页面,自己将动态页面处理好返给http服务器)接口交给PHP引擎处理解析,若是还要读取数据库信息,则PHP又继续向mysql数据库发出请求,处理完成后再将数据返回给用户

二.部署LNMP环境

1.Nginx环境

(1)上传nginx包,下载编译安装工具并解包到指定目录(tar 参数 tar包 - C 目录路径)

[root@localhost src]# ll
total 1052
drwxr-xr-x 8 1001 1001     158 May 24  2022 nginx-1.22.0
-rw-r--r-- 1 root root 1073322 Aug  9 19:20 nginx-1.22.0.tar.gz
[root@localhost src]# cd nginx-1.22.0/
[root@localhost nginx-1.22.0]# yum install -y gcc gcc-c++ devel make
[root@localhost nginx-1.22.0]# ll
total 800
drwxr-xr-x 6 1001 1001    326 Aug 12 10:03 auto
-rw-r--r-- 1 1001 1001 317070 May 24  2022 CHANGES
-rw-r--r-- 1 1001 1001 484445 May 24  2022 CHANGES.ru
drwxr-xr-x 2 1001 1001    168 Aug 12 10:03 conf
-rwxr-xr-x 1 1001 1001   2590 May 24  2022 configure
drwxr-xr-x 4 1001 1001     72 Aug 12 10:03 contrib
drwxr-xr-x 2 1001 1001     40 Aug 12 10:03 html
-rw-r--r-- 1 1001 1001   1397 May 24  2022 LICENSE
drwxr-xr-x 2 1001 1001     21 Aug 12 10:03 man
-rw-r--r-- 1 1001 1001     49 May 24  2022 README
drwxr-xr-x 9 1001 1001     91 Aug 12 10:03 src

(2) 开始编译安装,每次编译后会出现一些包确实报错,按照报的包名安装完成即可,安装好又继续编译

[root@localhost nginx-1.22.0]# ./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie'

[root@localhost nginx-1.22.0]# yum install -y pcre-devel

[root@localhost nginx-1.22.0]# ./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie'

[root@localhost nginx-1.22.0]# yum install -y openssl-devel

[root@localhost nginx-1.22.0]# ./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie'

(3)直到出现这个界面就可以开始安装

[root@localhost nginx-1.22.0]# make
[root@localhost nginx-1.22.0]# make install
[root@localhost nginx-1.22.0]# nginx -v
nginx version: nginx/1.22.0

 2.Mysql环境

我使用的是mariadb

(1)如下新增yum库 

[root@localhost yum.repos.d]# ll
total 8
-rw-r--r--. 1 root root  68 Jul 23 09:13 cdrom.repo
-rw-r--r--  1 root root 561 Aug 12 09:55 mariadb.repo

[root@localhost yum.repos.d]# vim mariadb.repo
# MariaDB 10.6 CentOS repository list - created 2023-08-12 01:54 UTC
# https://mariadb.org/download/
[mariadb]
name = MariaDB
# rpm.mariadb.org is a dynamic mirror if your preferred mirror goes offline. See https://mariadb.org/mirrorbits/ for details.
# baseurl = https://rpm.mariadb.org/10.6/centos/$releasever/$basearch
baseurl = https://mirrors.aliyun.com/mariadb/yum/10.6/centos/$releasever/$basearch
module_hotfixes = 1
# gpgkey = https://rpm.mariadb.org/RPM-GPG-KEY-MariaDB
gpgkey = https://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck = 1

(2)安装MariaDB-client.x86_64和MariaDB-server.x86_64并启动mariadb

[root@localhost yum.repos.d]# yum install -y MariaDB-client.x86_64 MariaDB-server.x86_64

[root@localhost yum.repos.d]# systemctl start mariadb

[root@localhost yum.repos.d]# systemctl status mariadb
● mariadb.service - MariaDB 10.6.14 database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; disabled; vendor preset: disabled)
  Drop-In: /etc/systemd/system/mariadb.service.d
           └─migrated-from-my.cnf-settings.conf
   Active: active (running) since Sat 2023-08-12 09:58:12 CST; 9s ago
     Docs: man:mariadbd(8)
           https://mariadb.com/kb/en/library/systemd/
  Process: 2759 ExecStartPost=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
  Process: 2730 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= ||   VAR=`cd /usr/bin/..; /usr/bin/galera_recovery`; [ $? -eq 0 ]   && systemctl set-environment _WSREP_START_POSITION=$VAR || exit 1 (code=exited, status=0/SUCCESS)
  Process: 2728 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
 Main PID: 2742 (mariadbd)
   Status: "Taking your SQL requests now..."
   CGroup: /system.slice/mariadb.service
           └─2742 /usr/sbin/mariadbd
Aug 12 09:58:12 localhost.localdomain mariadbd[2742]: 2023-08-12  9:58:12 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB.
Aug 12 09:58:12 localhost.localdomain mariadbd[2742]: 2023-08-12  9:58:12 0 [Note] InnoDB: 10.6.14 started; log sequence number 41320; ...n id 14
Aug 12 09:58:12 localhost.localdomain mariadbd[2742]: 2023-08-12  9:58:12 0 [Note] InnoDB: Loading buffer pool(s) from /var/lib/mysql/i...er_pool
Aug 12 09:58:12 localhost.localdomain mariadbd[2742]: 2023-08-12  9:58:12 0 [Note] Plugin 'FEEDBACK' is disabled.
Aug 12 09:58:12 localhost.localdomain mariadbd[2742]: 2023-08-12  9:58:12 0 [Note] InnoDB: Buffer pool(s) load completed at 230812  9:58:12
Aug 12 09:58:12 localhost.localdomain mariadbd[2742]: 2023-08-12  9:58:12 0 [Note] Server socket created on IP: '0.0.0.0'.
Aug 12 09:58:12 localhost.localdomain mariadbd[2742]: 2023-08-12  9:58:12 0 [Note] Server socket created on IP: '::'.
Aug 12 09:58:12 localhost.localdomain mariadbd[2742]: 2023-08-12  9:58:12 0 [Note] /usr/sbin/mariadbd: ready for connections.
Aug 12 09:58:12 localhost.localdomain mariadbd[2742]: Version: '10.6.14-MariaDB'  socket: '/var/lib/mysql/mysql.sock'  port: 3306  MariaDB Server
Aug 12 09:58:12 localhost.localdomain systemd[1]: Started MariaDB 10.6.14 database server.
Hint: Some lines were ellipsized, use -l to show in full.

(3)设置数据库密码并登录 

[root@localhost yum.repos.d]# mysql -uroot -p123456
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 7
Server version: 10.6.14-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| test               |
+--------------------+

5 rows in set (0.001 sec)

3.PHP环境

(1)新增扩展源,安装PHP相关包

​[root@localhost ~]# yum install epel-release
[root@localhost ~]# rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
[root@localhost ~]# yum --enablerepo=remi install php56-php php56-php-devel php56-php-fpm php56-php-gd php56-php-xml php56-php-sockets php56-php-session php56-php-snmp php56-php-mysql

(2)启动php-fpm 

[root@localhost conf]# find / -name php-fpm
/opt/remi/php56/root/etc/sysconfig/php-fpm
/opt/remi/php56/root/usr/sbin/php-fpm
/opt/remi/php56/root/var/log/php-fpm
/opt/remi/php56/root/var/run/php-fpm
[root@localhost conf]# /opt/remi/php56/root/usr/sbin/php-fpm

(3)到安装nginx目录下去修改nginx.conf文件,找到这部分内容并取消注释1,更改为时间html文件存放路径

[root@localhost ~]# cd /usr/local/src/nginx-1.22.0/conf/
[root@localhost conf]# vim nginx.conf
location ~ \.php$ {
            root           /usr/local/src/nginx-1.22.0/html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            #fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }

注意报错1:

Aug 12 10:21:01 localhost.localdomain nginx[13328]: nginx: [emerg] getpwnam("nginx") failed

解决1:

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

注意报错2:

Aug 12 10:22:29 localhost.localdomain nginx[13346]: nginx: [emerg] mkdir() "/var/cache/nginx/client_temp" failed (2: No such file or directory)

解决2:

[root@localhost conf]# mkdir -pv /var/cache/nginx/client_temp
mkdir: created directory ‘/var/cache/nginx’
mkdir: created directory ‘/var/cache/nginx/client_temp’

(4)重启nginx

[root@localhost conf]# systemctl start nginx
[root@localhost conf]# systemctl status nginx
● nginx.service - nginx - high performance web server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
   Active: active (running) since Sat 2023-08-12 10:23:57 CST; 6s ago
     Docs: http://nginx.org/en/docs/
  Process: 13361 ExecStart=/usr/sbin/nginx -c /usr/local/src/nginx-1.22.0/conf/nginx.conf (code=exited, status=0/SUCCESS)
  Process: 13358 ExecStartPre=/usr/sbin/nginx -t -c /usr/local/src/nginx-1.22.0/conf/nginx.conf (code=exited, status=0/SUCCESS)
 Main PID: 13362 (nginx)
   CGroup: /system.slice/nginx.service
           ├─13362 nginx: master process /usr/sbin/nginx -c /usr/local/src/nginx-1.22.0/conf/nginx.conf
           └─13363 nginx: worker process

Aug 12 10:23:57 localhost.localdomain systemd[1]: Starting nginx - high performance web server...
Aug 12 10:23:57 localhost.localdomain nginx[13358]: nginx: the configuration file /usr/local/src/nginx-1.22.0/conf/nginx.conf syntax is ok
Aug 12 10:23:57 localhost.localdomain nginx[13358]: nginx: configuration file /usr/local/src/nginx-1.22.0/conf/nginx.conf test is successful
Aug 12 10:23:57 localhost.localdomain systemd[1]: Started nginx - high performance web server.

 三.简单测试LNMP环境

到上面nginx配置文件指定的html目录中新建php文件,"phpinfo();"会显示php环境的相关信息 

[root@localhost html]# cat phpinfo.php 
<?php
	phpinfo();
?>
[root@localhost html]# 

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

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

相关文章

钕铁硼永磁材料基本概念

目录 一、何为磁性材料二、永磁材料的主要性能三、永磁材料的历史四、永磁材料的分类五、钕铁硼永磁材料5.1 产业链5.2 生产工艺 之前也写过其他行业的一些生产过程和工艺流程&#xff0c;大家有兴趣的可以翻翻以前的文章。 一、何为磁性材料 参加过九年义务教育的同学应该都知…

类的组合

目录 一、什么是组合 二、为什么用组合 三、如何用组合 python从小白到总裁完整教程目录:https://blog.csdn.net/weixin_67859959/article/details/129328397?spm1001.2014.3001.5502 一、什么是组合 组合就是一个类的对象具备某一个属性&#xff0c;该属性的值是指向另外…

LeetCode[1122]数组的相对排序

难度&#xff1a;Easy 题目&#xff1a; 给你两个数组&#xff0c;arr1 和 arr2&#xff0c;arr2 中的元素各不相同&#xff0c;arr2 中的每个元素都出现在 arr1 中。 对 arr1 中的元素进行排序&#xff0c;使 arr1 中项的相对顺序和 arr2 中的相对顺序相同。未在 arr2 中出现…

从Spring源码看Spring如何解决循环引用的问题

Spring如何解决循环引用的问题 关于循环引用&#xff0c;首先说一个结论&#xff1a; Spring能够解决的情况为&#xff1a;两个对象都是单实例、且通过set方法进行注入。 两个对象都是单实例&#xff0c;通过构造方法进行注入&#xff0c;Spring不能进行循环引用问题&#x…

【果树农药喷洒机器人】Part7:静态PWM变量喷药实验

文章目录 一、引言二、静态PWM变量喷药实验2.1搭建喷药实验平台2.2变量喷药控制实验 一、引言 为综合评估所设计的果树喷药机器人变量喷药效率和质量&#xff0c;验证系统的控制性能和实际作业的可行性&#xff0c;本章开展果树变量喷药实验。首先&#xff0c;通过静态的PWM变…

x11 gtk qt gnome kde 之间的区别和联系

Linux 下的图形库介绍 一、Linux 图形领域的基础设施 1.1 X Window X Window从逻辑上分为三层&#xff1a;X Server、X Client和X协议。 最底层的X Server&#xff08;X服务器&#xff09;主要处理输入/输出信息并维护相关资源&#xff0c;它接受来自键盘、鼠标的操作并将…

CTF之逆向之阿里巴巴

题目地址&#xff1a;http://www.shiyanbar.com/ctf/13 题目预览&#xff1a; 解题过程&#xff1a; 1、下载附件发现是exe文件 2、使用PEid和Detect It Easy查壳 和 开发语言&#xff0c;发现没有加壳&#xff0c;都是用C#开发的 3、C#和Java Python属于解释型语言&#xff…

互联网医院办理|沈阳互联网医院|医疗行业新机遇

互联网医院的办理不仅能为人们带来更便利、高效的医疗服务&#xff0c;更能缓解医疗资源紧张的问题&#xff0c;推动医疗服务的质量和效率提升。在这个充满信息化和科技变革的时代&#xff0c;互联网医院无疑是医疗行业向前迈进的重要一步。 1、提供全天候的医疗服务&#xff1…

spring的aop动态代理对象注入时机

bean生命周期&#xff1a; bean实例化populateBean填充属性invokeAwareMethods调用aware方法postProcessBeforeInitialization后置处理器before方法initializeBean初始化beanpostProcessAfterAfterInitialization后置处理器after方法 代理对象注入有两种情况&#xff1a;提前和…

RAM不够?CUBEIDE使用CCMRAM

RAM不够&#xff1f;使用CCMRAM 文章目录 RAM不够&#xff1f;使用CCMRAM打开连接LD文件&#xff1a;添加代码添加标识宏使用 打开连接LD文件&#xff1a; 添加代码 在SECTIONS段最后加上下面代码&#xff1a; _siccmram LOADADDR(.ccmram); /* CCM-RAM section * * IMPORTAN…

C++11语法笔记

文章目录 一.类中新增的默认成员函数:移动赋值和移动构造二.lambda表达式三.包装器bind函数 一.类中新增的默认成员函数:移动赋值和移动构造 二.lambda表达式 三.包装器 bind函数

spss数据分析--相关性分析与酷炫图

相关性分析与酷炫图 今天就来说说R语言怎么进行相关性分析。 首先&#xff0c;安装两个R包&#xff0c;其中“corrplot”包就能画出好多酷炫的相关性矩阵图。“pheatmap”包是用来画热力图的。 我们调用R里自带的数据集&#xff0c;今天调用的这个是关于汽车道路测试的各项指标…

【力扣每日一题】2023.8.12 合并K个升序链表

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 题目给我们一个链表数组&#xff0c;数组里的链表都是升序的&#xff0c;让我们合并这些链表&#xff0c;要求合并之后还是升序的。 最简…

倒数纪念日-生日提醒事项时间管理倒计时软件

倒数纪念日​​​​​​​是一款功能强大的时间管理、事项提醒软件。帮你更好的管理倒数日、纪念日、生日、节假日、还款日等各种重要日子&#xff0c;通知提醒&#xff0c;让你不再错过生命中的每一个重要日子。 【功能简介】 分类管理&#xff1a;倒数日、纪念日、自定义分类…

aardio 调用 python pickle load 数据

aardio 调用 python pickle load 词典数据 dump_pickle.py import os import sys import time import pickle from readmdict import MDX, MDDos.chdir("/mdict")mdxfile "your.mdx" if not os.path.exists(mdxfile):print("{mdxfile} not found!&…

uniapp 自定义手机顶部状态栏不生效问题

想要的效果想淘宝一样&#xff0c;底色覆盖到手机顶部&#xff0c;找了两天都没找到原因&#xff0c;过程很艰苦&#xff0c;直接上结果吧 项目是后来接手的&#xff0c;最终原因出在这&#xff0c; "immersed" : false>设置为 true 就可以了&#xff0c;沉浸式样…

学习pytorch1环境安装

学习pytorch 1. 环境安装配置镜像源conda命令记录图像相关代码遇到的问题1. torch.cuda.is_available() False 1. 环境安装 B站小土堆视频 配置镜像源 conda config --show channels conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main…

刷题记录(2023-08-12)

1. 小美的排列询问 AC代码&#xff1a; #include <iostream> #include <vector> using namespace std;int main() {int n;cin >> n;vector<int> nums(n);int a, b;for (int i 0; i < n; i) {cin >> nums[i];}cin >> a >> b;for…

javaScript:for循环的认识与使用,以及奇葩for循环

目录 前言 基本的 for 循环通常有三个关键组成部分 一.javaScript中的循环都有那些&#xff08;补充&#xff09; 二.for循环​ 语法/理解​ 执行过程&#xff08;重点&#xff09;​ 注意 三. 基本for循环小练习 1.求1-100的偶数和&#xff0c;包含1和100 2.求1-100中…

DOM的节点操作+事件高级+DOM事件流+事件对象

一.节点操作 1.父节点: node.parentNode 得到的是离元素最近的父级节点 2.子节点: parentNode.childNodes 所有的子节点 包含元素节点 文本节点等等parentNode.children (非标准) 获取所有的子元素节点,实际开发常用 parentNode.firstChild 获取…