【调试笔记-20240525-Windows-配置 QEMU/x86_64 运行 OpenWrt-23.05 发行版并搭建 WordPress 博客网站】

调试笔记-系列文章目录

调试笔记-20240525-Windows-配置 QEMU/x86_64 运行 OpenWrt-23.05 发行版并搭建 WordPress 博客网站


文章目录

  • 调试笔记-系列文章目录
    • 调试笔记-20240525-Windows-配置 QEMU/x86_64 运行 OpenWrt-23.05 发行版并搭建 WordPress 博客网站
  • 前言
  • 一、调试环境
    • 操作系统:Windows 10 专业版
    • 调试环境
    • 调试目标
  • 二、调试步骤
    • 开启 Windows 虚拟化功能 WHPX
    • 配置上网功能
      • 网络拓扑结构
      • 配置 OpenWrt 远程连接
      • 配置 LuCI 管理界面
      • 安装 nginx Web 服务器
      • 安装 PHP8 FPM 服务
      • 安装 MariaDB/MySQL 数据库服务
      • 安装 WordPress 博客 CMS
  • 三、应用场景
    • 个人博客站点
  • 四、参考资料
  • 总结


前言

本文记录在 Windows 环境下使用 QEMU 运行 OpenWrt-23.05 发行版本的方法。

实验使用的电脑如下:

CPU:

Intel Core i5 8265U

操作系统:

Microsoft Windows 10  Professional (x64), Version 22H2, Build 19045.4412

一、调试环境


操作系统:Windows 10 专业版

操作系统详细信息如下:

Microsoft Windows 10  Professional (x64), Version 22H2, Build 19045.4412

调试环境

  • Windows 系统已安装 QEMU 并成功运行 OpenWrt 发行版

参考【安装笔记-20240520-Windows-在 QEMU 中尝试运行 OpenWRT】


调试目标

在 Windows/QEMU 中运行 OpenWrt-23.05 发行版本。

说明:按照【调试笔记-20240521-Linux-编译 QEMU/x86_64 可运行的 OpenWrt 固件】编译好 OpenWrt 固件后,我们尝试配置好 QEMU ,使其完整运行 OpenWrt 各项功能,包括:

1、能上网
2、可以访问 OpenWrt 配置界面
3、开启对外的 Web 服务功能
4、提供个人博客功能
5、更多……


二、调试步骤

开启 Windows 虚拟化功能 WHPX

  • 在 “启用或关闭 Windows 功能” 中勾选 “Windows 虚拟机监控程序平台"

在这里插入图片描述

配置上网功能

网络拓扑结构

  • OpenWrt eth0: LAN
  • OpenWrt 主机配置为客户设备模式,挂在 QEMU 的 SLIRP 网络中
  • OpenWrt 主机 LAN 网卡开启 DHCP-client 模式,自动获取 IP 地址
  • QEMU 网络设备的设置中增加 Windows 主机端口转发,将 Windows 主机的 50022 端口转发到 QEMU 访客系统(即 OpenWrt 主机)的 22 端口,从而实现从 Windows 主机通过 SSH 连接访问 OpenWrt 主机系统的功能

在这里插入图片描述

接下来我们一步一步实现前述功能需求。

配置 OpenWrt 远程连接

1、设置 QEMU 启动选项,输入以下命令:

..\qemu\8.2.0\qemu-system-x86_64.exe -L "D:\qkd-app\vmos\data" -cpu "Penryn,vendor=GenuineIntel,+ssse3,+sse4.2" -M  "q35,accel=whpx,kernel-irqchip=off" 	-m 4G -bios "data\ovmf.fd" -netdev "user,id=hn0,hostfwd=tcp::50022-:22" -device "e1000,netdev=hn0,id=nic1" -debugcon "file:debug.log" -global "isa-debugcon.iobase=0x402" -hda openwrt-23.05.3-x86-64-generic-ext4-combined-efi.img

在这里插入图片描述

2、配置 OpenWrt 主机为客户设备模式,并开启 DHCP-client 功能

在 OpenWrt 主机终端输入以下命令:

uci set network.lan.proto="dhcp"
uci commit network
service network restart

然后,输入以下命令检查 OpenWrt 主机是否正确获取到 QEMU SiLRP 网络 DHCP 服务器分配的 IP 地址

ip addr

在这里插入图片描述

