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

LNMP+discuz论坛

0.准备

文章目录

    • 0.准备
    • 1.nginx
    • 2.mysql
      • 2.1 mysql8
      • 2.2 mysql5.7
    • 3.php
    • 4.测试php访问mysql
    • 5.部署 Discuz
    • 6.其他

yum源:

# 没有wget,用这个
# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo[root@localhost ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
[root@localhost ~]# wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
[root@localhost ~]# yum makecache && yum clean all

如果 yum 报错: Cannot find a valid baseurl for repo: centos-sclo-rh/x86_64

centos7的scl源在2024年6月30日停止维护,其配置中默认使用了centos官方的地址,无法连接,需要替换为阿里云。

# 重命名原来的文件
cd /etc/yum.repos.d/
mv CentOS-SCLo-scl.repo CentOS-SCLo-scl.repo.bak
mv CentOS-SCLo-scl-rh.repo CentOS-SCLo-scl-rh.repo.bak# 编辑文件
vim CentOS-SCLo-rh.repo# 内容如下
[centos-sclo-rh]
name=CentOS-7 - SCLo rh
baseurl=https://mirrors.aliyun.com/centos/7/sclo/x86_64/rh/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo

安装包下载地址:

  • nginx:

    • https://nginx.org/en/download.html
  • mysql8(with boost):

    • https://cdn.mysql.com//Downloads/MySQL-8.1/mysql-boost-8.1.0.tar.gz
    • https://cdn.mysql.com//Downloads/MySQL-8.2/mysql-boost-8.2.0.tar.gz
  • php8

    • https://www.php.net/distributions/php-8.2.3.tar.gz
  • cmake:

    • https://cmake.org/files
  • libzip

    • https://libzip.org/download/libzip-1.3.2.tar.gz

1.nginx

安装依赖包

yum -y install openssl openssl-devel make zlib zlib-devel gcc gcc-c++ libtool pcre pcre-devel

创建nginx用户

useradd -M -s /sbin/nologin nginx

安装nginx

#解压
tar -xf nginx-1.26.1.tar.gz -C /opt/cd /opt/nginx-1.26.1#配置
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module#编译安装
make -j 2 && make install

创建命令的软连接,方便管理

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

创建服务

vim /usr/lib/systemd/system/nginx.service# 内容如下:
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target

刷新系统服务,启动nginx

systemctl daemon-reload
systemctl start nginx
systemctl enable nginx# firewall
firewall-cmd --zone=public --add-service=http --permanent
firewall-cmd --reload

网页访问

在这里插入图片描述

2.mysql

2.1 mysql8

安装依赖包

yum -y install ncurses ncurses-devel libaio-devel openssl libssl-dev libncurses-dev devtoolset-11-gcc devtoolset-11-gcc-c++ devtoolset-11-binutils#删除依赖包
yum remove ncurses ncurses-devel libaio-devel openssl libssl-dev libncurses-dev devtoolset-11-gcc devtoolset-11-gcc-c++ devtoolset-11-binutils

如果已安装cmake,并且版本低于 3.5.1,则需升级 (mysql8要求更高版本,否则报错如下)

在这里插入图片描述

解决:

# 如果已用yum安装过cmake,则先删除
# yum -y remove cmake# 下载
# wget https://cmake.org/files/v3.30/cmake-3.30.0.tar.gz# 解压
tar -xf cmake-3.30.0.tar.gz# 配置、编译、安装
cd cmake-3.30.0/
./configure --prefix=/usr/local/cmake && make -j 2  && make install# 软连接
ln -sv /usr/local/cmake/bin/cmake /usr/bin/cmake --version

创建mysql用户、目录等

# 创建目录
mkdir /usr/local/mysql/
mkdir /usr/local/mysql/{data,log}# 创建用户 
useradd -M -s /sbin/nologin  mysql# 设置权限
chown -R mysql:mysql /usr/local/mysql/data
chmod -R 755 /usr/local/mysql/data

安装

