基于LNMP架構的分布式個人博客搭建

1.運行環境

主機主機名系統服務
192.168.75.154Server-WebLinuxWeb
192.168.75.155Server-NFS-DNSLinuxNFS/DNS

2.基礎配置

配置主機名,靜態IP地址

開啟防火墻并配置

部分開啟SElinux并配置

服務器之間使用同ntp.aliyun.com進行時間同步

服務器之間使用用ntp.aliyun.com進行時間同步

服務器之間實現SSH免密登錄

3.業務需求

Server-NFS-DNS主機配置NFS服務器,將博客網站資源文件共享給Server-Web主機,Server-NFS-DNS主機配置DNS

Server-Web主機配置web服務,通過域名www.wp.com可以訪問到自建的博客網站

4.準備工作

4.1配置靜態IP

master端:

[root@master ~]# nmcli c modify ens32 ipv4.method manual  ipv4.addresses '192.168.75.154/24'  ipv4.gateway '192.168.75.2'  ipv4.dns  '114.114.114.114'
[root@master ~]# nmcli c reload
[root@master ~]# nmcli c up  ens32

node1端:

[root@node1 ~]# nmcli c modify ens32 ipv4.method manual  ipv4.addresses '192.168.75.155/24'  ipv4.gateway '192.168.75.2'  ipv4.dns  '114.114.114.114'
[root@node1 ~]# nmcli c reload
[root@node1 ~]# nmcli c up  ens32

4.2修改主機名及hosts映射

Server-Web端:

[root@master ~]# hostnamectl set-hostname Server-Web
[root@master ~]# bash
[root@Server-Web ~]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.75.154   Server-Web
192.168.75.155   Server-NFS-DNS

?Server-NFS-DNS端:

[root@node1 ~]# hostnamectl set-hostname Server-NFS-DNS
[root@node1 ~]# bash
[root@Server-NFS-DNS ~]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.75.154  Server-Web
192.168.75.155  Server-NFS-DNS

4.3開啟防火墻

Server-Web端:

[root@Server-Web ~]# systemctl enable --now firewalld
Created symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service → /usr/lib/systemd/system/firewalld.service.
Created symlink /etc/systemd/system/multi-user.target.wants/firewalld.service → /usr/lib/systemd/system/firewalld.service.

Server-NFS-DNS端:

[root@Server-NFS-DNS ~]# systemctl enable --now firewalld
Created symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service → /usr/lib/systemd/system/firewalld.service.
Created symlink /etc/systemd/system/multi-user.target.wants/firewalld.service → /usr/lib/systemd/system/firewalld.service.

4.4時間同步

Server-Web端:

[root@Server-Web ~]# vim /etc/chrony.conf    #修改第三行
server ntp.aliyun.com iburst
[root@Server-Web ~]# systemctl restart chronyd
[root@Server-Web ~]# chronyc sources -v.-- Source mode  '^' = server, '=' = peer, '#' = local clock./ .- Source state '*' = current best, '+' = combined, '-' = not combined,
| /             'x' = may be in error, '~' = too variable, '?' = unusable.
||                                                 .- xxxx [ yyyy ] +/- zzzz
||      Reachability register (octal) -.           |  xxxx = adjusted offset,
||      Log2(Polling interval) --.      |          |  yyyy = measured offset,
||                                \     |          |  zzzz = estimated error.
||                                 |    |           \
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^* 203.107.6.88                  2   6    17     5  -5090us[-4621us] +/-   37ms
[root@Server-Web ~]# date
2025年 07月 27日 星期日 18:08:35 CST

Server-NFS-DNS端:

[root@Server-NFS-DNS ~]# vim /etc/chrony.conf 
server ntp.aliyun.com iburst
[root@Server-NFS-DNS ~]# systemctl restart chronyd
[root@Server-NFS-DNS ~]# chronyc sources -v.-- Source mode  '^' = server, '=' = peer, '#' = local clock./ .- Source state '*' = current best, '+' = combined, '-' = not combined,
| /             'x' = may be in error, '~' = too variable, '?' = unusable.
||                                                 .- xxxx [ yyyy ] +/- zzzz
||      Reachability register (octal) -.           |  xxxx = adjusted offset,
||      Log2(Polling interval) --.      |          |  yyyy = measured offset,
||                                \     |          |  zzzz = estimated error.
||                                 |    |           \
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^* 203.107.6.88                  2   6    17     8    +16us[ +486us] +/-   31ms
[root@Server-NFS-DNS ~]# date
2025年 07月 27日 星期日 18:09:51 CST

4.5配置免密ssh登錄

Server-Web端:

[root@Server-Web ~]# ssh-keygen -t rsa     #生成公鑰私鑰,一路回車
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa
Your public key has been saved in /root/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:BmrsJaPrUhQnHAaRgjFFJA9Sg5Bpq3TtYBP1FSMaGQI root@Server-Web
The key's randomart image is:
+---[RSA 3072]----+
|%EXo.+o. +.      |
|OB+oo.+ o .      |
|o o+o...         |
| o.* o .         |
|o.o X . S        |
|. .+ = .         |
| .. .            |
|.  .             |
| oo              |
+----[SHA256]-----+
[root@Server-Web ~]# ssh-copy-id 192.168.75.155
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '192.168.75.155 (192.168.75.155)' can't be established.
ED25519 key fingerprint is SHA256:C956Oy13qc7K4u0BsOU0sFnkMCIITeWu/OG37KN/g8M.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes    #輸入yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keysAuthorized users only. All activities may be monitored and reported.
root@192.168.75.155's password:                     #輸入密碼123Number of key(s) added: 1Now try logging into the machine, with:   "ssh '192.168.75.155'"
and check to make sure that only the key(s) you wanted were added.[root@Server-Web ~]# ssh root@192.168.75.155
[root@Server-NFS-DNS ~]# 注銷
Connection to 192.168.75.155 closed.
[root@Server-Web ~]# 

?Server-NFS-DNS端:

[root@Server-NFS-DNS ~]# ssh-keygen -t rsa     #生成公鑰私鑰,一路回車
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa
Your public key has been saved in /root/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:cEu+8trkEH2wKG3RRCVw7pKwfy2BTZopPTQdlZZdq/4 root@Server-NFS-DNS
The key's randomart image is:
+---[RSA 3072]----+
|      .o*oo+ ..  |
|       * o+ .  . |
|    . = O.    .  |
|     * ^ +   .   |
|    + # S . .    |
|     = + = .     |
|      + = . .    |
|       O .   .   |
|      ..+     E  |
+----[SHA256]-----+
[root@Server-NFS-DNS ~]# ssh-copy-id 192.168.75.154
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '192.168.75.154 (192.168.75.154)' can't be established.
ED25519 key fingerprint is SHA256:v5NN8DUNHZVB+SwY/sB92f4DQshbsJAV58mz9TMbCb4.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes   #輸入yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keysAuthorized users only. All activities may be monitored and reported.
root@192.168.75.154's password:             #輸入密碼123Number of key(s) added: 1Now try logging into the machine, with:   "ssh '192.168.75.154'"
and check to make sure that only the key(s) you wanted were added.[root@Server-NFS-DNS ~]# ssh root@192.168.75.154
[root@Server-Web ~]# 注銷
Connection to 192.168.75.154 closed.
[root@Server-NFS-DNS ~]# 

5.環境搭建

5.1Server-Web端安裝LNMP環境軟件

[root@Server-Web ~]# yum install nginx php* mariadb-server -y

5.2Server-NFS-DNS端上傳博客軟件

網址:https://cn.wordpress.org/,下載后為zip壓縮文件

將wordpress上傳到192.168.75.155(Server-NFS-DNS)端的/目錄下

解壓縮:

[root@Server-NFS-DNS /]# unzip wordpress-6.1-zh_CN.zip 