从上图可见,OpenWrt 主机已经成功获得 10.0.2.15 的 IP 地址

3、从 Windows 主机通过 SSH 连接 OpenWrt 访客主机

主机:localhost
端口:50022

在这里插入图片描述

成功登录 OpenWrt 主机后,界面如下:

在这里插入图片描述

4、测试网络联通性

在 PuTTY 窗口输入以下命令:

ping www.baidu.com

在这里插入图片描述

上图可见,OpenWrt 访客主机能访问到 www.baidu.com ,网络通畅。

配置 LuCI 管理界面

5、修改管理页面 uhttpd 服务器的监听端口,输入以下命令:

uci set uhttpd.main.listen_http='0.0.0.0:50080'
uci add_list uhttpd.main.listen_http='[::]:50080'
uci set uhttpd.main.listen_https='0.0.0.0:50443'
uci add_list uhttpd.main.listen_https='[::]:50443'
uci commit uhttpd
/etc/init.d/uhttpd restart

完成后,使用 netstat 命令确认是否修改成功

netstat -a -n -t

在这里插入图片描述

上图可见,已经将 uhttpd 的监听端口修改到 50080 和 50443 了。

6、删除 dnsmasq 包

观察到 OpenWrt 主机的 53 端口有 dnsmasq 进程在监听,此进程提供 DHCP 和 DNS 服务,本例中我们不需要提供这两项服务,执行以下命令删除 dnsmasq 包:

opkg remove dnsmasq

重启 OpenWrt 主机后,输入以下命令确认是否删除并停止了 DHCP 和 DNS 服务:

netstat -p -a -n -t

在这里插入图片描述

安装 nginx Web 服务器

7、安装 nginx HTTP 服务器,执行以下命令:

opkg update
opkg install nginx-full

默认 nginx 配置给 OpenWrt 的 LuCI 使用。
因此,我们需要关闭此设置,并设置新的站点,执行以下命令:

uci set nginx.global.uci_enable=false
uci commit

接下来我们为 nginx 创建一个 example.com 的网站,执行以下命令:

uci add nginx server
uci rename nginx.@server[-1]=example_com
uci add_list nginx.example_com.listen='80'
uci add_list nginx.example_com.listen='[::]:80'
uci set nginx.example_com.server_name='example.com'
uci set nginx.example_com.client_header_timeout='10s'
uci add_list nginx.example_com.include='conf.d/example.com.locations'

先设置此站点不可用,执行以下命令:

uci set nginx.example_com=disable
uci commit nginx

创建站点配置文件 /etc/nginx/conf.d/example.com.locations ,内容如下:

location /srv/www {access_log off; # default: not logging accesses.# access_log /proc/self/fd/1 openwrt; # use logd (init forwards stdout).# error_log stderr; # default: logging to logd (init forwards stderr).error_log /dev/null; # disable error logging after config file is read.# (state path of a file for access_log/error_log to the file instead.)index index.html;
}

将配置给 LuCI 的站点设置为不可用,执行以下命令:

uci set nginx._lan=disable
uci set nginx._redirect2ssl=disable
uci commit nginx

修改 nginx 的 uci 模板文件 /etc/nginx/uci.conf.template ,将 root 设置为 /srv/www ,文件内容如下:

# Consider using UCI or creating files in /etc/nginx/conf.d/ for configuration.
# Parsing UCI configuration is skipped if uci set nginx.global.uci_enable=false
# For details see: https://openwrt.org/docs/guide-user/services/webserver/nginx
# UCI_CONF_VERSION=1.2worker_processes auto;user root;include module.d/*.module;events {}http {access_log off;log_format openwrt'$request_method $scheme://$host$request_uri => $status'' (${body_bytes_sent}B in ${request_time}s) <- $http_referer';include mime.types;default_type application/octet-stream;sendfile on;client_max_body_size 128M;large_client_header_buffers 2 1k;gzip on;gzip_vary on;gzip_proxied any;root /srv/www;#UCI_HTTP_CONFIGinclude conf.d/*.conf;
}

在这里插入图片描述

创建 HTTP 服务器测试文件,输入以下命令:

mkdir -p /srv/www
echo "<html><head><title>test</title></head><body>Hello, nginx!</body></html>" | tee /srv/www/index.html

设置 example.com 站点为可用,执行以下命令:

