普通视图

酷鸭数据2026盼新活动来了!8核16G高性能配置,香港Colo数据中心,399续费同价

2025年12月6日 14:52

酷鸭数据2026盼新活动来了!8核16G高性能配置,香港Colo数据中心,399续费同价 - 第1张图片

老张博客搬家至酷鸭数据香港VPS》,目前使用已有一段时间了,感觉还是不错的。所以这里推一推自己的AFF。我的推广链接:https://www.kooya.hk/recommend/3gwffST4RbTO

目前酷鸭数据推出2026年盼新活动,8核16G高性能配置,香港Colo数据中心,399续费同价。目前老张博客也是放在这台母鸡上。当我看到这款配置的时候,我和酷鸭交流过,首先问这样高的配置是不是超售,得到答案是绝不会超开。其实像我们这样的博主,根本用不了这样高的配置,我想着能不能把配置降一降比如降到4核4G,带宽从5M往上提一提,这样价格还可以更低。得到的答案是年底了需要向总公司提交年度报告,如果总公司发现容量空那么多就觉得没必要给那么多配置容量给这边市场。所以原来活动配置是8核8G,索性就多送了8G内存。带宽太贵,只能给到5M,对于博客来说,5M的带宽也是足够使用的了。

如有想购买的,用我的推广链接注册呀!首页会弹出活动配置链接。还是那句话,不管是大厂还是小厂,记得天天备份数据哟!

酷鸭数据2026盼新活动来了!8核16G高性能配置,香港Colo数据中心,399续费同价 - 第2张图片

Basic System Information:
---------------------------------
Uptime     : 0 days, 0 hours, 21 minutes
Processor  : Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
CPU cores  : 8 @ 2299.984 MHz
AES-NI     : ✔ Enabled
VM-x/AMD-V : ✔ Enabled
RAM        : 15.4 GiB
Swap       : 0.0 KiB
Disk       : 130.0 GiB
Distro     : Debian GNU/Linux 12 (bookworm)
Kernel     : 4.18.0-358.el8.x86_64
VM Type    : KVM
IPv4/IPv6  : ✔ Online / ❌ Offline

IPv4 Network Information:
---------------------------------
ISP        : Cogent Communications
ASN        : AS401696 cognetcloud INC
Host       : FOJ IP TECHNOLOGY LIMITED
Location   : Mong Kok, Yau Tsim Mong District (KYT)
Country    : Hong Kong

fio Disk Speed Tests (Mixed R/W 50/50) (Partition -):
---------------------------------
Block Size | 4k            (IOPS) | 64k           (IOPS)
  ------   | ---            ----  | ----           ---- 
Read       | 227.97 MB/s  (56.9k) | 1.44 GB/s    (22.5k)
Write      | 228.57 MB/s  (57.1k) | 1.44 GB/s    (22.6k)
Total      | 456.54 MB/s (114.1k) | 2.88 GB/s    (45.1k)
           |                      |                     
Block Size | 512k          (IOPS) | 1m            (IOPS)
  ------   | ---            ----  | ----           ---- 
Read       | 1.56 GB/s     (3.0k) | 1.61 GB/s     (1.5k)
Write      | 1.64 GB/s     (3.2k) | 1.71 GB/s     (1.6k)
Total      | 3.20 GB/s     (6.2k) | 3.32 GB/s     (3.2k)

Geekbench 5 Benchmark Test:
---------------------------------
Test            | Value                         
                |                               
Single Core     | 739                           
Multi Core      | 4879                          
Full Test       | https://browser.geekbench.com/v5/cpu/23949468

 SysBench CPU 测试 (Fast Mode, 1-Pass @ 5sec)
---------------------------------
 1 线程测试(单核)得分:          884 Scores
 8 线程测试(多核)得分:          6533 Scores
 SysBench 内存测试 (Fast Mode, 1-Pass @ 5sec)
---------------------------------
 单线程读测试:          18155.68 MB/s
 单线程写测试:          14202.38 MB/s

酷鸭数据2026盼新活动来了!8核16G高性能配置,香港Colo数据中心,399续费同价 - 第3张图片
酷鸭数据2026盼新活动来了!8核16G高性能配置,香港Colo数据中心,399续费同价 - 第4张图片
酷鸭数据2026盼新活动来了!8核16G高性能配置,香港Colo数据中心,399续费同价 - 第5张图片

DIY人生第一台NAS-软件篇

2025年12月1日 22:16

DIY人生第一台NAS-软件篇 - 第1张图片

 

DIY人生第一台NAS-硬件篇》已经有十几天了,这段时间由于工作上的事情比较多也就没有怎么样去折腾,只是把手机里、台式机、笔记本、移动硬盘等零零散散的照片收集起来并上传到了NAS,本来想的跑N个服务的到目前为止还一个也没有安装。这个时候就会想到组的这台NAS真的是性能过剩了,提到性能过剩,就来聊聊硬件安装好后,对于软件的考虑。

NAS系统的选择

硬件组建好之后,对于系统我也有考虑。NAS必须要求稳,不能今天安装这个系统、明天再安装个那个系统,只要能稳定运行就行。所以首当选择的就是飞牛fnos,虽然之前一直玩的是黑群晖。在J4125小主机群里有几位大佬交流之后,他们说像这样性能的NAS,不搞个all in one的话,性能都不能发挥出来。他们的建议就是“算存分离”,也就是虚拟出黑群晖来存放数据,而各种应用使用飞牛,飞牛和黑群晖之间通过虚拟交换机的万兆网卡用SMB达到秒传输数据。直接点说,他们看好飞牛系统里的各项应用,但是并不看好飞牛存储数据的安全性,那也就是“即想,又要”的关系了。之前折腾J4125的时候一直用ESXI做底层,但是我的这台NAS网卡却是螃蟹卡,在海鲜上买了半高的I350T4,可是安装好之后,挡了CPU的排风,加之我也不是太想搞“算存分离”,就放弃吧。简单点,直接飞牛fnos走起。其实那时也想着搞Unraid,虽然之前在张大妈上看过阿文菌的教程,但是我想折腾起来的话又得要N久,算了吧。

硬盘陈列方案的选择