5.3Server-NFS-DNS端設置NFS共享

目的:將Server-NFS-DNS端的/wordpress目錄共享給192.168.75.154(Server-Web)

[root@Server-NFS-DNS wordpress]# yum install rpcbind  -y
[root@Server-NFS-DNS wordpress]# yum install nfs-utils  -y
[root@Server-NFS-DNS /]# vim /etc/exports        #編輯配置文件
/wordpress	192.168.75.154(rw,all_squash,sync)   #添加
[root@Server-NFS-DNS /]# chmod -R  777 /wordpress #設置權限
#防火墻添加服務放行        
[root@Server-NFS-DNS /]# firewall-cmd --permanent --zone=public --add-service=mountd
success
[root@Server-NFS-DNS /]# firewall-cmd --permanent --zone=public --add-service=rpc-bind
success
[root@Server-NFS-DNS /]# firewall-cmd --permanent --zone=public --add-service=nfssuccess
[root@Server-NFS-DNS /]# firewall-cmd --reload
success
[root@Server-NFS-DNS /]# firewall-cmd --list-all
public (active)target: defaulticmp-block-inversion: nointerfaces: ens32sources: services: dhcpv6-client mdns mountd nfs rpc-bind sshports: protocols: forward: yesmasquerade: noforward-ports: source-ports: icmp-blocks: rich rules: 
#啟動服務
[root@Server-NFS-DNS /]# systemctl restart rpcbind
[root@Server-NFS-DNS /]# systemctl start nfs-server

5.4Server-Web設置

5.4.1掛載遠程共享目錄

[root@Server-Web ~]# yum install rpcbind  -y
[root@Server-Web ~]# yum install nfs-utils  -y
[root@Server-Web ~]# showmount -e 192.168.75.155  #查看 
Export list for 192.168.75.155:
/wordpress 192.168.75.154
[root@Server-Web ~]# mkdir /wp              #新建本地掛載目錄
[root@Server-Web ~]# mount -t nfs 192.168.75.155:/wordpress  /wp    #掛載
[root@Server-Web ~]# cd /wp
[root@Server-Web wp]# ls
index.php             wp-config-sample.php  wp-mail.php
license.txt           wp-content            wp-settings.php
readme.html           wp-cron.php           wp-signup.php
wp-activate.php       wp-includes           wp-trackback.php
wp-admin              wp-links-opml.php     xmlrpc.php
wp-blog-header.php    wp-load.php
wp-comments-post.php  wp-login.php

5.4.2nginx設置

[root@Server-Web wp]# cd ~
[root@Server-Web ~]# firewall-cmd --permanent --zone public --add-service=http  # 放行
[root@Server-Web ~]# firewall-cmd --reload
[root@Server-Web ~]# vim  /etc/nginx/nginx.conf    # 編輯nginx配置文件root         /wp;

5.4.3修改wordpress配置文件

[root@Server-Web ~]# cd  /wp
[root@Server-Web wp]# cp  wp-config-sample.php  wp-config.php   # 根據模板拷貝配置文件# 編輯wp-config.php配置文件
[root@Server-Web wp]# vim  wp-config.php
# 定位23行修改后半部分
define('DB_NAME', 'wordpress'); # WordPress數據庫的名稱define('DB_USER', 'jeams');     # MySQL數據庫用戶名define('DB_PASSWORD', '123456');  # MySQL數據庫密碼 

5.4.5啟動數據庫

[root@Server-Web ~]# systemctl start mariadb

5.4.6在數據庫中創建數據庫和用戶

[root@Server-Web ~]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 10.5.29-MariaDB MariaDB ServerCopyright (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)]> create database wordpress;    # 創建數據庫,尾部有分號
Query OK, 1 row affected (0.000 sec)# 第一個''為數據庫賬號,@后面的''內容為數據庫可以登錄的地址,localhost意為只能本機登錄。用戶和密碼與wordpress配置文件一樣 
MariaDB [(none)]> create user 'jeams'@'localhost' identified by '123456';
Query OK, 0 rows affected (0.001 sec)# 給用戶授權
MariaDB [(none)]> grant all on wordpress.* to 'jeams'@'localhost';
Query OK, 0 rows affected (0.001 sec)MariaDB [(none)]> exit
Bye