uci set nginx.example_com=server
uci commit nginx

重启 nginx 服务,执行以下命令:

service nginx restart

通过 Windows 主机的浏览器访问目标地址 localhost:60080 ,此处需注意,在 QEMU 启动参数中需要添加端口转发设置,将 Windows 主机的 60080 端口转发到 OpenWrt 访客机器的 80 端口,设置如下:

-netdev "user,id=hn0,hostfwd=tcp::50022-:22,hostfwd=tcp::50080-:50080,hostfwd=tcp::50443-:50443,hostfwd=tcp::60080-:80,hostfwd=tcp::60443-:443"

在这里插入图片描述

为 example.com 站点配置 SSL,执行以下命令:

uci del_list nginx.example_com.listen='80'
uci del_list nginx.example_com.listen='[::]:80'
uci add_list nginx.example_com.listen='443 ssl'
uci add_list nginx.example_com.listen='[::]:443 ssl'
uci set nginx.example_com.ssl_certificate='/etc/nginx/conf.d/example.com.crt'
uci set nginx.example_com.ssl_certificate_key='/etc/nginx/conf.d/example.com.key'
uci set nginx.example_com.ssl_session_cache='shared:SSL:32k'
uci set nginx.example_com.ssl_session_timeout='64m'
uci commit nginx

添加自签名证书,执行以下命令:

nginx-util add_ssl example.com

重启 nginx 服务,执行以下命令:

service nginx restart

通过 Windows 主机的浏览器访问目标地址 localhost:60443 ,此处需注意,在 QEMU 启动参数中需要添加端口转发设置,将 Windows 主机的 60443 端口转发到 OpenWrt 访客机器的 443 端口,设置如下:

-netdev "user,id=hn0,hostfwd=tcp::50022-:22,hostfwd=tcp::50080-:50080,hostfwd=tcp::50443-:50443,hostfwd=tcp::60080-:80,hostfwd=tcp::60443-:443"

在这里插入图片描述

至此,nginx HTTP 服务器配置完成。

安装 PHP8 FPM 服务

8、安装 PHP8 FPM,执行以下命令:

opkg update
opkg install php8-fpm

在 nginx 配置目录中添加配置文件 /etc/nginx/conf.d/php8.locations ,内容如下:

location ~ [^/]\.php(/|$) {fastcgi_split_path_info ^(.+?\.php)(/.*)$;if (!-f $document_root$fastcgi_script_name) {return 404;}# Mitigate https://httpoxy.org/ vulnerabilitiesfastcgi_param HTTP_PROXY "";#error_log /dev/null;fastcgi_connect_timeout 300s;fastcgi_read_timeout 300s;fastcgi_send_timeout 300s;fastcgi_buffer_size 32k;fastcgi_buffers 4 32k;fastcgi_busy_buffers_size 32k;fastcgi_temp_file_write_size 32k;client_body_timeout 10s;send_timeout 60s; # default, increase if experiencing a lot of timeouts.output_buffers 1 32k;fastcgi_index index.php;fastcgi_pass unix:/var/run/php8-fpm.sock;# include the fastcgi_param settinginclude fastcgi_params;# SCRIPT_FILENAME parameter is used for PHP FPM determining#  the script name. If it is not set in fastcgi_params file,# i.e. /etc/nginx/fastcgi_params or in the parent contexts,# please comment off following line:fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;fastcgi_param  PATH_INFO          $fastcgi_path_info;fastcgi_param  PATH_TRANSLATED    $document_root$fastcgi_path_info;
}

同步修改 /etc/php.ini 文件中的以下配置项:

doc_root = "/srv/www"
cgi.force_redirect = 1
cgi.redirect_status_env = "yes"

创建 PHP 测试文件,输入以下命令:

echo "<?php phpinfo(); ?>" | tee /srv/www/index.php

配置成功,显示如下界面:

在这里插入图片描述

安装 MariaDB/MySQL 数据库服务

9、安装 MariaDB/MySQL 服务器

opkg install mariadb-server mariadb-server-extra mariadb-client
opkg install coreutils-stty

修改配置文件 /etc/mysql/conf.d/50-server.conf ,确认以下设置:

datadir         = /srv/mysql
tmpdir          = /tmp

创建数据目录,执行以下命令:

mkdir -p /srv/mysql
mysql_install_db --force
chown mariadb.mariadb -R /srv/mysql/

启动 MariaDB,执行以下命令:

uci set mysqld.general.enabled='1'
uci commitservice mysqld restart

检查 MariaDB 的运行状态,执行以下命令:

/etc/init.d/mysqld status

创建 MariaDB 数据库,执行以下命令,并按要求回答:

/usr/bin/mysql_secure_installation -u root

测试数据库连接,执行一下命令:

mysql -u root

在 mysql 客户端输入:

SHOW DATABASES;

在这里插入图片描述

支持 MariaDB 数据库服务器安装配置好了。

安装 WordPress 博客 CMS

10、安装 WordPress 博客 CMS,当前版本为 6.5.3

下载最新版本 WordPress,下载地址:

https://cn.wordpress.org/latest-zh_CN.zip

在 OpenWrt 的控制台执行以下命令:

wget https://cn.wordpress.org/latest-zh_CN.zip

WP 6.5.3 的安装要求如下:

在这里插入图片描述

解压安装文件,并放到 Web 服务器工作目录中,执行以下命令:

unzip latest-zh_CN.zip
mv wordpress /srv/www/blog

安装 PHP MySQL Improved Extension 模块

opkg update
opkg install php8-mod-mysqli

创建 WP 需要的数据库

mysql -u root

创建 WP 专用数据库,在 MariaDB 的客户终端输入以下命令:

create database wordpress;

创建 WP 专用数据库用户,在 MariaDB 的客户终端输入以下命令:

create user wordpress;

给 WP 数据库用户的赋予该数据库的所有权限,在 MariaDB 的客户终端输入以下命令:

grant all privileges on wordpress.* to 'wordpress' identified by 'wordpress123';

配置好后,在 Windows 主机浏览器中输入网址:

https://localhost/blog/index.php

出现 WP 的安装页面,根据前边的数据库配置填入相应信息:

数据库:wordpress
用户:wordpress
密码:wordpress123
主机:127.0.0.1

需要注意,主机用 “127.0.0.1” 而不是 “localhost”,因为默认 MariaDB 监听端口在 “127.0.0.1:3306”,由于 OpenWrt 主机配置了 IPv4 和 IPv6 地址,当解析 localhost 时,首先解析到 ::1 的 IPv6 地址,这样导致如果主机输入 localhost ,WordPress 首先到 “::1” 的 IPv6 地址端口 “3306” 访问。

站点健康检查,如下图:

在这里插入图片描述

安装需要的模块,执行以下命令:

opkg update
opkg install php8-mod-gd
opkg install php8-mod-curl
opkg install php8-mod-exif
opkg install php8-mod-fileinfo
opkg install php8-mod-mbstring
opkg install php8-mod-zip
opkg install php8-mod-filter
opkg install php8-mod-iconv
opkg install php8-mod-intl
opkg install php8-pecl-imagick
service php8-fpm restart

解决读写权限问题,执行以下命令:

chown nobody.nogroup /srv/www/blog/ -R

解决 “XML or PCRE extensions not loaded!” 的问题,执行以下命令:

opkg update
opkg install php8-mod-xml
opkg install php8-mod-xmlreader
opkg install php8-mod-xmlwriter

修改 example.com.locations , 解决 REST API 和 伪静态页面问题

location / {access_log off; # default: not logging accesses.# access_log /var/run/nginx_access_log;# access_log /proc/self/fd/1 openwrt; # use logd (init forwards stdout).# error_log stderr; # default: logging to logd (init forwards stderr).error_log /dev/null; # disable error logging after config file is read.# error_log /var/run/nginx_error_log;# (state path of a file for access_log/error_log to the file instead.)index index.html index.htm index.php;try_files $uri $uri/ /index.php$is_args$args;location /blog/ {try_files $uri $uri/ /blog/index.php?$args;rewrite /wp-admin$ $scheme://$host$uri/ permanent;}
}

安装 WP Fastest Cache 插件,解决没有缓存问题。

检查站点健康状态:

在这里插入图片描述

至此,用 WordPress 搭建的个人博客网站已经准备就绪。


三、应用场景

个人博客站点

在这里插入图片描述


四、参考资料