在组这台NAS前,手时就存有两块4T西数的红盘和一块4t的旧的监控盘。因为那块监控盘在我手里都运行了两种多,之前从监控上淘汰下来的时候也运行有三四年,一共是运行了五万多小时,所以准备重新买一块西数红盘,三块硬盘组RAID5的,这样8T的空间于我说来真的是足够使用了。但是群里大佬说RAID5如果有坏盘换新重建的时候,有极高的二次故障风险,这个是RAID5最为致命的缺点,而RAID1的重建风险就非常的低。想想自己使用场景也就是存个照片什么的,最终还是两块4T西数红盘组成了RAID1,用来放照片等数据。而那块旧的4T监控盘直接使用,用来放影视,就是这块盘坏了,数据丢了也无所谓。

文件系统类型选择

在我组这台NAS的前两三个月吧,飞牛正式推出了ZFS文件系统。当也有做了功课,请教了deepseek的回答就是,鉴于我的硬件配置,那是必须要上ZFS。ZFS虽然对内存的要求极高,但是32G内存安全可以应付得来。ZFS的受益:ZFS会愉快地使用10GB、甚至20GB的内存作为ARC缓存,这将让您的照片库浏览、文件搜索等操作快如闪电。最终效果是:您的NAS整体响应速度会更快,因为大量的数据请求被内存缓存消化掉了,避免了慢速的硬盘I/O。“请毫不犹豫地选择ZFS。 它的内存占用是一种积极的、提升整体系统性能的投资。您的32GB内存足以让ZFS和您所有的Docker服务和谐共处,并享受ZFS带来的极致数据安全和飞快的读取速度。这是一种“双赢”的局面,而不是一场“零和博弈”。”,虽然deepseek把ZFS说的这么好,但是考虑到后期扩容的灵活性、数据恢复等众多原因,最后还是选择了Btrfs。

其实总结下来,还是选择大众化的,安心、省心、不劳心!

 

 

老张博客搬家至酷鸭数据香港VPS

2025年11月26日 11:54

老张博客搬家至酷鸭数据香港VPS - 第1张图片

不知道从什么时候起,老张博客打开后台评论页面时非常卡顿,经常导致浏览器无响应,甚至有时候电脑都跟着一起卡,排查了好长时间没有找到原因所在。而目前手里有一台酷鸭数据的香港VPS在跑长毛象,这台酷鸭数据的香港VPS较CC的VPS配置要高一些,所以想着搬过去之后会不会问题可以解决。

酷鸭数据的香港VPS我在《酷鸭数据香港服务器简单测评》做过推荐,从9月份跑毛长象到现在,都一直非常的流畅,线路是没得说。但是价格方面呢,2H2G香港的一个月30块钱,不像什么狐蒂云16H16G香港的才111块钱,可想而知,你自己懂的!虽然酷鸭数据的母公司https://node.co.id/和https://www.ikubaru.co.id/在印尼已经创办多年,但是初到中国市场,大家的认可度还不是太高。如果选择酷鸭数据,可以先选择月付,数据记得每天备份。记得走我的推广链接哟:我的推广链接:https://www.kooya.hk/recommend/3gwffST4RbTO 。再来说说CloudCone,因为价格在那里,中规中矩吧,效果、线路不会惊艳到你,但是也不会太让你失望。

双十一的时候“抢”了雨云的香港活动机,正常价格是48元/每月,年付450元/年,当时活动价是99元,年抛机,当时想拿过来做线路机拉美西的。经过和酷鸭数据的这台香港VPS一比,线路真的是差的有一段距离。

因为跑不少Docker服务,所以本次选择用1panel面板,不管什么,都要尝试一下嘛。到底是才接触,新建一个网站都折腾了个把小时,把老张博客完成搬家后,折腾了三个多小时。要是用宝塔的话,自带的网站迁移,分分钟搞定。折腾这么长时间的原因还是对1panel不熟悉。都说1panel占用服务器资源,我这台服务器目前只把老张博客搬了过来,内存就占用了2.5G了。

博客搬家,目前可以正常访问,估计后续还会遇到这样或那样的小问题,再慢慢解决吧!

搬家成功后,再后博客后台评论页面,卡顿现象并没有解决,说明不是服务器配置问题了。最后还是请教了AI得到了解决,不过开始AI又是让我安装插件、又是让我优化数据库、又让我修改服务器配置。为什么要优化数据库呢,因为我的博客评论数已到20000条,查询数据必然会占用资源。提到了查询,AI最后给的建议是修改每页评论显示数。NND,这个时候我才看到评论页面显示数是999条,修改成每页面显示50条之后,问题立马解决。

DIY人生第一台NAS-硬件篇

2025年11月19日 11:09

DIY人生第一台NAS-硬件篇 - 第1张图片

在内存、硬盘、CPU爆涨的今天,配电脑、配NAS的都是大冤种,当然包括我!下面是我这次DIY的价格清单,如果在两年前这样的配置便宜两千块钱不敢说,至少可以便宜一千五。

CPU Intel 酷睿 i5-13500T(散片) 1120
主板 华擎(ASRock)B760M-ITX/D4 899
内存 金百达 黑爵 DDR4 3200 32GB (16GB×2) 758
电源 全汉(FSP) 经典版MS500 398
风扇 Thermalright(利民) AXP90-X53 WHITE 156
机箱 乔思伯 N2 599
硬盘 M.2金士顿1T(系统盘、应用盘) 798
2.5寸光威512G(读写缓存盘) 268
西数红盘4T*2(raid1,数据盘) 1918
希捷监控盘4T*1-(旧,影视) 0
硬盘转接盒 2.5转3.5奥睿科-京东 49
SATA线 弯直头*4-淘宝 36
硬盘电源线 定制正反双线款-淘宝 40
风扇 猫头鹰12025-闲鱼-用于机箱后档 148
猫头鹰A6x25-闲鱼X2-用于机箱 176
M.2散热器 利民HR-10 2280 PRO 89
机箱风扇档板 华顾12CM 7
7459

最早玩NAS还是七八年前的蜗牛星际、暴风二期,为什么说是“玩”,因为不知道是什么原因,我的两块全新2T酷狼硬盘用不到半年时间就挂掉一块,因为没有组RAID,数据全部丢失,还好的就是没有存什么重要数据,另外也在网盘上做了备份。但是却有了NAS容易坏硬盘的阴影一直存在。2023年2月,折腾了J4125小主机All in oen,外接了硬盘笼用朋友送的一块4T的监控盘存放影视。这块硬盘在我手里已经两年多,目前一共运行了五万五千多小时,也就是近六年半的时间,还一直健康。