cd /opt# 解压
tar xf mysql-boost-8.1.0.tar.gz# 切换目录
cd mysql-8.1.0/
mkdir build
cd build/# 配置
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data/ -DSYSCONFDIR=/etc -DMYSQL_TCP_PORT=3306  -DWITH_BOOST=/opt/mysql-8.1.0/boost -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci   -DENABLED_LOCAL_INFILE=ON -DWITH_INNODB_MEMCACHED=ON  -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1  -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1  -DWITH_PERFSCHEMA_STORAGE_ENGINE=1# 编译、安装
make -j 8 && make install

初始化数据库、配置等

# 初始化数据库
[root@localhost ~]# cd /usr/local/mysql/bin/
[root@localhost ~]# ./mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data# mysql配置文件 
[root@localhost ~]# vim /etc/my.cnf[client]
port=3306
socket=/usr/local/mysql/mysql.sock[mysqld]
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
socket = /usr/local/mysql/mysql.sock# 配置MySQL环境变量 
[root@localhost ~]# echo "PATH=/usr/local/mysql/bin:$PATH" >> /etc/profile
[root@localhost ~]# source /etc/profile# 配置系统启动mysql
[root@localhost ~]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@localhost ~]# chmod +x /etc/init.d/mysqld
[root@localhost ~]# systemctl start mysqld
[root@localhost ~]# netstat -anptu | grep 3306
tcp6       0      0 :::3306                 :::*                    LISTEN      30897/mysqld        
tcp6       0      0 :::33060                :::*                    LISTEN      30897/mysqld  # 登录,设置密码
[root@localhost ~]# mysql -uroot
mysql> set password = '123456'           ##设置密码
mysql> exit# 再次测试登录 
[root@localhost ~]# mysql -uroot -p# 授予root远程登录权限
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;  
mysql>FLUSH PRIVILEGES; 

2.2 mysql5.7

安装依赖包

yum -y install \
ncurses \
ncurses-devel \
bison \
cmake

创建用户

# 不创建数据库用户的目录,s指定权限
useradd -M -s /sbin/nologin  mysql

解压安装包

cd /opt
tar xf mysql-boost-5.7.20.tar.gz

配置

cd /opt/mysql-5.7.20/cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8  \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=boost \
-DWITH_SYSTEMD=1

编译、安装

make -j 2 && make install

mysql 配置文件

vim /etc/my.cnf# 内容如下
[client]
port = 3306
socket=/usr/local/mysql/mysql.sock[mysqld]
user = mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306
character-set-server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket=/usr/local/mysql/mysql.sock
bind-address = 0.0.0.0
skip-name-resolve
max_connections=2048
default-storage-engine=INNODB
max_allowed_packet=16M
server-id = 1sql_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 -R mysql:mysql /usr/local/mysql/
chown mysql:mysql /etc/my.cnf

环境变量

echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile	
source /etc/profile

初始化数据库

cd /usr/local/mysql/bin/# 执行
./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data

添加服务

# 拷贝服务文件
cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/# 重新加载系统服务
systemctl daemon-reload# 启动mysql
systemctl start mysqld.service
systemctl enable mysqld.service

mysql 的root用户密码

mysqladmin -u root -p password "123456"#  直接回车

root用户远程登录权限

mysql -u root -p# 查看是否创建成功数据库
mysql> show databases;# 开启root远程登录权限
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;  
mysql> FLUSH PRIVILEGES;

firewall

firewall-cmd --zone=public --add-service=mysql --permanent
firewall-cmd --reload

3.php

安装依赖包

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

解压、配置、编译、安装

# yum -y install bzip2cd /opt
tar -xf php-7.1.10.tar.bz2cd php-7.1.10# 配置
./configure \
--prefix=/usr/local/php \
--with-mysql-sock=/usr/local/mysql/mysql.sock \
--with-mysqli \
--with-zlib \
--with-curl \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-openssl \
--enable-fpm \
--enable-mbstring \
--enable-xml \
--enable-session \
--enable-ftp \
--enable-pdo \
--enable-tokenizer \
--enable-zip# 编译、安装
make -j2 && make install

软连接