1、WSL 的基本命令
2、旧版 WSL 的手动安装步骤
3、Windows 虚拟机监控程序平台
4、Windows Hypervisor Platform API Definitions
5、Windows Hypervisor Platform Instruction Emulator API Definitions and Support DLLs
6、QEMU Documentation/Networking
7、OpenWrt on x86 hardware (PC / VM / server)
8、The UCI system
9、Set up a LAMP webserver stack
10、ownCloud or NextCloud


总结

本文记录在 Windows 环境下用 QEMU 运行 OpenWrt 并安装配置 LNMP 服务器和 WordPress 博客 CMS 的方法,并指出过程中遇到的问题及解决方法。

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

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

相关文章

数组的理论知识

文章目录 数组的理论知识 数组的理论知识 数组是我们在编程时期经常使用到的一种数据结构。 特点&#xff1a; 在连续的内存空间中存储相同数据类型的数据 如图&#xff1a; arr 数组 注意点&#xff1a;数组的修改的效率是比较慢的&#xff0c;O(n)&#xff0c;因为数组只…

人工智能万卡 GPU 集群的硬件和网络架构

万卡 GPU 集群互联&#xff1a;硬件配置和网络设计 一、背景 自从 OpenAI 推出 ChatGPT 以来&#xff0c;LLM 迅速成为焦点关注的对象&#xff0c;并取得快速发展。众多企业纷纷投入 LLM 预训练&#xff0c;希望跟上这一波浪潮。然而&#xff0c;要训练一个 100B 规模的 LLM&a…

嵌入式学习——3——多点通信

1、套接字选项&#xff08;socket options&#xff09; int getsockopt(int sockfd, int level, int optname, void *optval, socklen_t *optlen); int setsockopt(int sockfd, int level, int optname, const void *optval, socklen_t optlen); 功能&#xff1a;获取或设置套接…

设计模式在芯片验证中的应用——单例

一、单例模式 单例模式(Singleton)是一种创建型设计模式&#xff0c;能够保证一个类只有一个实例&#xff0c; 并提供一个访问该实例的全局节点。验证环境配置(configuration)类、超时(timeout)处理类等可以使用单例实现。比如说验证环境需要在特定场景中监测特定接口上的超时事…

STM32-GPIO八种输入输出模式

图片取自 江协科技 STM32入门教程-2023版 细致讲解 中文字幕 p5 【STM32入门教程-2023版 细致讲解 中文字幕】 https://www.bilibili.com/video/BV1th411z7sn/?p5&share_sourcecopy_web&vd_source327265f5c70f26411a53a9226af0b35c 目录 ​编辑 一.STM32的四种输…

达梦数据库创建根据日期按月自动分区表

达梦数据库创建根据日期自动分区表 概念 达梦数据交换平台(简称DMETL)是在总结了众多大数据项目经验和需求并结合最新大数据发展趋势和技术的基础上&#xff0c;自主研发的通用的大数据处理与集成平台。 DMETL创新地将传统的ETL工具&#xff08;Extract、Transform、Loading…

maven默认src下的xml,properties文件不打包到classes文件夹下

一、第一种是建立src/main/resources文件夹&#xff0c;将xml&#xff0c;properties等资源文件放置到这个目录中。maven工具默认在编译的时候&#xff0c;会将resources文件夹中的资源文件一块打包进classes目录中。 这时候注意把resources设置成resource目录&#xff0c;已经…

CI/CD 管道中的自动化测试:类型和阶段

在上一篇文章中&#xff0c;我们讨论了敏捷团队自动化测试用例的各种用例。其中一种情况是&#xff0c;团队希望将测试与每个构建集成&#xff0c;并将持续集成作为构建过程的一部分。 在本文中&#xff0c;我们将讨论持续集成/持续交付平台中的集成测试。 让我们先从基础知识…

Sentinel Dashboard 规则联动持久化方案

一、Sentinel Dashboard 规则联动持久化方案 Sentinel 是阿里开源的一个流量控制组件&#xff0c;它提供了一种流量控制、熔断降级、系统负载保护等功能的解决方案。并且我们通过 Sentinel Dashboard 可以非常便捷的添加或修改规则策略&#xff0c;但是如果细心的小伙伴应该可…

Jenkins、GitLab部署项目

1、安装JDK 1.1、下载openJdk11 yum -y install fontconfig java-11-openjdk1.2、查看安装的版本号 java -version1.3、配置环境变量 vim /etc/profile在最底部添加即可 export JAVA_HOME/usr/lib/jvm/java-11-openjdk-11.0.23.0.9-2.el7_9.x86_64 export PATH$JAVA_HOME/…