搞真正NAS的心一直都有,加之老婆说我给孩子们拍的照片都没有好好保存,而老婆自己拍的照片都放在QQ空间里,全都压缩成了几百K的,清晰度严重下降甚是可惜。种种原因,那就还是搞一个NAS吧!成品NAS不会去搞,同样配置的得要多出至少一半的年。那段时间天天泡海鲜,也没有选到心仪的,索性就搞一个全新的得了!至于配置方面,也是准备一步到位,至少三五年不过时,性能得要“过剩”的那种!

之前没有DIY经验,配置清单都是按心目中的价格参考海鲜上的。最初选择的主板是三百多块钱、电源是一百多块钱,把清单发到群里后,不少人说机箱比主板都贵,建议把主板和电源搞的好一点,这样会更加稳定,对硬盘也会有很好的保护作用。

硬盘选择了M.2金士顿的1T来安装系统,余下部分作为存储用。2块全新西数红盘组成RAID1来存储重要的数据,如照片等。另一块朋友送的4T监控盘存放影视,即使坏了数据掉了也无所谓。又搞了一台2.5光威固态做为缓存盘,其实这块硬盘是可有可无的,也可以拿金士顿余下空间来做缓存盘。

机箱通风优化方面,购买了机箱背板大4P正反双线接头、弯头的Sata数据线,这样,就可以把原配风扇换成12X25的温控风扇。在2.5寸硬盘位用扎带安装了2个6X25的猫扇,这样机箱通风散热效果会更好。

M.2金士顿硬盘真的不怎么的,待机温度就是54度往上,要知道现在室温才十来度哟。如果夏天或是工作时温度更高,无疑会影响寿命,便购买了利民HR-10 2280 PRO带风扇的。这个风扇散热效果真的是太好了,安装好之后,待机温度变成了32度,直降二十多度。买之前我看评论区有人说降了二十多度我还没有相信呢!

其实这次DIY预算是四千左右,结果就像去买车一样,从最初选择奇瑞QQ最后买了凯迪拉克!估计会有很多人说“你这NAS配置,比我电脑配置高太多”!其实我自己也是,我家里台式机CPU才是i3-7100,海鲜上卖30块!

轻身减负卖域名了!顺带卖马捷J4125小主机!

2025年11月12日 10:14

轻身减负卖域名了!顺带卖马捷J4125小主机! - 第1张图片

天天喊着要在博客上做减法,在2023年底的时候就要《将博客减法进行到底!》,首先提到的就是要把域名做减法。减法做着,域名没有被“减”少反而会越减越多(是不是每位博主都是这样呀!)。暑期的时候折腾兰空图床商业版,为了配合“商业”单独又折腾了几个域名。因为那段时间一直泡在西部数码里,又开始关注“域名抢注”起来。其实对于域名这块,只要你不关注,不去想,基本上不会有购买的欲望。

现在把手里的几个域名列列,都按成本价来出吧!

图床域名imgbed.net

意思简单直接,图+床,img+bed,cn后辍一直有人使用。域名在西部数据,已挂市场,博友注册价89元出售。https://www.365.hk/ykj/view.asp?domain=imgbed.net

图床域名pic.ge

这个域名一看就知道也是用于图床的,网站可以起名为“图歌”。图歌,名子真的好听。域名在趣域,博友注册价出售。

ICK.CC(已售)

那段时间关注着net和cc短域名,发现这个ICK.CC可以“抢”,感觉不错,ICK嘛,大家都知道,便提交是148元去抢。结果就我一个人在“抢”,尴尬!哈哈!这个域名也在西部数据,博友抢注价148元出售。https://www.365.hk/ykj/view.asp?domain=ick.cc

吐槽下,我在西部挂的域名出售价是200块,结果出售页面是230块!乖,比我赚的多呀!

所思suo.si

所思,suo.si,当时折腾长毛象时,为了装X找小韩以500块拿下的。现还是成本价500元出售。有一说一,这个域名做博客、随笔什么的,真的还是不错的。

核心理由:为什么 “所思” 适合做博客域名?

  1. 贴合博客核心属性:博客的本质是 “记录思考、分享感悟”,“所思” 直接点明 “分享内心所想” 的定位,让读者一眼就知道博客的核心内容 —— 无论是生活随笔、行业思考还是情感抒发,都能完美契合。
  2. 简洁易记,传播成本低:二字域名短小精悍,无生僻字,口头交流(如 “我的博客是‘所思’”)或书面呈现都容易被记住,相比长域名更易积累长期流量。
  3. 文学感强,自带格调:“所思” 源自古典文学,自带文雅、细腻的气质,能提升博客的质感,区别于普通流水账式博客,吸引喜欢深度内容、偏爱细腻表达的读者。
  4. 适配场景极广,不局限内容方向:无论博客是个人随笔、读书分享、行业洞察、旅行感悟还是情感记录,“所思” 都能覆盖 ——“所思” 可是读书心得,可是工作思考,也可是生活碎念,后期内容转型也无需更换域名。
  5. 无负面联想,通用性强:“所思” 是中性且积极的表达,没有特定行业或场景的限制,不挑博主身份(学生、职场人、创作者均可),也不会因内容调整显得违和。

图床域名img.ma

目前这个域名自己在用,起名曰“图妈图床”,绑定了兰空图床商业版!发现自己用还是多余了,可以连同兰空图床商业版一同成本价出售。

另外再卖一个小主机吧!

老蔡家的J4125小主机(马捷J4125),配了8G三星内存、1T梵想M.2固态。之前是买来跑点心云的,后来宽带被降速、公网IP被封就没有敢跑,J4125小主机就放在那里吃灰了。家里还有一台同款,用了Esxi做了底层,虚拟了Ikai+OP+DSM,稳定运行了近三年,目前还在效力!可以提供All in one视频教程、工具、安装ISO等,让你体验折腾的乐趣!再送外置硬盘笼,给你的小姐姐们安个家!

价格参考海鲜再适当降底!

ESXI虚拟下黑群晖DSM7.1完美升级至DSM7.2.2

2025年10月29日 09:57

ESXI虚拟下黑群晖DSM7.1完美升级至DSM7.2.2 - 第1张图片

首先来说下我的硬件环境,目前我的是用J4125小主机外拖硬盘盒,放了1块1T和1块4T的硬盘。软件环境是ESXI下虚拟了爱快、Openwrt和黑群晖。因为以前坏过盘,心里一直都有阴影,所以黑群晖上也没有放重要数据,即使是有一些照片,也是同步到第三方存储。

黑群晖的东西,求稳不求新,只要能稳定运行最好不要去升级。这次升级的原因就是为了安装可道云kodbox套件。最新版可道云套件需要PHP8.2支持,而DSM7.1里PHP最高版本才是7.4,没办法,想要安装可道云kodbox套件,那只能把黑群晖升级到7.2了。