ln -s /usr/local/php/bin/* /usr/local/bin/
ln -s /usr/local/php/sbin/* /usr/local/sbin/

验证安装的模块

php -m 

php配置文件

  • php用 ; 做注释
  • php有三个配置文件:
    • php.ini 主配置文件
    • php-fpm.conf 进程服务配置文件(进程配置打开)
    • www.conf 扩展配置文件(一般开发使用)

修改 php.ini

# 复制 php.ini
cp /opt/php-7.1.10/php.ini-development /usr/local/php/lib/php.ini	# 编辑
vim /usr/local/php/lib/php.ini# 939行 修改时区
date.timezone = Asia/Shanghai# 1170行 和mysql数据库进行网络通信
mysqli.default_socket = /usr/local/mysql/mysql.sock

修改 php-fpm.conf

# 复制 php-fpm.conf
cd /usr/local/php/etc/
cp  php-fpm.conf.default php-fpm.conf# 编辑
vim php-fpm.conf# 17行去掉 ; 注释,
pid = run/php-fpm.pid

www.conf

cd /usr/local/php/etc/php-fpm.d/
cp www.conf.default www.conf

启动 php-fpm

PHP-FPM(FastCGI Process Manager:FastCGI 进程管理器)是一个 PHPFastCGI 管理器, 由于Nginx服务器不能处理动态页面,需要由 Nginx 把动态请求交给 php-fpm 进程进行解析。

/usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.ini
netstat -anpt | grep 9000

添加 php-fpm 系统服务

#添加service文件
cd /opt/php-7.1.10/sapi/fpm
cp php-fpm.service /usr/lib/systemd/system/php-fpm.service# 重启服务
systemctl restart php-fpm.service
systemctl enable php-fpm.service

nginx 支持 php 解析

# 修改主配置
vim /usr/local/nginx/conf/nginx.conf# 65行--取消注释,修改
location ~ \.php$ {#指定默认路径/usr/localroot           html;#解析的本地地址fastcgi_pass   127.0.0.1:9000;fastcgi_index  index.php;#将 /scripts 修改为nginx的工作目录fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name;	#$document_root 代表当前请求在root指令中指定的值#fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;  include        fastcgi_params;
}

重启 nginx 服务

systemctl restart nginx.service

测试php页

vim /usr/local/nginx/html/index.php# 以下内容
<?php
phpinfo();
?>

浏览器访问

在这里插入图片描述

4.测试php访问mysql

创建bbs数据库和用户

mysql -uroot -pmysql> CREATE DATABASE bbs;
mysql> GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';
mysql> GRANT all ON bbs.* TO 'bbsuser'@'localhost' IDENTIFIED BY 'admin123';
mysql> flush privileges;

编写php

vim /usr/local/nginx/html/index.php#替换原来的测试页内容
<?php
$link=mysqli_connect('192.168.9.3','bbsuser','admin123');
if($link) echo "<h1>success</h1>";
else echo "fail";
?>

浏览器访问

在这里插入图片描述

5.部署 Discuz

解压、复制网站

# yum -y install unzipcd /opt
unzip Discuz_X3.4_SC_UTF8.zip  -d /opt/discd /opt/dis/dir_SC_UTF8/# 给予静态页面访问地址
cp -r upload/ /usr/local/nginx/html/bbs/

文件权限

cd /usr/local/nginx/html/bbschmod -R 777 ./config/
chmod -R 777 ./data/
chmod -R 777 ./uc_client/
chmod -R 777 ./uc_server/

网页访问

http://192.168.9.3/bbs/install/index.php

在这里插入图片描述

在这里插入图片描述

安装完毕,网页访问

# 前端
http://192.168.9.3/bbs/index.php# 后台
http://192.168.9.3/bbs/admin.php

在这里插入图片描述

在这里插入图片描述

6.其他

fpm参数优化

vim /usr/local/php/etc/php-fpm.conf pid = run/php-fpm.pid

FPM 启动时有 5 个进程,最小空闲 2 个进程,最大空闲 8 个进程,最多可以有20个进程存在。

vim /usr/local/php/etc/php-fpm.d/www.conf# 96行 fpm进程启动方式,动态的
pm = dynamic				
# 107行 fpm进程启动的最大进程数
pm.max_children=20			
# 112行 动态方式下启动时默认开启的进程数,在最小和最大之间
pm.start_servers = 5		
# 117行 动态方式下最小空闲进程数
pm.min_spare_servers = 2	
# 122行 动态方式下最大空闲进程数
pm.max_spare_servers = 8	
# 重启php-fpm
kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`			netstat -anpt | grep 9000
ps -elf | grep php-fpm

n.php


[外链图片转存中...(img-vjV0GUbQ-1734590023574)][外链图片转存中...(img-xWJqChnc-1734590023574)]## 6.其他fpm参数优化```shell
vim /usr/local/php/etc/php-fpm.conf pid = run/php-fpm.pid

FPM 启动时有 5 个进程,最小空闲 2 个进程,最大空闲 8 个进程,最多可以有20个进程存在。

vim /usr/local/php/etc/php-fpm.d/www.conf# 96行 fpm进程启动方式,动态的
pm = dynamic				
# 107行 fpm进程启动的最大进程数
pm.max_children=20			
# 112行 动态方式下启动时默认开启的进程数,在最小和最大之间
pm.start_servers = 5		
# 117行 动态方式下最小空闲进程数
pm.min_spare_servers = 2	
# 122行 动态方式下最大空闲进程数
pm.max_spare_servers = 8	
# 重启php-fpm
kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`			netstat -anpt | grep 9000
ps -elf | grep php-fpm

相关文章:

LNMP+discuz论坛

0.准备 文章目录 0.准备1.nginx2.mysql2.1 mysql82.2 mysql5.7 3.php4.测试php访问mysql5.部署 Discuz6.其他 yum源&#xff1a; # 没有wget&#xff0c;用这个 # curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo[rootlocalhost ~]#…...

在linux系统的docker中安装GitLab

一、安装GitLab&#xff1a; 在安装了docker之后就是下载安装GitLab了&#xff0c;在linux系统中输入命令&#xff1a;docker search gitlab就可以看到很多项目&#xff0c;一般安装第一个&#xff0c;它是英文版的&#xff0c;如果英文不好可以安装twang2218/gitlab-ce-zh。 …...

Python面试常见问题及答案12

问题&#xff1a; 请解释Python中的GIL&#xff08;全局解释器锁&#xff09;是什么&#xff1f; ○ 答案&#xff1a; GIL是Python解释器中的一种机制&#xff0c;用于确保任何时候只有一个线程在执行Python字节码。这在多线程场景下可能影响性能优化&#xff0c;但对于单线程…...

从0-1开发一个Vue3前端系统页面-9.博客页面布局

本节主要实现了博客首页界面的基本布局并完善了响应式布局&#xff0c;因为完善了响应式布局故对前面的页面布局有所改动&#xff0c;这里会将改动后的源码同步上传。 1.对页面头部的用户信息进行设计和美化 布局设计参考 &#xff1a;通常初级前端的布局会通过多个div划分区域…...

[手机Linux] 六,ubuntu18.04私有网盘(NextCloud)安装

一&#xff0c;LNMP介绍 LNMP一键安装包是一个用Linux Shell编写的可以为CentOS/RHEL/Fedora/Debian/Ubuntu/Raspbian/Deepin/Alibaba/Amazon/Mint/Oracle/Rocky/Alma/Kali/UOS/银河麒麟/openEuler/Anolis OS Linux VPS或独立主机安装LNMP(Nginx/MySQL/PHP)、LNMPA(Nginx/MySQ…...

白话java设计模式

创建模式 单例模式&#xff08;Singleton Pattern&#xff09;&#xff1a; 就是一次创建多次使用&#xff0c;它的对象不会重复创建&#xff0c;可以全局来共享状态。 工厂模式&#xff08;Factory Method Pattern&#xff09;&#xff1a; 可以通过接口来进行实例化创建&a…...

助力 Tuanjie OpenHarmony 开发:如何使用工具包 Hilog 和 SDK Kits Package?

随着团结引擎从 1.0.0 迭代至 1.3.0&#xff0c;越来越多的开发者开始使用团结引擎开发 OpenHarmony 应用。 在开发的过程中&#xff0c;我们也收到了大量反馈&#xff0c;尤其是在日志、堆栈和性能数据方面&#xff0c;这些信息对开发和调试过程至关重要。同时&#xff0c;我…...

NSDT 3DConvert:高效实现大模型文件在线预览与转换

NSDT 3DConvert 作为一个 WebGL 展示平台&#xff0c;能够实现多种模型格式免费在线预览&#xff0c;并支持大于1GB的OBJ、STL、GLTF、点云等模型进行在线查看与交互&#xff0c;这在3D模型展示领域是一个相当强大的功能。 平台特点 多格式支持 NSDT 3DConvert兼容多种3D模型…...

电商数据采集电商,行业数据分析,平台数据获取|稳定的API接口数据

电商数据采集可以通过多种方式完成&#xff0c;其中包括人工采集、使用电商平台提供的API接口、以及利用爬虫技术等自动化工具。以下是一些常用的电商数据采集方法&#xff1a; 人工采集&#xff1a;人工采集主要是通过基本的“复制粘贴”的方式在电商平台上进行数据的收集&am…...

VUE+Node.js+mysq实现响应式个人博客|项目初始化+路由配置+基础组件搭建

Day 1 开发文档&#xff1a;项目初始化与基础架构搭建 一、项目初始化 1. 创建项目 首先&#xff0c;我们使用 Vite 创建一个基于 Vue 3 的项目&#xff1a; # 创建项目 npm create vitelatest my-blog -- --template vue # 这条命令会创建一个名为 my-blog 的新项目&#…...

Python如何正确解决reCaptcha验证码(9)

前言 本文是该专栏的第73篇,后面会持续分享python爬虫干货知识,记得关注。 我们在处理某些国内外平台项目的时候,相信很多同学或多或少都见过,如下图所示的reCaptcha验证码。 而本文,笔者将重点来介绍在实战项目中,遇到上述中的“reCaptcha验证码”,如何正确去处理并解…...

web3跨链预言机协议-BandProtocol

项目简介 Band Protocol 项目最初于 2017年成立并建立在 ETH 之上。后于2020年转移到了 Cosmos 网络上&#xff0c;基于 Cosmos SDK 搭建了一条 Band Chain 。这是一条 oracle-specific chain&#xff0c;主要功能是提供跨链预言机服务。Cosmos生态上第一个&#xff0c;也是目…...

JAVA将集合切分成指定份数(简易)

JAVA将集合切分成指定份数 主要方法 /** * 主要方法* param list 切分的集合* param count 切成的份数* return*/ public static List<List> splitList(List list,int count){if(count <0 ){return Lists.newArrayList();}List<List> result Lists.newArrayL…...

深度神经网络(DNN)在时序预测中的应用与缺陷

目录 ​编辑 一、DNN在时序预测中的应用 二、DNN的缺陷 三、技术挑战与未来趋势 四、结论 随着大数据时代的到来&#xff0c;深度学习技术在时序预测领域扮演着越来越重要的角色。深度神经网络&#xff08;DNN&#xff09;因其强大的非线性拟合能力和自动特征提取能力&…...

springboot445新冠物资管理(论文+源码)_kaic

摘 要 使用旧方法对新冠物资管理的信息进行系统化管理已经不再让人们信赖了&#xff0c;把现在的网络信息技术运用在新冠物资管理的管理上面可以解决许多信息管理上面的难题&#xff0c;比如处理数据时间很长&#xff0c;数据存在错误不能及时纠正等问题。这次开发的新冠物资管…...

C++算法第十一天

本篇文章我们继续学习动态规划 目录 第一题 题目链接 题目解析 代码原理 代码编写 第二题 题目链接 题目解析 代码原理 代码编写 第三题 题目链接 题目解析 代码原理 代码编写 第四题 题目链接 题目解析 代码原理 代码编写 第五题 题目链接 题目解析 代…...

常 用 类

一、 Object 类 1. Object 类的介绍 (1) Object 类位于 java.lang 包中&#xff0c;是继承关系的根类、超类&#xff0c;是所有类的父类 ( 直接的父类或是间接父类 ) (2) Object 类型的引用可以用于存储任意类型的对象。 (3) Object 类中定义方法&#xff0c;所有类都可以…...

ACL(访问控制列表)

ACL技术概述 • 随着网络的飞速发展&#xff0c;网络安全和网络服务质量 QoS &#xff08; Quality of Service &#xff09;问题日益突出。 ▫ 园区重要服务器资源被随意访问&#xff0c;园区机密信息容易泄露&#xff0c;造成安全隐患。 ▫ Internet 病毒肆意侵略园区内网&am…...

json字符串转json

问题 Json格式化后&#xff0c;存在各种\n ,\r,以及空格&#xff0c;怎么办&#xff1f; 直接replaceAlll(“\s”,“”) 吗&#xff1f; 解决办法&#xff1a; //使用hutool的jsonutil工具&#xff0c;直接将其转换为json&#xff0c;再转string, //这样就不需要使用 各种re…...

GPT-Omni 与 Mini-Omni2:创新与性能的结合

近年来&#xff0c;随着人工智能技术的飞速发展&#xff0c;各种模型和平台应运而生&#xff0c;以满足从个人用户到企业级应用的多样化需求。在这一领域&#xff0c;GPT-Omni 和 Mini-Omni2 是两款备受瞩目的技术产品&#xff0c;它们凭借独特的设计和强大的功能&#xff0c;在…...

基于大模型的 UI 自动化系统

基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...

Python:操作 Excel 折叠

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...

java 实现excel文件转pdf | 无水印 | 无限制

文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

linux 下常用变更-8

1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行&#xff0c;YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID&#xff1a; YW3…...

力扣-35.搜索插入位置

题目描述 给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...

在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案

这个问题我看其他博主也写了&#xff0c;要么要会员、要么写的乱七八糟。这里我整理一下&#xff0c;把问题说清楚并且给出代码&#xff0c;拿去用就行&#xff0c;照着葫芦画瓢。 问题 在继承QWebEngineView后&#xff0c;重写mousePressEvent或event函数无法捕获鼠标按下事…...

解析奥地利 XARION激光超声检测系统:无膜光学麦克风 + 无耦合剂的技术协同优势及多元应用

在工业制造领域&#xff0c;无损检测&#xff08;NDT)的精度与效率直接影响产品质量与生产安全。奥地利 XARION开发的激光超声精密检测系统&#xff0c;以非接触式光学麦克风技术为核心&#xff0c;打破传统检测瓶颈&#xff0c;为半导体、航空航天、汽车制造等行业提供了高灵敏…...

DAY 45 超大力王爱学Python

来自超大力王的友情提示&#xff1a;在用tensordoard的时候一定一定要用绝对位置&#xff0c;例如&#xff1a;tensorboard --logdir"D:\代码\archive (1)\runs\cifar10_mlp_experiment_2" 不然读取不了数据 知识点回顾&#xff1a; tensorboard的发展历史和原理tens…...

echarts使用graphic强行给图增加一个边框(边框根据自己的图形大小设置)- 适用于无法使用dom的样式

pdf-lib https://blog.csdn.net/Shi_haoliu/article/details/148157624?spm1001.2014.3001.5501 为了完成在pdf中导出echarts图&#xff0c;如果边框加在dom上面&#xff0c;pdf-lib导出svg的时候并不会导出边框&#xff0c;所以只能在echarts图上面加边框 grid的边框是在图里…...

【PX4飞控】mavros gps相关话题分析,经纬度海拔获取方法,卫星数锁定状态获取方法

使用 ROS1-Noetic 和 mavros v1.20.1&#xff0c; 携带经纬度海拔的话题主要有三个&#xff1a; /mavros/global_position/raw/fix/mavros/gpsstatus/gps1/raw/mavros/global_position/global 查看 mavros 源码&#xff0c;来分析他们的发布过程。发现前两个话题都对应了同一…...