5.4.7重啟數據庫和http

[root@Server-Web ~]# systemctl restart mariadb
[root@Server-Web ~]# systemctl restart nginx

5.5測試

在windows端輸入192.168.75.154繼續完成wordpress配置(郵箱必須設置)

成功界面:

5.6在Server-NFS-DNS端配置DNS

5.6.1原則:www.wp.com正向解析為192.168.75.154

安裝:

[root@Server-NFS-DNS ~]# yum install bind -y
[root@Server-NFS-DNS ~]# firewall-cmd --permanent --zone public --add-service=dns  # 防火墻放行
success
[root@Server-NFS-DNS /]# firewall-cmd --reload
success
[root@Server-NFS-DNS /]# firewall-cmd --list-all
public (active)target: defaulticmp-block-inversion: nointerfaces: ens32sources: services: dhcpv6-client dns mdns mountd nfs rpc-bind sshports: protocols: forward: yesmasquerade: noforward-ports: source-ports: icmp-blocks: rich rules: 

5.6.3編輯主配置文件

[root@Server-NFS-DNS ~]# vim  /etc/named.conf# 第11  19行修改為any任意主機 
11         listen-on port 53 { any; };19         allow-query     { any; };

5.6.4修改區域配置文件

[root@Server-NFS-DNS ~]# vim /etc/named.rfc1912.zoneszone "jeams.com" IN {type master;file "jeams.com.zone";allow-update { none; };
};

5.6.5新建區域數據文件并配置解析

[root@Server-NFS-DNS /]# cd /var/named/
[root@Server-NFS-DNS named]# ls
data  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves
[root@Server-NFS-DNS named]# cp -a named.localhost jeams.com.zone
[root@Server-NFS-DNS named]# vim jeams.com.zone
$TTL 1D
jeams.com.	IN SOA	ns.jeams.com. jeams.163.com. (0	; serial1D	; refresh1H	; retry1W	; expire3H )	; minimum
jeams.com.		IN	NS	ns.jeams.com.
ns.jeams.com.	IN	A	192.168.75.155
www.jeams.com.	IN	A	192.168.75.154

5.6.5啟動服務

[root@Server-NFS-DNS named]# systemctl restart named

5.6.6測試

將Server-Web端的DNS改為192.168.75.155后并輸入www.wp.com域名訪問

[root@Server-Web ~]# curl www.jeams.com
<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name='robots' content='max-image-preview:large' />
<title>hello,lebronjeams</title>
<link rel='dns-prefetch' href='//192.168.75.154' />
<link rel="alternate" type="application/rss+xml" title="hello,lebronjeams &raquo; Feed" href="http://192.168.75.154/index.php/feed/" />
<link rel="alternate" type="application/rss+xml" title="hello,lebronjeams &raquo; 評論Feed" href="http://192.168.75.154/index.php/comments/feed/" />

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/90708.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/90708.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/90708.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

基于開源AI智能名片鏈動2+1模式S2B2C商城小程序的人格品牌化實現路徑研究

摘要&#xff1a;在數字化消費時代&#xff0c;人格品牌化已成為企業突破同質化競爭的核心策略。本文以開源AI智能名片、鏈動21模式與S2B2C商城小程序的融合為切入點&#xff0c;構建“技術賦能-關系重構-價值共生”的人格品牌化理論框架。通過分析用戶觸達、信任裂變與價值沉淀…

設計模式十一:享元模式(Flyweight Pattern)

享元模式是一種結構型設計模式&#xff0c;它通過共享對象來最小化內存使用或計算開銷。這種模式適用于大量相似對象的情況&#xff0c;通過共享這些對象的公共部分來減少資源消耗。基本概念享元模式的核心思想是將對象的內在狀態&#xff08;不變的部分&#xff09;和外在狀態…

