Apache的简单介绍(LAMP架构+搭建Discuz论坛)
文章目录
- 1.Apache概述
- 1.1什么是apache
- 1.2 apache的功能及特性
- 1.2.1功能
- 1.2.2特性
- 1.3 MPM 工作模式
- 1.3.1 prefork模式
- 1.3.2 worker模式
- 1.3.3 event模式
- 2.LAMP概述
- 2.1 LAMP的组成
- 2.2 LAMP各组件的主要作用
- 2.3 LAMP的工作过程
- 2.4CGI和FastCGI
- 3.搭建Discuz论坛所需
- 4.编译安装Apache httpd 服务
- 4.1前置准备
- 4.2 搭建编译环境
- 4.3 解压并移动软件包
- 4.4 编译安装
- 4.5 建立软连接,方便补全
- 4.6添加httpd系统服务
- 5.编译安装 mysql
- 5.1前置准备
- 5.2 创造编译环境
- 5.3 解压并移动源码包
- 5.4 配置软件模块
- 5.5 修改MySql配置文件
- 5.6修改环境变量
- 5.7 初始化数据库
- 5.8 添加 MySql系统服务
- 5.9 修改MySql登录密码
- 6.编译安装Php
- 6.1 前置准备
- 6.2 编译安装
- 6.3复制模版文件作为PHP 的主配置文件,进行修改
- 6.4 优化把PHP 的可执行程序文件放入路径环境变量的目录中便于系统识别
- 6.5 修改httpd 服务的配置文件,让apache支持PHP
- 6.6 验证PHP测试页
- 7. 安装Discuz论坛
- 7.1 创建数据库并进行授权
- 7.2解压论坛压缩包并上传站点压缩包
- 7.3 更改论坛目录属主
- 7.4 安装Discuz论坛
1.Apache概述
1.1什么是apache
Apache通常指的是Apache HTTP Server,是一个开源的、跨平台的Web服务器软件。它是目前世界上使用最广泛的Web服务器之一,也是许多网站和应用程序的核心基础。
1.2 apache的功能及特性
1.2.1功能
- 提供http协议服务
- 多个虚拟主机:IP、Port、FQDN
- CGI:Common Gateway Interface,通用网关接口,支持动态程序
- 反向代理
- 负载均衡
- 路径别名
- 丰富的用户认证机制:basic,digest
- 支持第三方模块
1.2.2特性
- 高度模块化:core + modules
- DSO:Dynamic Shared Object 动态加载/卸载
- MPM:multi-processing module 多路处理模块
1.3 MPM 工作模式
1.3.1 prefork模式
预产生(Pre-Fork)模式适用于稳定性要求高的场景
-
Apache在启动时会创建一组预定义数量的子进程(称为工作进程)。
-
每个工作进程都是独立的,有自己的内存空间和资源。
-
当一个请求到达服务器时,主进程选择一个空闲的工作进程来接受该请求。
-
选中的工作进程处理该请求,生成响应并将其发送回客户端。
-
这种模式下每个工作进程只能处理一个请求,处理完请求后会继续等待下一个请求。
优点:稳定
缺点:慢,占用资源,不适用于高并发场景
1.3.2 worker模式
工作线程(Worker)模式适用于资源利用率高的场景
-
Apache在启动时会创建一组预定义数量的线程池。
-
每个线程都可以处理多个请求,线程之间共享服务器的内存和资源。
-
当一个请求到达服务器时,一个空闲的线程将被选择来处理该请求。
-
线程可能会处理多个请求,通过线程池重用来更高效地处理请求。
-
这种模式下需要注意线程安全的问题,以确保多个线程间的数据访问不会导致冲突。
优点:相比prefork 占用的内存较少,可以同时处理更多的请求
缺点:使用keep-alive的长连接方式,某个线程会一直被占据,即使没有传输数据,也需要一直等待到超时才会被释放。
1.3.3 event模式
事件驱动(Event MPM)模式适用于高并发场景
-
在事件驱动模式下,Apache使用I/O多路复用(如epoll或kqueue)来监听多个连接。
-
当一个连接有数据到达时,Apache将发出事件通知,表示该连接有可读数据。
-
Apache将事件分发给一个空闲的工作线程来处理请求。
-
工作线程处理请求的过程通常是非阻塞的,通过事件驱动方式读取数据和发送响应。
-
这种模式下可以处理大量的并发请求,因为它不需要为每个请求创建一个新的进程或线程。
优点:单线程响应多请求,占据更少的内存,高并发下表现更优秀,会有一个专门的线程来管理keep-alive类型的线程,当有真实请求过来的时候,将请求传递给服务线程,执行完毕后,又允许它释放
缺点:没有线程安全控制
2.LAMP概述
2.1 LAMP的组成
组成部分 | 功能 |
---|---|
Linux(操作系统) | LAMP 架构的基础,用于托管 Web 服务器和应用程序 |
Apache(web服务器) | 处理http的请求、构建响应报文等自身服务 |
Mysql(数据库) | 提供应用程序对数据的存储和读取 |
Php(编程语言) | 用于生成动态主页内容 |
2.2 LAMP各组件的主要作用
-
LInux:提供网段、可靠的操作系统
-
apache:
第一:处理http的请求、构建响应报文等自身服务;
第二:配置让Apache支持PHP程序的响应(通过PHP模块或FPM);
第三:配置Apache具体处理php程序的方法,如通过反向代理将php程序交给fcgi处理。 -
mysql :
第一:提供PHP程序对数据的存储;
第二:提供PHP程序对数据的读取(通常情况下从性能的角度考虑,尽量实现数据库的读写分离)。 -
php:
提供apache的访问接口,即CGI或Fast CGI(FPM);
提供PHP程序的解释器;
提供mysql数据库的连接函数的基本环境。
2.3 LAMP的工作过程
- 客户端发送HTTP请求到LAMP服务器。
- Apache Web服务器接收到请求并解析请求的URL。
- Apache根据URL确定要访问的文件或资源,并将请求传递给适当的PHP解释器。
- PHP解释器执行服务器端的PHP代码,生成HTML等动态内容。
- PHP将生成的动态内容返回给Apache服务器。
- Apache服务器将动态内容返回给客户端。
- 客户端浏览器接收到动态内容,并显示在用户界面上。
2.4CGI和FastCGI
CGI(公共网关接口)和FastCGI(快速公共网关接口)都是用于将Web服务器与脚本语言(如PHP、Python、Perl等)之间进行通信的协议
特性 | CGI | FastCGI |
---|---|---|
运行方式 | 每次请求创建一个新的进程 | 复用进程处理多个请求 |
性能 | 每个请求需要重新加载代码 | 多个请求共享同一份代码 |
连接方式 | 临时连接 | 常驻连接 |
并发能力 | 每次只能处理一个请求 | 可以在多个进程同时处理多个请求 |
扩展性 | 难以扩展 | 较容易进行扩展 |
安全性 | 较低 | 较高 |
适用场景 | 适用于小型或低流量应用 | 适用于高流量或复杂应用 |
3.搭建Discuz论坛所需
编译安装Apache httpd服务 ----->编译安装MySQL----->编译安装PHP ----->搭建LAMP平台
4.编译安装Apache httpd 服务
4.1前置准备
systemctl stop firewalld
setenforce 0
#关闭防火墙和selinux
4.2 搭建编译环境
yum -y install gcc gcc-c++ make pcre-devel expat-devel perl pcregcc \ #c语言编译器
gcc-c++ \ #c编译器
make \ #源代码编译器
pcre\ #pcre函数库
pcre-devel \ #pcre接口开发包
expat-devel \ #用于支持网站解析HTML、XML文件
perl #perl 语言编译器
4.3 解压并移动软件包
解压软件包
cd /opt
tar xf apr-1.6.2.tar.gz
tar xf apr-util-1.6.0.tar.gz
tar jvxf httpd-2.4.29.tar.bz2x移动软件包
mv apr-1.6.2 httpd-2.4.29/srclib/apr
mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-utilcd httpd-2.4.29
4.4 编译安装
./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi--prefix=/usr/local/httpd \ #指定httpd的安装目录
--enable-so \ #启用动态加载模块支持,使httpd具备进一步扩展功能的能力
--enable-rewrite \ #启用网页地址的重写功能,用于网站优化、防盗链及目录迁移维护
--enable-charset-lite \ #启用字符集支持,以便支持使用各种字符集编码的页面
--enable-cgi #启用CGI(通用网关接口)脚本程序支持,便于网站外部扩展应用访问的能力make -j2 && make install
#启用2核编译编译并安装
4.5 建立软连接,方便补全
cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
#将文件拷入/etc/init.d/httpdln -s /usr/local/httpd/conf/httpd.conf /etc/
#建立配置文件软连接放入etc目录下ln -s /usr/local/httpd/bin/* /usr/local/bin/
#将启动文件放入/usr/local/bin/目录下可以直接使用
4.6添加httpd系统服务
方法一
vim /lib/systemd/system/httpd.service
#创建指向文件将httpd纳入systemd管理中[Unit]
Description=The Apache HTTP Server
After=network.target [Service]
Type=forking
PIDFile=/usr/local/httpd/logs/httpd.pid
ExecStart=/usr/local/bin/apachectl $OPTIONS
ExecReload=/bin/kill -HUP ${MAINPID}[Install]
WantedBy=multi-user.targetsystemctl daemon-reload
#重新加载
systemctl start httpd
#启动httpd服务
ss -natp |grep 80
#查看80端口是否被占用
方法二
修改配置文件
vim /etc/httpd.conf
--52行--修改
Listen 192.168.2.100:80
--197行--取消注释,修改
ServerName www.byyd.com:80--221行--默认首页存放路径
DocumentRoot "/usr/local/httpd/htdocs"
--255行--默认首页文件名设置
DirectoryIndex index.html
httpd -t
#检查语法错误cat /usr/local/httpd/htdocs/index.html
#查看主页文件内容
systemctl daemon-reload
#重新加载systemctl restart httpd;systemctl status httpd
#重新启动并查看服务状态
5.编译安装 mysql
5.1前置准备
systemctl stop firewalld
setenforce 0
#关闭防火墙和selinux
5.2 创造编译环境
yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmakegcc \ #C语言的编译器
gcc-c++ \ #C++的编译器
ncurses \ #字符终端下图形互动功能的动态库
ncurses-devel \ #ncurses开发包
bison \ #语法分析器
cmake #mysql需要用到的cmake编译安装包useradd -s /sbin/nologin mysql
#创建一个MySQL用户不允许登录
5.3 解压并移动源码包
tar xf mysql-5.7.17.tar.gz
tar xf boost_1_59_0.tar.gzmv boost_1_59_0 /usr/local/boost
5.4 配置软件模块
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ 指定mysql的安装路径
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ 指定mysql进程监听套接字文件(数据库连接文件)的存储路径
-DSYSCONFDIR=/etc \ 指定配置文件的存储路径
-DSYSTEMD_PID_DIR=/usr/local/mysql \ 指定进程文件的存储路径
-DDEFAULT_CHARSET=utf8 \ 指定默认使用的字符集编码,如 utf8
-DDEFAULT_COLLATION=utf8_general_ci \ 指定默认使用的字符集校对规则
-DWITH_EXTRA_CHARSETS=all \ 指定支持其他字符集编码
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ 安装INNOBASE存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \ 安装ARCHIVE存储引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ 安装BLACKHOLE存储引擎
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \ 安装FEDERATED存储引擎
-DMYSQL_DATADIR=/usr/local/mysql/data \ 指定数据库文件的存储路径
-DWITH_BOOST=/usr/local/boost \ 指定boost的路径,若使用mysql-boost集成包安装则-DWITH_BOOST=boost
-DWITH_SYSTEMD=1 生成便于systemctl管理的文件
#编译和安装
make -j2 && mask install
chown -R mysql:mysql /usr/local/mysql/
#将数据库目录的属主和数组都改为mysql
5.5 修改MySql配置文件
vim /etc/my.cnf#客户端设置
[client]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock#服务端配置
[mysql]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock#服务全局配置
[mysqld]
user = mysql #设置管理用户
basedir = /usr/local/mysql #指定数据库的安装目录
datadir = /usr/local/mysql/data #指定数据库文件的存储路径
port = 3306 #指定端口
character_set_server=utf8 #设置服务器字符集编码格式为utf8
pid-file = /usr/local/mysql/mysqld.pid #指定pid 进程文件路径
socket = /usr/local/mysql/mysql.sock #指定数据库连接文件
server-id = 1 #指定服务ID号sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES
chown mysql:mysql /etc/my.cnf
#修改配置文件属主和属组
5.6修改环境变量
echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profileecho 'export PATH' >> /etc/profilesource /etc/profile #刷新使其生效
5.7 初始化数据库
cd /usr/local/mysql/bin/./mysqld \
--initialize-insecure \ #生成初始化密码为空
--user=mysql \ #指定管理用户
--basedir=/usr/local/mysql \ #指定数据库的安装目录
--datadir=/usr/local/mysql/data #指定数据库文件的存储路径
5.8 添加 MySql系统服务
cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
#能使用systemctl启动
systemctl daemon-reload 刷新识别
systemctl start mysqld.service 开启服务
systemctl enable mysqld 开机自启动
ss -anpt | grep 3306 |tr -s ' ' 查看端口
5.9 修改MySql登录密码
mysqladmin -u root -p password "abc123"
#刚开始没密码是空的直接回车mysql -u root -p
#这个命令敲下,提示要输入密码,这个就是刚才设置的密码abc123
6.编译安装Php
6.1 前置准备
#安装GD库和GD库关联程序,用来处理和生成图片yum -y install \
gd \
libjpeg libjpeg-devel \
libpng libpng-devel \
freetype freetype-devel \
libxml2 libxml2-devel \
zlib zlib-devel \
curl curl-devel \
openssl openssl-devel
tar xf php-7.1.10.tar.bz2
#解压软件模块
6.2 编译安装
cd php-7.1.10./configure \
--prefix=/usr/local/php7 \ 指定将 PHP 程序的安装路径
--with-apxs2=/usr/local/httpd/bin/apxs \ 指定Apache httpd服务提供的apxs 模块支持程序的文件位置
--with-mysql-sock=/usr/local/mysql/mysql.sock \ 指定mysql 数据库连接文件的存储路径
--with-config-file-path=/usr/local/php7 设置 PHP 的配置文件 php.ini 将要存放的位置
--with-mysqli \ 添加 MySQL 扩展支持
--with-zlib \ 支持zlib功能,提供数据压缩
--with-curl \ 开启curl扩展功能,实现HTTP的Get下载和Post请求的方法
--with-gd \ 激活gd 库的支持
--with-jpeg-dir \ 激活jpeg 的支持
--with-png-dir \ 激活png 的支持
--with-freetype-dir \
--with-openssl \
--enable-mbstring \ 启用多字节字符串功能,以便支持中文等代码
--enable-xml \ 开启扩展性标记语言模块
--enable-session \ 会话
--enable-ftp \ 文本传输协议
--enable-pdo \ 函数库
--enable-tokenizer \ 令牌解释器
--enable-zip ZIP压缩格式
make -j2 && make install
#编译并安装
6.3复制模版文件作为PHP 的主配置文件,进行修改
cp /opt/php-7.1.10/php.ini-development /usr/local/php7/php.inivim usr/local/php7/php.ini
6.4 优化把PHP 的可执行程序文件放入路径环境变量的目录中便于系统识别
ln -s /usr/local/php7/bin/* /usr/local/bin/php -m
#查看php加载了那些模块
6.5 修改httpd 服务的配置文件,让apache支持PHP
vim /etc/httpd.conf
6.6 验证PHP测试页
rm -rf /usr/local/httpd/htdocs/index.html
#删掉原默认页面
vim /usr/local/httpd/htdocs/index.php
#编辑现默认页面
<?php
phpinfo();
?>systemctl restart httpd.service
7. 安装Discuz论坛
7.1 创建数据库并进行授权
mysql -u root -p
#以root用户身份运行数据库
注意:记得加英文的";"CREATE DATABASE bbs;
#创建一个数据库
GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';
#把bbs数据库里面所有表的权限授予给bbsuser,并设置密码admin123
flush privileges;
#刷新数据库
show databases;
#查看当前创建数据库
7.2解压论坛压缩包并上传站点压缩包
unzip /opt/Discuz_X3.4_SC_UTF8.zip -d /opt/dis
#解压论坛压缩包cd /opt/dis/dir_SC_UTF8/
cp -r upload/ /usr/local/httpd/htdocs/bbs————————上传站点更新包
7.3 更改论坛目录属主
cd /usr/local/httpd/htdocs/bbschown -R daemon ./config
chown -R daemon ./data
chown -R daemon ./uc_client
chown -R daemon ./uc_server/data
7.4 安装Discuz论坛
http://192.168.67.100/bbs
#论坛页面访问
相关文章:

Apache的简单介绍(LAMP架构+搭建Discuz论坛)
文章目录 1.Apache概述1.1什么是apache1.2 apache的功能及特性1.2.1功能1.2.2特性 1.3 MPM 工作模式1.3.1 prefork模式1.3.2 worker模式1.3.3 event模式 2.LAMP概述2.1 LAMP的组成2.2 LAMP各组件的主要作用2.3 LAMP的工作过程2.4CGI和FastCGI 3.搭建Discuz论坛所需4.编译安装Ap…...

CDL基础原理
一、CDL简介 CDL(全称Change Data Loader)是一个基于Kafka Connect框架的实时数据集成服务。 CDL服务能够从各种OLTP数据库中捕获数据库的Data Change事件,并推送到kafka,再由sink connector推送到大数据生态系统中。 CDL目前支…...

WPF基础入门-Class7-WPF-MVVN框架
WPF基础入门 Class7-MVVN框架 使用框架可以省掉如Class6中的ViewModelBase.cs的OnPropertyChanged,亦方便命令传参 1、NuGet安装CommunityToolkit.Mvvm(原Mircrosoft.Toolkit.Mvvm)也可以安装MVVMLight等其他集成库 2、显示页面࿱…...

C语言练习题第三弹!!!绝对典中典!!!
目录 1.单身狗1 1.1 题目 1.2 分析推理 1.3 代码实现 2.单身狗2 2.1 题目 2.2 分析推理 2.3 代码实现 3.字符串左旋 3.1 题目 3.2 分析推理 3.3 代码实现 3.3.1 方法一 3.3.2 优化一 3.3.2.1 思路分析 3.3.2.2 strcpy函数和strncat函数 3.3.2.3 代码实现 3.3.…...
Jedis
Jedis 使用Java操作redis Jedis是redis官方推荐的Java连接开发工具! 使用Java操作redis的中间件 测试 导入对应的依赖 <!-- https://mvnrepository.com/artifact/redis.clients/jedis --><dependency><groupId>redis.clients</groupId&g…...
Linux 使用TCP_INFO查询TCP连接的状态信息
Linux 上可以使用TCP_INFO查询TCP连接状态信息包括: 发送方拥塞窗口阈值、发送方缓冲区拥塞窗口、advmss(Advertised MSS)、通过 ACK 确认的累计字节数等等 struct tcp_info {__u8 tcpi_state;__u8 tcpi_ca_state;__u8 tcpi_retransmits;__…...

软件测试案例 | 气象探测库存管理系统的集成测试计划
将经过单元测试的模块按照设计要求连接起来,组成规定的软件系统的过程被称为“集成”。集成测试也被称为组装测试、联合测试、子系统测试或部件测试等,其主要用于检查各个软件单元之间的接口是否正确。集成测试同时也是单元测试的逻辑扩展,即…...
vue点击按钮重新加载页面(vue第一次加载页面点击按钮出现页面刷新问题之后一切正常)
问题描述 所开发的vue项目每次跑起来之后就会出现点击按钮后重新加载整个页面的问题,但是只会在第一次点击的时候出现,后面就不会在出现加载整个页面的情况。 原因 在form表单中使用button按钮导致form表单进行了页面刷新。button默认的“type‘submi…...
软件工程(十一) 系统设计分类
我们知道需求规格说明书(SRS)落地之后, 就要开始着手系统设计了,看一下这个系统该如何来设计,并且如何实现。学习系统设计之前,需要先了解系统设计有哪些分类。 系统设计的分类如下 界面设计结构化设计面向对象设计(最重要)1、界面设计 界面设计也叫做人机界面设计,属于…...
数字转中文大写金额
有时候,我们需要显示中文大写金额,比如打印银行付款申请单等。 新建一个工程,加入一个标准模块在模块中加入如下代码,窗口中调用 AmountInChineseWords 函数即可。最大解析到百万亿,小数最多解析两位到分。 模块代码…...
Java——HashMap和HashTable的区别
Java——HashMap和HashTable的区别 Java HashMap和HashTable的区别1. 继承的父类2. 线程安全性3. null值问题4. 初始容量及扩容方式5. 遍历方式6. 计算hash值方式 Java HashMap和HashTable的区别 1. 继承的父类 都实现了Map、Cloneable(可复制)、Seria…...

Docker去除sudo权限
Docker去除sudo权限 使用docker命令时,每次都要sudo提权,否则就会报错提示无权限。 1.查看docker用户组及成员 sudo cat /etc/group | grep docker2.添加docker用户组 sudo groupadd docker3.添加用户到docker组 sudo gpasswd -a ${USER} docker4.增…...
【ROS系统】Ubuntu22.04系统中安装ROS2系统_ubuntu 安装ros2_GoesM
【ROS系统】Ubuntu22.04系统中安装ROS2系统_ubuntu 安装ros2_GoesM Excerpt ROS仿真、专为自动驾驶研发提供的系统平台_ubuntu 安装ros2 参考博客:ROS 安装详细教程 —— Ubuntu22.0.4 LTS 安装 Part 0. 准备 首先,我们需要一个Ubuntu系统。 Part 1. …...

MySQL8.0.22安装过程记录(个人笔记)
1.点击下载MySQL 2.解压到本地磁盘(注意路径中不要有中文) 3.在解压目录创建my.ini文件 文件内容为 [mysql] # 设置mysql客户端默认字符集 default-character-setutf8[mysqld] # 设置端口 port 3306 # 设计mysql的安装路径 basedirE:\01.app\05.Tool…...
Python中pip和conda的爱恨情仇
在使用pip和conda时,是否也有过以下的疑惑??? 目前只总结了以下常见的几种混淆,如有学者还有其它疑惑,欢迎留言讨论,我会解答更新,帮助自己理清的同时,也帮助其他同样困…...

HTTPS协议原理
目录 前言 1.理解加密和解密 2.为什么要加密 3.常见的加密方式 3.1对称加密 3.2非对称加密 4.数据摘要和数据指纹 5. 数字签名 6.HTTPS的加密策略 6.1只使用对称加密 6.2使用非对称加密 6.2.1服务端使用非对称加密 6.2.2双方都使用非对称加密 6.3对称加密非对称加…...

C语言每日一练------Day(6)
本专栏为c语言练习专栏,适合刚刚学完c语言的初学者。本专栏每天会不定时更新,通过每天练习,进一步对c语言的重难点知识进行更深入的学习。 今日练习题关键字:整数转换 异或 💓博主csdn个人主页:小小unicorn…...

springboot中使用ElasticSearch
引入依赖 修改我们的pom.xml,加入spring-boot-starter-data-elasticsearch <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-elasticsearch</artifactId> </dependency>编写配…...

十二、集合(2)
本章概要 添加元素组集合的打印列表 List 添加元素组 在 java.util 包中的 Arrays 和 Collections 类中都有很多实用的方法,可以在一个 Collection 中添加一组元素。 Arrays.asList() 方法接受一个数组或是逗号分隔的元素列表(使用可变参数ÿ…...

【网络设备】交换机的概念、工作原理、功能以及以太网帧格式
个人主页:insist--个人主页 本文专栏:网络基础——带你走进网络世界 本专栏会持续更新网络基础知识,希望大家多多支持,让我们一起探索这个神奇而广阔的网络世界。 目录 一、认识交换机 二、交换机的主要功能 1、数…...

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...
Oracle查询表空间大小
1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...
在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:
在 HarmonyOS 应用开发中,手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力,既支持点击、长按、拖拽等基础单一手势的精细控制,也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档,…...

centos 7 部署awstats 网站访问检测
一、基础环境准备(两种安装方式都要做) bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats࿰…...
2024年赣州旅游投资集团社会招聘笔试真
2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...
如何为服务器生成TLS证书
TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...
Spring AI 入门:Java 开发者的生成式 AI 实践之路
一、Spring AI 简介 在人工智能技术快速迭代的今天,Spring AI 作为 Spring 生态系统的新生力量,正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务(如 OpenAI、Anthropic)的无缝对接&…...

蓝桥杯3498 01串的熵
问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798, 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

ABAP设计模式之---“简单设计原则(Simple Design)”
“Simple Design”(简单设计)是软件开发中的一个重要理念,倡导以最简单的方式实现软件功能,以确保代码清晰易懂、易维护,并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计,遵循“让事情保…...