在升级之前,需要给大家科普下,DSM7.2.2不支持硬解(我也是听群里大佬们说的),如果有硬解需求的,就不要升到7.2.2了,听说7.2.1可以。另外可道云kodbox套件安装和Docker安装的区别:kodbox套件安装,可以安装成MYSQL数据库,而数据缓存可以选择Redis数据库,这样的安装方式速度更快、性能更佳。Docker部署可道云kodbox,也可以选择上述方式,但是设置非常的麻烦,所以Docker方式部署可道云kodbox一般选择SQList数据库,而数据缓存选择文件缓存的方式。

因为有些大神的存在,给我们这些小白有了更好的折腾空间,这次升级我是用了https://rrorg.cn/家的编译引导。因为升级方法过于简单,我不用图文方式了。

1.下载引导文件

移步https://rrorg.cn,自行下载引导文件。

2.利用转盘工具,转成vmdk文件

我的ESXI还是6.7版,所以用StarWindConverter进行转盘,成功后会成生两个vmdk文件。

3.上传RR引导文件,删掉旧引导,添加新引导

把RR引导文件通过“数据存储浏览器”上传的合适的位置,注意的是生成的两个vmdk都要上传,上传成功后会合并成一个文件。

ESXI虚拟下黑群晖DSM7.1完美升级至DSM7.2.2 - 第2张图片

在黑群晖虚拟机的设置里,把原引导盘删掉,这里注意下,不要勾选“从数据存储删除文件”,方便我们降级。重新添加引导盘,选择“现有硬盘”,找到我们上传的引导文件。

4.按rrorg教程,步步升级

rrorg网站上有详细的“使用指南”步步升级即可!

5.注意点

升级过程中,一定要选择“保留系统配置”!一定一定!

 

折腾的心,停不下来!

2025年10月19日 21:52

折腾的心,停不下来! - 第1张图片

折腾的心真的停不下来,作为每一位博主,估计都能折腾。每个人手里都会有不少的域名、VPS。曾经我在《将博客减法进行到底!》要告诫自己,需要对博客做减法了,那个时候也确实有点效果,手里的域名和VPS真的减少了不少,可是,现在又折腾的域名和VPS越来越多了!

大佬论坛有一次搞了个抽奖活动,是兰空图床的商业版授权,十份奖那么多人在抽,结果可想而知了。那个时候是魔怔了,一心想着兰空图床商业版,便从中奖人的手里花了180块钱买了商业版的授权码。商业版有了,但是没有域名呀!天天的想着能搞个合适的域名,先后注册了pic.ge和imgbed.net,都不是太满意,最后注册到了img.ma,给图床起名曰“图妈”。兰空商业版有了,域名也有了,但是还是没有找到合适的存储空间,又怕被人刷流量,现在还一直用着cloudflare的R2存储呢。R2有时会抽风,图片还会开裂!唉!麻烦!

假期的时间,博友们都在折腾着长毛像,那我也不能闲着呀!为了在联邦宇宙里装X,找了韩老板花了500块钱买了域名suo.si单独配给长毛像用。所思suo.si,看上去就高大尚呀!折腾GoToSocial还不过瘾,又折腾起了Mastodon,但是Mastodon太吃VPS内存了,又在论坛上溢价150块钱收了cloudcone家的4C4G配置的一台VPS专门安装Mastodon。这几天热乎劲过去了,每天也难发一篇嘟文!

拿急的心就不断,怎么着魔怔了在西部数据上天天盯过期域名看,还“抢”注了一个CC后辍的域名,ICK.CC,我以为会有很多人和我抢,结果就我一个傻X。还TM是花了148块钱抢的!哈哈!

搬瓦工发售megabox pro的时候,小胡同学还在群里广播了下。那个时候我想着反正我的CC机器用着还不错,不是刚需就没有买。后来才发现搬瓦工的megabox pro真的是好鸡,魔怔又犯了,天天泡论坛里收,又是溢价150块钱收了一台原邮的!搬瓦工限制CPU真TM有点变态了,用宝塔面板编译个网站环境CPU高了点就给我限制了!

兜兜转转,现在手里又七个域名七台VPS了!续费的时候一定又是肉疼了!现在手里的私房钱快要吃不消了!不行,还是得要做减法,有哪位看中pic.ge、imgbed.net、suo.si、ICK.CC的,就带走吧!!

国庆七天“摔”!“衰”!

2025年10月14日 09:54

国庆七天“摔”!“衰”! - 第1张图片

五一小长假的时候,一家去了徐州玩了两天,这两天哪是旅游呀,就是活受罪!从美团上订的五百多一晚上宾馆,条件差的一塌糊涂,处处是人从众!吃个小吃都要排上一两个小时的队!鉴于五一的情况,我和老婆一致决定国庆哪也不去,宅在家里。

今年国庆时间应该是突出个“宅”的,结果却偏偏来个“摔”!

国庆前一天,就感觉到有点鼻塞,并没有在意,国庆当天不自觉的清水鼻涕就流个不停,很明显感冒了!从国庆第二天开始,咳嗽了!是那种要么半天不咳,要么一咳就能咳出肺的那种!屋漏偏遇连阴雨呀!国庆这几天天气转冷,我的鼻炎也加重了,特别是早晨刚起床的时候,能连续打一二十个喷嚏!对于这次的身体不适,我还是比较注意的,就是因为想过好中秋嘛(喝酒),哈哈。立即跑到门诊配了药!你还别说,效果还真的不错,中秋前一天基本上就痊愈了!

中秋是回老家过的,上午自然是在厨房忙忙碌碌,还是常规的那几样菜,年年如此,中午自然要陪老爸老妈喝点。

中秋晚上孩子三外爹叫去家里吃饭,拿出了酱香型、浓香型等三样白酒,每样都喝了二两,结果给重醉了!饭后孩子舅舅自告奋勇骑车带我回家,结果,结果,可想而知,到小区门口摔了一跤。他是毫发无损,我却胳膊、脚都摔伤了,中秋第二天脚肿的走路疼的都受不了。今天14号,已经过去8天了,伤还没有好!

所以,今年的国庆,前几天感冒、咳嗽加鼻炎,后几天“摔”!最终用一个字来形容吧!“摔”!“衰”!

宝塔面板Docker分域部署GoToSocial

2025年9月23日 21:27

宝塔面板Docker分域部署GoToSocial - 第1张图片