Webpack/Vite 終極指南:前端開發的“渦輪增壓引擎“

開篇:當你的項目變成"俄羅斯套娃" "我的index.js怎么引入了87個文件?!" —— 這是每個前端開發者第一次面對復雜項目依賴時的真實反應。別擔心,今天我要帶你認識兩位"打包俠":老牌勁旅Webpack和新銳黑馬Vite 一、構建工具:前端世界的&qu…

Windows 下配置 GPU 用于深度學習(PyTorch)的完整流程

1. 安裝 NVIDIA 顯卡驅動 前往 NVIDIA官網 下載并安裝適合你顯卡型號&#xff08;如 5070Ti&#xff09;的最新版驅動。下載 NVIDIA 官方驅動 | NVIDIA安裝完成后建議重啟電腦。 2. 安裝 CUDA Toolkit 前往 CUDA Toolkit 下載頁。 選擇 Windows、x86_64、你的系統版本&#…

詳解力扣高頻SQL50題之180. 連續出現的數字【困難】

傳送門&#xff1a;180. 連續出現的數字 題目 表&#xff1a;Logs -------------------- | Column Name | Type | -------------------- | id | int | | num | varchar | -------------------- 在 SQL 中&#xff0c;id 是該表的主鍵。 id 是一個自增列。 找出所有至少連續…

VSCode 報錯 Error: listen EACCES: permission denied 0.0.0.0:2288

使用 npm run dev 啟動項目時報錯&#xff1a;error when starting dev server: Error: listen EACCES: permission denied 0.0.0.0:2288at Server.setupListenHandle [as _listen2] (node:net:1881:21)at listenInCluster (node:net:1946:12)at Server.listen (node:net:2044:…

[2025CVPR-圖象超分辨方向]DORNet:面向退化的正則化網絡,用于盲深度超分辨率

1. ?問題背景與挑戰? 盲深度超分辨率&#xff08;Blind Depth Super-Resolution, DSR&#xff09;的目標是從低分辨率&#xff08;LR&#xff09;深度圖中恢復高分辨率&#xff08;HR&#xff09;深度圖&#xff0c;但現有方法在真實場景下面臨顯著挑戰&#xff1a; ?已知…

關系與邏輯運算 —— 寄存器操作的 “入門鑰匙”

前言 哈嘍大家好&#xff0c;這里是 Hello_Embed 的新一篇學習筆記。在前文中&#xff0c;我們學習了如何用結構體指針操作硬件寄存器&#xff0c;而寄存器的配置往往離不開位運算和條件判斷 —— 比如通過邏輯運算精準修改某幾位的值&#xff0c;通過關系運算判斷硬件狀態。這…

使用 Python 將 CSV 文件轉換為帶格式的 Excel 文件

在日常的數據處理和報表生成工作中&#xff0c;CSV 格式因其簡潔性而被廣泛采用。但在展示數據時&#xff0c;CSV 文件往往缺乏格式和結構化樣式&#xff0c;不利于閱讀與分析。相比之下&#xff0c;Excel 格式&#xff08;如 .xlsx&#xff09;不僅支持豐富的樣式設置&#xf…

每天讀本書-《如何度過每天的24小時》

全景式書籍探索框架 1. “這本書是關于什么的&#xff1f;”——核心定位 一句話核心思想&#xff1a;這本書的核心并非教你如何高效地工作&#xff0c;而是倡導你將工作之外的“自由時間”視為一個“內在的另一天”&#xff0c;并投入智力與熱情去經營它&#xff0c;從而獲得精…

前端開發 React 狀態優化

為了更深入地理解 React 狀態管理的性能問題及其解決方案&#xff0c;本文將詳細分析 React Context 和 State 的性能問題&#xff0c;配以示例代碼說明優化策略。之后&#xff0c;討論 Redux 作為不可變庫的性能問題&#xff0c;并引出 Immer 作為優化解決方案。1. React Stat…