经典链表题-链表回文结构

&#x1f389;&#x1f389;&#x1f389;欢迎莅临我的博客空间&#xff0c;我是池央&#xff0c;一个对C和数据结构怀有无限热忱的探索者。&#x1f64c; &#x1f338;&#x1f338;&#x1f338;这里是我分享C/C编程、数据结构应用的乐园✨ &#x1f388;&#x1f388;&…

神经网络的工程基础(一)——利用PyTorch实现梯度下降法

相关说明 这篇文章的大部分内容参考自我的新书《解构大语言模型&#xff1a;从线性回归到通用人工智能》&#xff0c;欢迎有兴趣的读者多多支持。 本文涉及到的代码链接如下&#xff1a;regression2chatgpt/ch06_optimizer/gradient_descent.ipynb 本文将讨论利用PyTorch实现…

BFS 解决最短路问题

目录 一、前言 1.1 如何使用 BFS 找到最短路&#xff1a; 1.2 为什么不用 dfs &#xff1a; 二、模板套路 三、例题练习 3.1 例题1&#xff1a;迷宫中离入口最近的出口 3.2 例题2&#xff1a;最小基因变化 3.3 例题3&#xff1a;单词接龙 3.4 例题4&#xff1a;为高尔…

HTML橙色爱心

目录 写在前面 准备开始 完整代码 运行结果 系列文章 写在后面 写在前面 本期小编给大家分享一颗热烈且浪漫的爱心&#xff0c;快来看看吧&#xff01; 准备开始 在开始之前&#xff0c;我们需要先简单的了解一下这颗爱心的原理哦~ 本期将用html实现这颗跳动的爱心&a…

YOLOv9改进策略 | 图像去雾 | 利用图像去雾网络UnfogNet辅助YOLOv9进行图像去雾检测(全网独家首发)

一、本文介绍 本文给大家带来的改进机制是利用UnfogNet超轻量化图像去雾网络,我将该网络结合YOLOv9针对图像进行去雾检测(也适用于一些模糊场景),我将该网络结构和YOLOv9的网络进行结合同时该网络的结构的参数量非常的小,我们将其添加到模型里增加的计算量和参数量基本可…

跨平台之用VisualStudio开发APK嵌入OpenCV(二)

开始干 新建解决方案&#xff0c;新建动态库&#xff08;Android&#xff09;项目 功能随便选一个吧&#xff0c;就模仿PS&#xff08;Photoshop&#xff09;的透视裁切功能&#xff0c;一个物体&#xff08;比如扑克牌&#xff09;透视图&#xff0c;选4个顶点&#xff0c;转…

python文件处理之os模块和shutil模块

目录 1.os模块 os.path.exists(path)&#xff1a;文件或者目录存在与否判断 os.path.isfile(path)&#xff1a;判断是否是文件 os.path.isdir(path)&#xff1a;判断是否是文件夹 os.remove(path)&#xff1a;尝试删除文件 os.rmdir(path)&#xff1a;尝试删除目录 os.m…

vue项目elementui刷新页面弹窗问题

bug&#xff1a;每次刷新页面都有这个鬼弹窗。 刚开始以为是自己的代码问题&#xff0c;于是我翻遍了每一行代码&#xff0c;硬是没找出问题。 后来在网上找了些资料&#xff0c;原来是引入的问题。 解决方案&#xff1a; 改一下引入方式即可。 错误姿势 import Vue from …

美发店服务预约会员小程序的作用是什么

美发店不同于美容美甲&#xff0c;男女都是必需且年龄层几乎不限&#xff0c;商家在市场拓展时只要方法得当相对比较容易&#xff0c;当今客户适应于线上信息获取、咨询及实际内容开展&#xff0c;商家也需要赋能和提升自身服务效率&#xff0c;合理化管理。 运用【雨科】平台…

2024年【高压电工】新版试题及高压电工找解析

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 高压电工新版试题是安全生产模拟考试一点通生成的&#xff0c;高压电工证模拟考试题库是根据高压电工最新版教材汇编出高压电工仿真模拟考试。2024年【高压电工】新版试题及高压电工找解析 1、【单选题】 110KV及以下…