GoToSocial是什么,我在《WordPress集成Mastodon嘟文之插件篇-Include Mastodon Feed》有所提及。用官方的解释“GoToSocial是一个用Golang编写的ActivityPub社交网络服务器,它提供了一个轻量级、可定制且以安全为重点的入口,进入 Fediverse(联邦宇宙)”。也就是说GoToSocial和Mastodon一样,都是一个进入联邦宇宙的工具。进入联邦宇宙的工具可远远不止这两种哟,有兴趣的可以百度自己折腾下。有了Mastodon,为什么还有一部分人选择GoToSocial呢,正如我之前说过的,Mastodon太重量了,太吃服务器资源,至少需要2C2G的服务器,所以很多人感觉到花了这么大的成本,但是只能得了一点点的功能,感觉有些不值得。而GoToSocial却不同,他是非常的轻量,单用户使用的话,只占不到100M的内存。但是呢,GoToSocial只有服务端也就是我们正常说的后端没有前端,WEB版前端我们可以选择鹿鸣elk.zone等工具。

什么是分域部署GoToSocial,我们在部署GoToSocial时可以直接使用顶级域名来部署,但是用顶级域名无形之中增加了成本,所以很多人选择了用二级域名来部署GoToSocial。比如我部署GoToSocial的二级域名是social.laozhang.org,我创建的用户名是laozhang,那么在联邦宇宙里展示出的账号就是laozhang@social.laozhang.org。这样在联邦宇宙里展示的账号感觉太长不好看也没有个性,那我们就可以通过分域部署,来达到使用二级域名部署GoToSocial,但是在联邦宇宙里显示的用户名却是顶级域名,也就是让你可以装X。比如通过分域部署后,我的原来账号laozhang@social.laozhang.org在联邦宇宙里显示的是laozhang@laozhang.org。

特别提醒的是,如果用二级域名分域部署GoToSocial,务必在第一次启动 GoToSocial 前完成。用官方的解释是“一旦与他人联合后就无法更改域名布局。服务器会因此产生混淆,而你需要说服每个与你联合的实例管理员修改其数据库来解决问题。同时,你还需要在本地重新生成数据库,创建一个新的实例账户和加密密钥对。”

新建GoToSocial目录

在合适的位置新建GoToSocial目录,并建data文件夹,设置如下图。我习惯把Docker的目录都建在一起,方便管理。

宝塔面板Docker分域部署GoToSocial - 第2张图片

创建docker-compose.yaml并修改相关配置

在刚的GoToSocial目录下新建docker-compose.yaml,将下面的代码复制保存,注意修改为自己的配置。

services:
gotosocial:
image: superseriousbusiness/gotosocial:latest
container_name: gotosocial
user: 1000:1000
networks:
- gotosocial
pull_policy: always 
environment:
GTS_HOST:"social.laozhang.org" #实例地址
GTS_ACCOUNT_DOMAIN:"laozhang.org" #用户账户所属的域名,如果使用二级子域名而非主域搭建例请整行删除
GTS_DB_TYPE: sqlite #使用sqlite数据库
GTS_DB_ADDRESS: /gotosocial/storage/sqlite.db
GTS_STORAGE_BACKEND: s3 # 使用S3存储 ,如果不需要可以删除包含STORAGE的环境变量
GTS_STORAGE_S3_BUCKET: user #桶名
GTS_STORAGE_S3_ENDPOINT: s3.bitiful.net #S3端点
GTS_STORAGE_S3_ACCESS_KEY: kmX5VsV8cB4ma8jeAg #
GTS_STORAGE_S3_SECRET_KEY: DJ9qG7pNAZy9 #密钥
GTS_STORAGE_S3_PROXY: true #代理S3,不会显示S3地址
GTS_ACCOUNTS_ALLOW_CUSTOM_CSS: true #允许自定义CSS
TZ: Asia/Chongqing #时区
GTS_SMTP_HOST: mail.cock.li #smtp服务器
GTS_SMTP_PORT: 587 #必须使用TLS
GTS_SMTP_USERNAME: admin@cock.li #用户名
GTS_SMTP_PASSWORD: ****** #密码
GTS_SMTP_FROM: admin@cock.li #邮箱地址
GTS_INSTANCE_LANGUAGES: zh #中文
GTS_ACCOUNTS_REGISTRATION_OPEN: true #开放注册
GTS_TRUSTED_PROXIES: 172.18.0.1/16 #可信代理
ports:
- "127.0.0.1:8080:8080"
volumes:
- ./data:/gotosocial/storage #修改映射目录为第一步创建的GoToSocial目录
restart: "always"

networks:
gotosocial:
ipam:
driver: default
config:
- subnet: "172.18.0.0/16"
gateway: "172.18.0.1"

修改顶级域名重定向规则

打开顶级域名laozhang.org的网站设置,在配置文件里增加下面代码

    # GoToSocial 重定向规则,不玩gotosocial就删除
    location /.well-known/webfinger {
        rewrite ^.*$ https://social.laozhang.org/.well-known/webfinger permanent;
    }

    location /.well-known/host-meta {
        rewrite ^.*$ https://social.laozhang.org/.well-known/host-meta permanent;
    }

    location /.well-known/nodeinfo {
        rewrite ^.*$ https://social.laozhang.org/.well-known/nodeinfo permanent;
    }
     # GoToSocial 重定向规则,不玩gotosocial就删除,结束

运行、创建用户、增加管理员权限

使用ssh工具远程连接到服务器,并进入到刚才创建的GoToSocial目录

运行

docker compose up -d

创建用户,注意自行修改用户名、密码、邮箱

docker exec -it gotosocial ./gotosocial admin account create --username admin --email YOUR@EMAIL.COM --password SOME_VERY_GOOD_PASSWD ;

增加管理员权限

docker exec -it gotosocial ./gotosocial admin account promote --username admin

新建网站,反代

创建social.laozhang.org域名的网站,进行反代。至此全部完成,我们在正常管理gotosocial的时候,当然还是使用二级域名,分域的目的就是在联邦宇宙里显示的账号是顶级域名的。

宝塔面板Docker部署mastodon长毛象

2025年9月18日 23:06

宝塔面板Docker部署mastodon长毛象 - 第1张图片

暑假的时候就开始折腾mastodon了,只不过那个时候没有更新博客就没有做记录。mastodon的Docker方式部署,网上教程很多,我这也是东借西借,才形成了适合自己的部署方法。