劍指offer第2版:雙指針+排序+分治+滑動窗口

一、p129-JZ21使奇數位于偶數前面&#xff08;不考慮相對位置&#xff09;&#xff08;hoare快排雙指針&#xff09; 調整數組順序使奇數位于偶數前面(二)_牛客題霸_牛客網 如果不考慮相對位置的話&#xff0c;那么我們可以模仿hoare快排&#xff0c;使用雙指針的思想&#xf…

14-C語言:第14天筆記

C語言&#xff1a;第14天筆記 內容提要 指針 變量指針與指針變量 指針變量做函數參數指針變量指向數組元素 數組指針與指針數組 數組指針回顧 變量指針與指針變量 變量指針&#xff1a;變量的地址值&#xff08;首地址&#xff09;&#xff0c;本質是指針、地址 指針變量&#…

【筆記】活度系數推導

文章目錄一、理想溶液的假設與局限性1.1 理想溶液的定義1.2 理想溶液的局限性二、活度與活度系數的引入2.1 活度的定義2.2 修正后的化學勢表達式三、活度系數的物理意義四、為什么需要活度系數&#xff1f;4.1 理論需求4.2 擴散理論中的必要性五、活度系數的具體作用5.1 在化學…

基于Docker的GPU版本飛槳PaddleOCR部署深度指南(國內鏡像)2025年7月底測試好用:從理論到實踐的完整技術方案

還是網上沒找到這個基于Docker的GPU版本飛槳PaddleOCR部署教程&#xff0c;于是就有了這一篇。 這個的確坑很多&#xff0c;可能后面變一個版本就不好用了&#xff0c;也是為什么這篇博客不完全粘貼代碼的原因。 端口是示例&#xff0c;可以隨意改。在人工智能與文檔數字化高速…

Python-初學openCV——圖像預處理(三)

目錄 一、邊緣填充 1、邊界復制 2、邊界反射 3、邊界反射101 4、邊界常數 5、邊界包裹 二、透視變換 三、圖像掩膜 1、制作掩膜 2、與運算 3、顏色替換 四、ROI切割 五、圖像添加水印 一、邊緣填充 我們對圖像進行處理后&#xff0c;需要對空出來的區域進行一個填充…

【ESP32設備通信】-W5500與ESP32 /ESP32 S3集成

W5500與ESP32 /ESP32 S3集成 文章目錄 W5500與ESP32 /ESP32 S3集成 1、W5500介紹 2、硬件準備與接線 3、代碼實現 3.1 以太網設置 3.2 簡單HTTP請求 3.3 HTTPS請求 3.4 查詢證書 ESP32 憑借其強大的 Wi-Fi 功能,一直是物聯網項目的熱門選擇。ESP32 現在支持帶有 SSL 的原生以太…

vue - 使用canvas繪制驗證碼

封裝繪制驗證碼 verify-code.vue<template><div class"captcha"><canvas ref"canvasRef" :width"width" :height"height" click"refreshCaptcha"></canvas></div> </template><scri…

[10月考試] F

[10月考試] F 題目描述 給定長度為 nnn 的序列 ana_nan?&#xff0c;保證 aia_iai? 為非負整數。 mmm 次詢問&#xff0c;每次給定區間 l,rl,rl,r&#xff0c;求出 al,al1,…,ara_l,a_{l1},\ldots,a_ral?,al1?,…,ar? 的 mexmexmex。 對于一個序列&#xff0c;定義其 mexm…

收集了全球55個AI寫作工具

我們即將推出一整套AI生產力工具矩陣&#xff0c;覆蓋內容創作&#xff08;AI寫作助手&#xff09;、視覺設計&#xff08;智能圖像處理&#xff09;、音視頻制作&#xff08;自動轉錄與編輯&#xff09;及智能編程等多個核心領域。這些解決方案通過先進的機器學習算法&#xf…