安装KVM并创建虚拟机及基本使用
#环境说明:Centos7
环境准备:
CPU开启虚拟化,给宿主机的CPU和内存分配足够多的配置
安装KVM
1.安装相关软件包
yum -y install qemu-kvm libvirt virt-manager virt-install virt-viewer
软件包简介:
- qemu-kvm: 为kvm提供底层仿真支持
- libvirt: 使用最多的KVM虚拟化管理工具和应用程序接口,即通过libvirt调用KVM创建虚拟机, libvirt是KVM通用的访问API,其不但能管理KVM,还能管理VMware、Xen、Hyper-V、 virtualBox等虚拟化方案
- virt-manager: 图形界面管理工具,其底层也是调用libvirt API来完成对虚拟机的操作,包括虚拟机的 创建、删除、启动、停止以及一些简单的监控功能等
- virt-install: 虚拟机命令行安装工具
- virt-viewer: 通过 VNC 和 SPICE 协议显示虚拟机器图形控制台的最小工具。该工具在其同名软件包 中:virtviewer
2.启动服务
systemctl start --now libvirtd
创建虚拟机
下面介绍三种创建虚拟机的方法:
在创建之前需要在宿主机上先创建一个存放系统镜像的目录,然后上传至此目录下
mkidr -p /data/isos
1.使用virt-manager图形化界面进行创建
#打开图形化需要下载Xmanager,并在Xshell开启下面功能:
#图形化界面如果乱码,修改语言为英文就能解决
输入virt-manager命令打开图形化界面
基于ISO镜像文件创建
浏览
选择镜像
设置虚拟机内存
设置磁盘大小
后面按照安装Centos7系统时进行配置即可
2.使用virt-install创建虚拟机(需要手动安装系统)
创建前,需要先利用qume-img命令创建虚拟磁盘,如下:
qemu-img create -f qcow2 /var/lib/libvirt/images/centos7.qcow2 20G
然后使用下面命令创建虚拟机:
virt-install --virt-type kvm --name centos7 --ram 1024 --vcpus 2 \
--cdrom=/data/isos/CentOS-7-x86_64-Minimal-2009.iso --disk \
path=/var/lib/libvirt/images/centos7.qcow2 --network=default --graphics \
vnc,listen=0.0.0.0 --noautoconsole --os-variant=centos7.0
选项解析如下:
- --virt-type:指定要使用的虚拟机监控程序名称(kvm, qemu, xen)
- --name:指定kvm虚拟机的名称
- --ram:指定kvm虚拟机的内存大小
- --vcpus:指定kvm虚拟机的CPU核数
- --cdrom:指定ISO镜像文件所在路径
- --disk:指定虚拟磁盘所在路径
- --network:指定kvm虚拟机的网络模式,default为NAT模式;桥接模式为--bridge="网卡"
- --graphics:是否使用vnc,none为否
- --noautoconsole:宿主机不自动尝试连接kvm虚拟机
- --os-variant:指定要安装的系统版本
vnc工具
kvm默认网络模式是NAT,宿主机会充当路由器,为内部的kvm虚拟机做端口映射。如果开启了vnc连接功能,kvm会为每个kvm虚拟机开启一个连接端口。可以访问宿主机的设备,就可以使使用vnc工具来连接kvm虚拟机
下面是宿主机为kvm虚拟机开启的vnc端口:
查看启动的虚拟机:
3.配合kickstart实现自动化部署kvm虚拟机(无须手动安装系统)
在创建前还是需要先创建虚拟磁盘,如下:
qemu-img create -f qcow2 /var/lib/libvirt/images/centos7.qcow2 20G
编写应答文件:
#需要自行创建
vim /root/ks.cfg
#platform=x86, AMD64, 或 Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --iscrypted
$6$Dx1M9/RlV5sB0KJv$19AdCxXsCbBnXSrUbYWhHQvKmtgCd0stJSHb3NrMQXZj.OpZWcNGzOROn/tg6fgxU3HYVptC35dgMcg8rpY.61
# 系统语言
#lang zh_CN.UTF-8
lang en_US# System authorization information
auth --useshadow --passalgo=sha512
# Use CDROM installation media
#cdrom# Use text mode install
# 使用字符界面安装操作系统
text# Do not configure the X Window System
# 不配置图形界面系统
skipx# SELinux configuration
selinux --disabled# Firewall configuration
firewall --disabled# 设置动态获取 IP
network --bootproto=dhcp --device=eth0 --onboot=on
#network --hostname=HOSNAME# 设置静态 IP
# network --bootproto=static --device=eth0 --gateway=192.168.122.1 --ip=192.168.122.100 --nameserver=192.168.122.1 --netmask=255.255.255.0 --activate# 系统安装完成后 重启系统
#halt
reboot# System timezone 系统时区
timezone Asia/Shanghai# System services 系统启动时候自动启动的服务
services --enable="chronyd"# System bootloader configuration
#系统启动引导方式 vda 是kvm 虚拟机时候的第块磁盘名称
bootloader --location=mbr --boot-drive=vda# 清除主引导记录
zerombr# 删除原来的分区和磁盘标签
clearpart --all --initlabel# 磁盘分区信息,这里采用的是 lvm 自动分区
autopart --type=lvm# 下面是自定义分区
#part /boot --fstype="xfs" --ondisk=vda --size=200
#part / --fstype="xfs" --ondisk=vda --size=10040
#part /var --fstype="xfs" --ondisk=vda --size=2048
#part /home --fstype="xfs" --ondisk=vda --size=2048# 安装软件
%packages
@^minimal
@core
chrony
%end# 禁用 kdump
%addon com_redhat_kdump --disable --reserve-mb='auto'%end# 安装系统完成后执行的命令脚本
#%post --interpreter=/bin/bash
#yum install -y epel-release bash-completion vim-enhanced wget
#yum group install "Development Tools" -y
#%end# 用户密码策略
%anaconda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
%end
#上文件中rootpw --iscrypted指定的为root账户的密码,如过想修改为其它密码可以用下面命令生成加密字符串,将其替掉即可:
python -c 'import crypt,getpass;pw=getpass.getpass();print(crypt.crypt(pw) if (pw==getpass.getpass("Confirm: ")) else exit())'
运行下面命令创建虚拟机:
virt-install -v \--arch x86_64 --virt-type kvm \--name centos7 \--memory 1024 \--vcpus 2 \--os-type linux \--location /data/isos/CentOS-7-x86_64-Minimal-2009.iso \--network default \--graphics vnc,listen=0.0.0.0 \--os-variant centos7.0 \--initrd-inject "/root/ks.cfg" \--extra-args "ks=file:/ks.cfg \console=tty0 console=ttyS0,115200n8 \hostname=centos7" \--disk /var/lib/libvirt/images/centos7.qcow2,cache=writeback,io=threads,bus=virtio
选项解析如下:
- --location:指定安装源,这里用于指定ISO镜像文件路径
- --os-type:操作系统类型
- --initrd-inject:指定ks.cfg文件路径
- --extra-args:根据location指定的方式安装系统时,用于给内核传递额外的选项
安装完后输入账户密码即可登录kvm虚拟机:
账户:root
密码:123.com
Ctrl+}退出
克隆现有的虚拟机
virt-clone -o centos7 -f /var/lib/libvirt/images/centos7.qcow2 -n centos7-2
选项解析:
- -o:指定已存在的虚拟机名称
- -f: 指定新虚拟机磁盘文件路径
- -n:指定新虚拟机的名称
磁盘快照管理
qemu-img管理磁盘快照
创建快照
qemu-img snapshot -c centos7-snapshot1 /var/lib/libvirt/images/centos7.qcow2
选项解析:
-c:指定快照名称
查看快照
qemu-img snapshot -l /var/lib/libvirt/images/centos7.qcow2
查看快照的详细信息
qemu-img info /var/lib/libvirt/images/centos7.qcow2
恢复快照
#需要关机后进行
qemu-img snapshot -a centos7-snapshot /var/lib/libvirt/images/centos7.qcow2
选项解析:
-a:指定需要恢复的快照名称
删除快照
#需要关机后进行
qemu-img snapshot -d centos7-snapshot /var/lib/libvirt/images/centos7.qcow2
选项解析:
-d:指定需要删除的快照名称
virsh管理虚拟机快照
创建快照
virsh snapshot-create centos7
查看快照
virsh snapshot-list centos7
恢复快照
#无须关机
virsh snapshot-revert centos7 --snapshotname 1600593611 --running
选项解析:
--snapshotname:先查看快照确认快照的名称,是一段数字,在--snapshotname后跟上快照名称
--running:恢复后,将状态更改为正在运行
删除快照
virsh snapshot-delete centos7 --snapshotname 1600593611
网络管理
配置虚拟机和宿主机为桥接网络,实现网络互通并用Xshell连接
1)配置宿主机的桥接网络:
修改宿主机网卡文件为以下,模式为空,NM_CONTROLLED=no,意思为此网络不受NetworkManager控制,网桥名为br0:
BOOTPROTO=none
NAME=ens32
DEVICE=ens32
ONBOOT=yes
NM_CONTRLLED=no
BRIDGE=br0
创建并编写br0网卡文件为一下, 模式为静态,类型是网桥,不受NM控制,定义IP:
BOOTPROTO=static
TYPE=Bridge
NAME=br0
DEVICE=br0
ONBOOT=yes
NM_CONTRLLED=noIPADDR=10.0.0.200
PREFIX=24
NETMASK=255.255.255.0
GATEWAY=10.0.0.0.2
DNS=202.106.0.20
关闭NetworkManager:
systemctl stop NetworkManager
systemctl disable NetworkManager
重启网络服务:
systemctl restart network
使用brctl show命令查看虚拟设备情况,没有的话,安装名为bridge-utils的包即可:
[root@centos7-temp ~]# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.000c291e1dd4 yes ens32
virbr0 8000.5254006c683e yes virbr0-nicvnet0
#由上可见,br0设备,绑定了ens32网卡成功,stp enabled为no,可以执行brctl stp br0 on打开
使用route命令查看路由情况:
[root@centos7-temp ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.0.0.2 0.0.0.0 UG 0 0 0 br0
#由上可见,所有地址,网关为10.0.0.2,通过br0,进行通信
2)配置虚拟机桥接网络
修改/etc/qemu-kvm/bridge.conf文件:
allow virbr0
#加上下面一行
allow br0
将虚拟机关机:
virsh shutdown <name>
查看启动的虚拟机:
virsh list
修改虚拟机配置文件中网络部分两处:
vim /etc/libvirt/qemu/centos7.xml
修改前如下:
修改为:
启动虚拟机:
virsh start <name>
使用virt-manager打开图形化界面将网卡修改桥接网卡:
修改虚拟机网络配置文件:
#加上带注释的行即可
vi /etc/sysconfig/network-scripts/ifcfg-eth0
NAME="eth0"
HWADDR="52:54:00:38:8D:43"
ONBOOT="yes"
NETBOOT="yes"
UUID="50682a96-3672-42ac-8469-2c2f20ffde5a"
IPV6INIT="yes"
BOOTPROTO="static" #设置静态IP
IPADDR=10.0.0.201 #选择和宿主机在同一个网段的IP
NETMASK=255.255.255.0 #与宿主机同网段
GATEWAY=10.0.0.2 #与宿主机同网关
DNS=202.106.0.20 #与宿主机同DNS
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
在虚拟机中关闭NetworkManager:
systemctl stop NetworkManager
重启网络服务:
systemctl restart network
3)验证
在宿主机上ping虚拟机的地址,验证网络是否能通信:
在虚拟机上ping外网地址,验证是否能上外网:
通过Xshell终端工具连接虚拟机:
virsh常用命令:
查看当前启动的虚拟机: virsh list
查看所有虚拟机:virsh list --all
启动虚拟机:virsh start <name>
正常关机:virsh shutdown <name>
强制关机::virsh destroy <name>
暂停虚拟机::virsh suspend <name>
恢复虚拟机:virsh resume <name>
设置虚拟机随宿主机启动而自启动:virsh autostart <name>
禁用虚拟机随宿主机启动而自启动:virsh autostart <name> --distable
删除虚拟机配置,但不删除磁盘文件:virsh undefine <name>
删除虚拟机包括磁盘文件:virsh undefine <name> --remove-all-storage
查看虚拟机网卡配置:virsh domiflist <name>
查看虚拟机的网卡地址信息:virsh domifaddr <name>
相关文章:
安装KVM并创建虚拟机及基本使用
#环境说明:Centos7 环境准备: CPU开启虚拟化,给宿主机的CPU和内存分配足够多的配置 安装KVM 1.安装相关软件包 yum -y install qemu-kvm libvirt virt-manager virt-install virt-viewer 软件包简介: qemu-kvm: 为kvm提供…...
一种LCD屏闪问题的调试
背景 项目使用ESP32-S3 RGB接口驱动的LCD, 框架 idf-v5.0, LVGL-v7.11 显示画面正常, 但肉眼可见的像是背光在闪烁, 背光电路是应用很久的经典电路, 且排查背光驱动无错, 但开机一段时间后, 闪烁会明显减轻 记录 这块屏的显示驱动芯片为ST7701S, 查看芯片手册有说明特定的上…...
Java程序运行在Docker等容器环境有哪些新问题?
第30讲 | Java程序运行在Docker等容器环境有哪些新问题? 如今,Docker 等容器早已不是新生事物,正在逐步成为日常开发、部署环境的一部分。Java 能否无缝地运行在容器环境,是否符合微服务、Serverless 等新的软件架构和场景&#x…...
C语言面试最常问的三个关键字
文章目录前言一,static关键字的作用二,const 关键字的作用2.1, 修饰局部变量2.2,修饰指针2.3, 修饰函数形参2.4,修饰函数的返回值三,volatile关键字的作用前言 面试的时候,C语言最常…...
【Linux】-初识Linux
作者:学Java的冬瓜 博客主页:☀冬瓜的主页🌙 专栏:【Linux】 分享:逆着光行走,任风吹雨打。 ——《起风了》 主要内容:Linux的一些最基本指令,Linux的小程序,Linux关于连…...
精选7个 Python 学习资源库,助你成为优秀的开发者
当你在学习编程时,很容易被大量的资源所吓到,不知道该从何开始。 GitHub 仓库是一个很好的起点,因为它们提供了一种非常实用的方式来了解实际的编程应用。你可以查看其他人的代码,并将其与自己的代码进行比较和学习。 当涉及到 …...
【大数据处理与可视化】三 、Pandas库的运用
【大数据处理与可视化】三 、Pandas库的运用实验目的实验内容实验步骤一、使用pandas库分别创建Series对象和DataFrame对象,并对创建的对象使用索引、排序等相关操作;练习DataFrame对象的统计计算和统计描述的功能。1&2、创建一个DataFrame(d…...
FPGA解码SDI视频任意尺寸缩放拼接输出 提供工程源码和技术支持
目录1、前言2、SDI理论练习3、设计思路和架构SDI摄像头Gv8601a单端转差GTX解串SDI解码VGA时序恢复YUV转RGB图像缩放FDMA图像缓存实现拼接HDMI驱动4、vivado工程详解5、上板调试验证并演示6、福利:工程代码的获取1、前言 FPGA实现SDI视频编解码目前有两种方案&#…...
线索二叉树结构
线索二叉树结构1.线索二插树的作用2.线索二叉树的定义3.线索二叉树的结构4. 线索二叉树的操作4.1. 建立一棵中序线索二叉树4.2. 在中序线索二叉树上查找任意结点的中序前驱结点4.3. 在中序线索二叉树上查找任意结点的中序后继结点4.4. 在中序线索二叉树上查找任意结点在先序下的…...
6.网络爬虫——BeautifulSoup详讲与实战
网络爬虫——BeautifulSoup详讲与实战BeautifulSoup简介:BS4下载安装BS4解析对象Tag节点遍历节点find_all()与find()find_all()find()豆瓣电影实战前言: 📝📝此专栏文章是专门针对网络爬虫基础,欢迎免费订阅&#…...
Vue:路由管理模式
三种模式 Vue.js 的路由管理有三种模式: Hash 模式(默认):在 URL 中使用 # 符号来管理路由。例如,http://example.com/#/about。这个模式的好处是可以避免浏览器向服务器发送不必要的请求,并且不需要特殊…...
7个最好的PDF编辑器,帮你像编辑Word一样编辑PDF
PDF 是具有数字思维的组织的重要交流工具。提供高效的工作流程和更好的安全性,可以创建重要文档并与客户、同事和员工共享。文档的布局已锁定,因此无论在什么设备上查看,格式都保持不变。这是让每个人保持一致的好方法——尤其是那些使用Micr…...
【数据结构】树的介绍
文章目录前言树的概念及结构树的概念树的表示树在实际中的运用二叉树的概念及结构二叉树的概念现实中的二叉树特殊的二叉树二叉树的性质二叉树的储存结构顺序存储链式存储写在最后前言 🚩本章给大家介绍一下树。树的难度相对于前面的数据结构来说,又高了…...
CoreDNS 性能优化
CoreDNS 作为 Kubernetes 集群的域名解析组件,如果性能不够可能会影响业务,本文介绍几种 CoreDNS 的性能优化手段。合理控制 CoreDNS 副本数考虑以下几种方式:根据集群规模预估 coredns 需要的副本数,直接调整 coredns deployment 的副本数:k…...
前端三剑客常见面试题及其答案
目录 1、什么是 HTML? 2、什么是 CSS? 3、什么是 JavaScript? 4、什么是盒模型? 5、什么是浮动? 6、什么是定位? 7、什么是选择器? 8、什么是事件? 前端的三剑客指的是 HTML…...
【DFS专题】深度优先搜索 “暴搜”优质题单推荐 10道题(C++ | 洛谷 | acwing)
文章目录题单一、模板 [极为重要]全排列DFS组合型DFS指数DFS二、专题烤鸡 (指数BFS)P1088 火星人 【全排列】P1149 火彩棒 [预处理 ]P2036 PERKETP1135 奇怪的电梯 暴力P1036 [NOIP2002 普及组] 选数 (组合)P1596 [USACO10OCT]Lake Counting …...
微信小程序自定义组件生命周期有哪些?
微信小程序自定义组件的生命周期函数分为三类: 创建时执行的生命周期函数、更新时执行的生命周期函数和销毁时执行的生命周期函数。 下面是具体的生命周期函数及其触发时机: 创建时执行的生命周期函数: created:在组件实例刚刚…...
Linux就该这么学(六)
一、从“/”开始 Linux 系统中的文件和目录名称是严格区分大小写的。例如,root、rOOt、rooT 均代表不同的目录,并且文件名称中不得包含斜杠(/)。Linux 系统中的文件存储结构如下图所示。 在 Linux 系统中,最常见的目录…...
目标检测算法——YOLOv5/v7/v8改进结合涨点Trick之Wise-IoU(超越CIOU/SIOU)
超越CIOU/SIOU | Wise-IoU助力YOLO强势涨点!!! 论文题目:Wise-IoU: Bounding Box Regression Loss with Dynamic Focusing Mechanism 论文链接:https://arxiv.org/abs/2301.10051 近年来的研究大多假设训练数据中的…...
【蓝桥杯选拔赛真题39】python输出数字组合 青少年组蓝桥杯python 选拔赛STEMA比赛真题解析
目录 python输出数字组合 一、题目要求 1、编程实现 2、输入输出...
网络安全工程师做什么?
网络安全很复杂。数字化转型、远程工作和不断变化的威胁形势需要不同的工具和不同的技能组合。 系统必须到位以保护端点、身份和无边界网络边界。负责处理这种复杂安全基础设施的工作角色是网络安全工程师。 简而言之,网络安全工程师是负责设计和实施组织安全系…...
总结:K8S运维常用命令
一、部署./kubectl apply -f biz-healing-pod.yaml 二、查看部署的资源1、podkubectl get pod -A:获取所有pod没有IP?用-o wide参数看详细信息:./kubectl get pod -n deepflow -o wide2、service查看hubble-manager命名空间下有哪些service/d…...
你是真的“C”——进行动态内存分配库函数的使用详解
你是真的“C”——申请动态空间库函数的使用详解😎前言🙌一、为什么需要动态内存分配?💞free 函数😘malloc 库函数😘calloc 库函数😘realloc 库函数😘总结撒花💞…...
Python|蓝桥杯进阶第五卷——数论
欢迎交流学习~~ 专栏: 蓝桥杯Python组刷题日寄 蓝桥杯进阶系列: 🏆 Python | 蓝桥杯进阶第一卷——字符串 🔎 Python | 蓝桥杯进阶第二卷——贪心 💝 Python | 蓝桥杯进阶第三卷——动态规划 ✈️ Python | 蓝桥杯进阶…...
用Python实现单例模式
什么是单例模式单例模式是指在内存中只会创建且仅创建一次对象的设计模式。在程序中多次使用同一个对象且作用相同时,为了防止频繁地创建对象使得内存飙升,单例模式可以让程序仅在内存中创建一个对象,让所有需要调用的地方都共享这一单例对象…...
交叉编译说明:工具链安装和环境变量配置
目录 一 简单了解交叉编译 ① 什么是交叉编译 ② 为什么需要交叉编译 ③ 宿主机和目标机 二 搭建交叉编译工作环境 ① 安装工具链 ② 配置环境变量 ● 配置临时环境变量 ● 配置永久环境变量 三 交叉编译宿主机和目标机 ● 宿主机编译生成的可执行文件下载到目…...
文件上传的多种利用方式
文件上传的多种利用方式 文件上传漏洞除了可以通过绕过检测进行webshell的上传之外,还有多种其它的漏洞可以进行测试。 XSS漏洞 文件名造成的XSS 当上传任何文件时,文件名肯定是会反显示在网页上,可以使用 XSS Payload做文件名尝试将其上传到…...
盘一盘C++的类型描述符(二)
先序文章请看 盘一盘C的类型描述符(一) 稍微组合一下的复杂类型 数组指针类型的数组类型 数组的指针类型我们已经了解了,那么,以这种类型作为元素的数组类型怎么搞? using type int (*)[3]; // 元素类型是数组指针…...
慎投,Frontiers这本期刊显示on hold中
什么是“On Hold”? 该期刊因为质量问题正在被进行重新评估;在重新评估过程中,不会检索新发表的文章。该期刊因为质量问题正在被进行重新评估;在重新评估过程中,不会检索新发表的文章。根据选择标准,在最严…...
Winform控件开发(21)——ProgressBar(史上最全)
一、属性 1、Name 用于获取控件对象 2、Anchor 锚定控件对于父控件的位置 3、BackColor 背景色 4、ContextMenuStrip 关联的上下文菜单 5、Cursor 鼠标移动到控件上显示的光标 6、Dock 停靠在父控件的位置 7、Enabled 是否启动该控件,false时事件都不能触发 8、…...
上海工商网站官网/seo关键词排名优化评价
本文讲的是CA推新解决方案 促进私有云发展,【IT168 资讯】IT管理软件供应商CA近日宣布了一项有关通过改善下一代虚拟化数据中心及私有云管理来优化IT服务的战略。CA称,其统一业务保障和自动化解决方案将会使得VMware的vSphere4虚拟环境及思科的虚拟网络交…...
wordpress增加访问速度/网站排名
搬寝室 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 20642 Accepted Submission(s): 7013 Problem Description 搬寝室是非常累的,xhd深有体会.时间追述2006年7月9号,那天xhd迫于无奈要从27号楼搬到3号楼,…...
wordpress文章添加/全球疫情最新数据消息
课程总结 第11次课作业: 使用“人工坐席接听数据“完成题目: 1、通过创建计算字段,创建“服务评价满意率”与“人工服务接听量”数据散点图,并将“服务评价满意率”小于95%的定义为不满意,高亮显示(提示&a…...
怎么做网站旺铺装修/微博搜索引擎优化
一、WXML节点布局相交状态(通过微信的API实现懒加载) 节点布局相交状态 API 可用于监听两个或多个组件节点在布局位置上的相交状态。这一组API常常可以用于推断某些节点是否可以被用户看见、有多大比例可以被用户看见。 节点布局相交状态 API中有一个 wx.createIntersectionO…...
东营做网站排名/域名注册 万网
微信支付在我们的生活中很重要,那安卓系统微信支付失败原因是什么呢?了解网购安全,首先就要了解佰佰安全网小编就带您认识一下吧。1、第一种原因就是默写数据参数有问题。一般都是秘钥有问题。需自己登陆商家版后台修改2、需要知道微信支付是…...
网站互动营销/深圳互联网公司排行榜
做开发我喜欢阅读开发文档,我觉得开发文档不仅仅是教你开发的步骤,教你如何调用接口。我们要学的还有那里面的业务逻辑处理,安全防范,开发文档作为公开的文档,那么多人使用别人的代码是经得起考验的,多看看…...