什么是mastodon,Mastodon 是一款开源软件,它催生了一系列替代性社交媒体网站。Mastodon 是互联网上最大的去中心化社交网络。 它不是一个网站,而是由独立社区节点及其数以百万计的用户组成的网络,所有这些用户都能够无缝地相互交流。 无论你进入哪一个节点,你都可以与所有在 Mastodon 的人之间进行交流。

自建mastodon是很吃资源的,起步需要要求VPS的配置是2C2G,目前我的mastodon是部署在酷鸭数据的香港VPS上,速度还不错。目前我开启了全文搜索的情况下,内存占用达到3.4G。所以如果你的VPS配置不高的情况下,就不要折腾mastodon了,不过有一个很好的轻量级的替代品GoToSocial,内存占用才一百来M。

如果不自建而想体验mastodon的话,可以直接使用官方的mastodon.social或使用长毛象中文网cmx.im,我们俗称“草莓县”!

设置SWAP虚拟内存

mastodon比较吃内存,所以一般情况下,我们都会设置SWAP,SWAP的大小一般和物理内存相等即可。因为我们是在宝塔面板下操作的,所以能直接在面板操作就直接在面板操作,省得用命令了。

在软件商店里安装“Linux工具箱”,数秒安装完成后,打开Linux工具箱,找到“Swap虚拟内存”项,直接填写即可。

创建mastodon目录

在宝塔面板文件管理器里,直接在你想要的位置创建目录。比如我是创建在/www/mastodon/mastodon下的,因为数据盘就是挂载在www的目录下。

拉取镜像、修改docker-compose.yml配置文件

使用ssh工具远程连接到服务器,并进入到刚才创建的目录

cd /www/mastodon/mastodon

拉取镜像

如果需要升级到某指定版本,请将latest改成v4.4.3等版本号。

docker pull ghcr.io/mastodon/mastodon:latest

下载docker-compose.yml文件

wget https://raw.githubusercontent.com/mastodon/mastodon/main/docker-compose.yml

在宝塔面板文件管理器下,进入mastodon目录,打开docker-compose.yml文件,修改web、streaming、sidekiq分类下的image: ghcr.io/mastodon/mastodon后的版本号,可是加:latest”,也可以直接使用指定版本,比如“v4.4.3”。

开启全文搜索

我是直接在部署的时候就开启全文搜索,后期开启也可以。把docker-compose.yml文件里"es"分类的注释#号全删掉。注意这里有个坑,就是删掉es前的#号后,还得要再删除一个空格,前面空两格,否则安装时会报错。同时在web分类下把“- es”前的注释#号也删掉。

注意:开启全文搜索后,内存占用近1G,所以如果配置低的话,建议把这个功能关掉。

初始化PostgreSQL

初始化数据库

注意初始化代码中,一定要把mastodon目录修改为你自己创建的目录。

docker run --name postgres14 -v /www/mastodon/mastodon/postgres14:/var/lib/postgresql/data -e   POSTGRES_PASSWORD=设置数据库管理员密码 --rm -d postgres:14-alpine

进入数据库

docker exec -it postgres14 psql -U postgres

创建mastodon用户

CREATE USER mastodon WITH PASSWORD '数据库密码(最好和数据库管理员密码不一样)' CREATEDB;

退出数据库

\q

停止Docker

docker stop postgres14

配置Mastodon

创建.env.production文件

进行mastodon根文件夹中创建空白.env.production文件,可以用下面命令,也可以直接在宝塔面板下新建。

touch .env.production

运行引导

docker-compose run --rm web bundle exec rake mastodon:setup

引导安装过程就不赘述了,因为看不懂,我是直接用微信截图翻译的,笨人有笨办法。运行到最后,出现下面显示后,把下面的所有数据复制下来,粘贴到.env.production文件里。

Below is your configuration, save it to an .env.production file outside Docker:

注意,因为我开启了全文搜索功能,所以务必在.env.production文件里添加下面代码

ES_ENABLED=true
ES_HOST=es
ES_PORT=9200

启动Mastodon

docker-compose down
docker-compose up -d

文件夹赋权

chown 991:991 -R ./public
chown -R 70:70 ./postgres14

如果目录内也有elasticsearch文件夹后,也对其赋权。这个是全文搜索功能需要的。

chown 1000:1000 -R elasticsearch

再次重启Mastodon

docker-compose down
docker-compose up -d

到目前为止,全部完工。如果不出意外的话,查看下Docker容器,应该是有6个。其中可以看到mastodon-es-1这个容器占用内存就近1G,他就是全文搜索!

配置图片上传至第三方存储

我设置是把图片上传至CF的R2存储中,方法是在.env.production文件里添加以下代码,不懂的可以问AI,不要忘了把XXX换成自己的KEY!配置完后,重启mastodon搞定!

# 文件上传配置
S3_ENABLED=true
S3_PROTOCOL=https
S3_ENDPOINT=https://XXXXXXXXXXXXXX.r2.cloudflarestorage.com/
S3_ALIAS_HOST=img.suo.si
S3_HOSTNAME=img.suo.si
S3_BUCKET=XXXX
S3_REGION=auto
AWS_ACCESS_KEY_ID=XXXXXXXXXXXXX
AWS_SECRET_ACCESS_KEY=XXXXXXXXXXXXu

新建网站,进行反代

把这个茬给忘了,在蜗牛的提醒下添加一条,可以参考《宝塔面板反向代理,用域名访问Triliu》。不过最新的宝塔面板,“网站”选项里里就有“新建反代”,设置原理是一样的。这样的好处就不会产生网站目录,更为方便易于管理。

酷鸭数据香港服务器简单测评

2025年9月14日 10:41

这次是老张第二次接服务器的广告了,第一次接的是“软云”,当时也是写一篇软文《老张博客搬入软云_RuanCloud,暨谈个人博客服务器的选择!》再加上右侧栏全站图片广告。第一次接广告还是没有经验的,即使在软云没有给AFF没有给推广佣金的情况下,还是在博客群里给他推广了一把,最为后悔的就是还有“担保”的意思在里面。最后软云跑路,博客群里好几位购买软云而最后都没有得到退款,博友损失了,老张还真的是非常的愧疚的!而这第二次接广告,必须要事先说明了!只是我接的广告,只是我在推广自己的AFF,可不做任何担保哟!

还是来说说这个酷鸭吧!经过和酷鸭合伙人(我没有联系到老板)了解到,酷鸭的老板是印尼人,来中国读博,就做起来酷鸭。他们的总公司在印尼,https://node.co.id/和https://www.ikubaru.co.id/在印尼和新加坡都有自建机房。目前酷鸭上线了香港和新加坡的机器,免备案,方便做站。

我的推广链接:https://www.kooya.hk/recommend/3gwffST4RbTO

有一说一,从价格上来看,是中规中矩的市场价,并没有像很多个人作坊那样上来就搞什么超低价活动机。只是搞了一个活动,也就是1元体验。这正也说明了不像软云那样,上来就是直接圈钱。问了酷鸭合作人,他们不急着快速,想着稳中求进。

目前我的mastodon长毛象“所思”https://suo.si放在酷鸭的香港VPS上,那速度真的是起飞了!大家可以检验下!

友情提醒:不管怎么样,公司是才开的,如果想了解,可以等国庆上“一元体验”活动。另外就是数据要记得天天备份!期初建议月付!月付!月付!

酷鸭数据香港服务器简单测评 - 第1张图片

酷鸭数据香港服务器简单测评 - 第2张图片

目前“一元体验”活动机已经售空,国庆应该还会再放出。

我也入手了一台,做个测评让大家简单了解下 酷鸭数据香港服务器简单测评 - 第3张图片

酷鸭数据香港服务器简单测评 - 第4张图片

酷鸭数据香港服务器简单测评 - 第5张图片

酷鸭数据香港服务器简单测评 - 第6张图片

 

 

 

WordPress集成Mastodon嘟文之插件篇-Include Mastodon Feed

2025年9月8日 20:50

 

WordPress集成Mastodon嘟文之插件篇-Include Mastodon Feed - 第1张图片

前段时间虽然说是“断网”了,还是偷偷折腾了GoToSocial和Mastodon。GoToSocial和Mastodon都属于通过“ActivityPub”协议实现与多个平台的联邦特性与其他平台互联互通。GoToSocial虽然轻量,但是颜值和功能还是没有Mastodon好,最终选择了Mastodon。至于怎么玩Mastodon,要么像我这样自建,要么就用网上的平台,比如官方的mastodon.social和草莓县m.cmx.im。有兴趣的可以一起玩玩!目前我自建的为@laozhang@suo.si,官方平台和草莓县上分别是@laozhang@mastodon.social和@laozhang@m.cmx.im。为什么自建了还在其他平台注册呢,我怕以后我驾驭不了自建的mastodon,毕竟玩的时间久了数据都都会达到十几个G。或是感觉到单独花二百块钱搞服务器来玩mastodon不值的时候,我可能就把自建的关停掉。

东西玩多了,都想把他们“集成”到一起,比如老张博客首页的“最新动态”就是调取用 Typecho 搭建的https://zhangbo.net老张随笔第一篇内容。有兴趣的可以按《WordPress首页调用typecho方法!》的方法来;又比如在Wordpress的页面里显示Memos内容,方法可以按《巧搬空白Koobai大佬Memos页面,完美与博客整合。》来。

不难看出,在Wordpress里调用memos或是Typecho,都是完全靠代码,毕竟像这样玩的人少更甚是memos等太过小众,没有人折腾这东西,想要实现一些功能必须要靠自己才行。而同时玩Wordpress和Mastodon却大有人在,所以你想实现的功能别人都早就折腾过了。就比如在WordPress中集成Mastodon嘟文。先看效果https://laozhang.org/mastodon.html,这是我在博客里集成了@laozhang@suo.si所发的所有嘟文。那实现这个功能就只是简单的一个插件,Include Mastodon Feed。

1.安装Include Mastodon Feed

直接在后台插件菜单里搜索安装即可,并启用。

2.查找Mastodon 用户ID

不管是自建的Mastodon还是其他平台,把下面的代码内换成自己的用户名和相应的域名后在浏览器内打开,即可显示你的ID

https://yourinstance.com/api/v2/search?q=yourusername@yourinstance.com&resolve=true&limit=5

3.创建mastodon页面

在Wordpress后台新建页面,把下面代码换成自己的ID和相应域名即可。(换成英文中括号)

【include-mastodon-feed instance="YOUR-INSTANCE" account="YOUR-ACCOUNT-ID"】

4.根据自己喜好,自定义CSS

这个可以根据自己的喜好,自己折腾。

 

怎么样,插件版是不是太简单了!无脑操作即可!

 

WordPress首页调用memos方法!

2024年10月22日 14:03

WordPress首页调用memos方法! - 第1张图片

老张一直想把wordpress和memos能整合在一起,前几天在段先生的博客上看到了教程,便死皮赖脸的问他方法,原来是AI搞定的。刚开始的时候是直接拿段先生的用,但是里面有一些达不到自己想要的效果。比如段先生是从memos的RSS文件里取数但,如果memo里有多篇图片的话,RSS只能输出一张链接地址,其他找不到。通过找木木大佬,用了他提供的《Memos API 非官方不完全说明》便可以解决。另外在CSS布局上也不是自己想要的效果,便想着自己也来让AI搞吧!

让AI帮你写代码,你必须要学会怎么样能更好的和AI对话,必须要有一点点的代码基础,才能把把问题问在点子上。我在把memos的API输出的数据模式先告诉AI,然后再提出自己的要求,要求如下:

我想在wordpress获取memos的api发布第一条动态内容,API的链接地址是https://zhangbo.net/api/v1/memo?creatorId=1&rowStatus=NORMAL&limit=1 ,内容格式如下:
按以下要求进行操作:
1.读取第一个"id"后面的数据,并形成“https://zhangbo.net/m/+“id后面的数据”” 做为链接,赋值给变量$link_content
2.读取"content"后面的数据,读取以#号开始、空格结束的内容,并在前面加#号后赋值给变量$tag_content。
3.读取"createdTs"后面的数值,转化为时间后与当前时间计算时间间隔。时间间隔为1小时内的,以时间间隔+“分钟前”赋值给$time_content;时间间隔为24小时内的,以时间间隔+“小时前”赋值给$time_content;时间间隔为30天内的,以时间间隔+“天之前”赋值给$time_content;时间间隔超过30天的,直接以“年月日”形式赋值给$time_content。
4.读取"content"后面的数据,排除“![]()”图片形式、排除#、#及空格前的内容后,赋值给$content。
5.读取"content"后面的数据,如果有“![]()”图片形式,将()内的图片链接赋值给$image_content;如果"externalLink": 后面有数据,赋值给$image_content;如果"filename"后面有数据,将以“https://zhangbo.net/o/r/+filename上第四行ID后的数值+"filename"的数据”赋值给$image_content。如果以上情况都存在,那将以数值组形式赋值。
以上生成的代码,将保存在wordpress的主题文件functions.php中以便调用。
按以下要求生成CSS代码
1.对于在首页展示的要求,在首页文章列表上方,与首页文章空两行
2.显示框宽度100%、背景灰色、四角椭圆。
3.第一个DIV展示框以"h2”格式展示“最新动态”四个字、靠左对齐、左边距空20px;务必同一行展示$time_content值,右居中对齐,右边距空20PX
4.第二DIV插入细实线、深灰色
5.第三DIV展示$content值
5.第四DIV展示$image_content值的缩略图,缩略图四角椭圆并有阴影,如果多图从左往右排列。并按确保引入 Lightbox.js,也写入到本代码中,达到点击放大效果
6.第五DIV靠左对齐展示$tag_content值,背景灰色并四角椭圆,靠右展示“点击评价”点击链接到$link_content。
再生成输出代码以便插入在首页文件index.php,以便在首页显示。/

我分别测试了官方GPT、三方GPT和豆包,结果是官方GPT直接来句“问题太复杂,请分类进行提问”,三方GPT给出的代码效果完全不对,而豆包给出的代码基本上达到要求。当然,还是由于自己的表述,导致代码在图片显示这块有些问题。今天中午利用几分钟时间,进行了修改,对获取图片链接地址重新让AI写,我是这样提问的:

我现在的要求是其他代码不需修改,只对获取图片链接重新按以下要求来修改
1.读取"content"后面的数据,如果有“![]()”图片形式,将()内的图片链接赋值给$image_content;
2.获取  "resourceList": []的中括号里数据,这是图片组,每组以{}进行区分,查询每个{}内的"externalLink",如果"externalLink": 后面有数据,赋值给$image_content;如果"externalLink"无数据,则以“https://zhangbo.net/o/r/+该图片id+"filename"的数据”赋值给$image_content。
如果以上情况都存在,那将以数值组形式赋值。

经过这样的修改,图片才得要正确显示。后来又陆陆续续的修改了CSS样式,最终达到目前的效果。

现在把相关代码贴给大家吧,需要的自取,不合自己要求的,也可以让AI帮你来修改。

1.把下面的代码插入到主题文件的index.php合适位置。

 <?php
$memoOutput = processMemoData();
if ($memoOutput) {
echo $memoOutput;
}
?>
<script src="https://cdnjs.cloudflare.com/ajax/libs/lightbox2/2.11.4/js/lightbox-plus-jquery.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/lightbox2/2.11.4/css/lightbox.min.css">/* Your code... */

2.把CSS样式代码放置到主题CSS定义设置里,当然也可以直接放到style.css中。


/* 首页调用memos效果---开始 */
/* 缩小与顶部距离,增加与首页文章列表距离 */
.memo-display {
    margin-top: 0px; /* 减少与顶部的距离 */
    margin-bottom: 40px; /* 增加与文章列表的距离 */
    margin-right: 40px; /* 设置右边距为20px */
    width: calc(100% - 40px); /* 计算宽度以适应右边距 */
    background-color: #f2f2f2;
    border-radius: 10px;
    padding: 20px;
    border: 1px solid #ccc; /* 添加细线边框,颜色为浅灰色 */
}


/* 第一个 DIV:展示“最新动态”和时间 */
.memo-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.memo-header h2 {
    margin-left: 0px;
}

.memo-header span {
    margin-right: 0px;
}

/* 第二 DIV:插入细实线、深灰色 */
.memo-divider {
    border-top: 1px solid #999;
    margin: 10px 0;
}

/* 第三 DIV:展示内容 */
.memo-content {
    margin-bottom: 10px;
    line-height: 1.5; /* 或者可以使用具体的像素值,如 1.5em 或 24px */
}
/* 第四 DIV:展示缩略图 */
.memo-images {
    display: flex;
    flex-wrap: wrap;
}

.memo-images img {
    border-radius: 10px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
    margin-right: 10px;
    cursor: pointer;
    transition: transform 0.3s ease; /* 添加过渡效果 */
}

.memo-images img:hover {
    transform: scale(1.1); /* 鼠标悬浮时放大 */
}

/* 第五 DIV:展示标签和链接 */
.memo-footer {
    display: flex;
    align-items: center;
    margin-top: 10px; /* 设置与上面容器的距离为 30px */
}

.memo-footer div:first-child {
    background-color: #9999;
    border-radius: 6px;
    padding: 5px 10px;
    margin-right: 10px;
}

.memo-footer a {
    text-decoration: none;
    margin-left: auto; /* 靠右对齐 */
    margin-right: 0px; /* 右边距 20px */
}
/* 首页调用memos效果---结束 */

3.把下面代码插入到主题functions.php文件中。

/* Your code... */
//-------首页调用memoe代码-----开始
function getTimeContent($createdTs) {
    $current_time = time();
    $time_diff = $current_time - $createdTs;
    static $cachedTimeContent = null;
    static $lastCreatedTs = null;
    if ($lastCreatedTs === $createdTs) {
        return $cachedTimeContent;
    }
    if ($time_diff  100) {
        $substr_content = mb_substr($content, 0, 100, 'UTF-8');
        $last_char = mb_substr($substr_content, -1, 1, 'UTF-8');
        $last_char_ascii = ord($last_char);
        while ($last_char_ascii  126) {
            $substr_content = mb_substr($substr_content, 0, -1, 'UTF-8');
            $last_char = mb_substr($substr_content, -1, 1, 'UTF-8');
            $last_char_ascii = ord($last_char);
        }
        $content = $substr_content. '......';
        $link_text = '查看原文';
    } else {
        $link_text = '点击评价';
    }

    $content_without_tags_and_images = preg_replace('/#.*? /', '', $content);
    $content_without_tags_and_images = preg_replace('/!\[.*?\]\(.*?\)/', '', $content_without_tags_and_images);
    $content = $content_without_tags_and_images;

    // 构建输出内容
    $output = '
'; $header = '

最新动态

'. $time_content. '
'; $divider = '
'; $contentDiv = '
'. $content. '
'; $imagesDiv = ''; if (!empty($image_content)) { $imagesDiv = '
'; foreach ($image_content as $image_link) { $imagesDiv.= 'Image'; } $imagesDiv.= '
'; } $footer = '
'. $tag_content. '
'. $link_text. '
'; $output.= $header. $divider. $contentDiv. $imagesDiv. $footer; $output.= '
'; return $output; }

OK,结束!折腾十几个小时,就是出了这篇教程!!

❌