不知不觉一年就过去了时间真的快啊，想想2023年跨年2024还是前段时间的事情，一转眼就要2024跨年2025了。上次跨年和朋友去了朝阳广场，然后我第一次去机厅玩了一下，试了一下夹娃娃机，没想到居然真夹出来了玩偶。一转眼一年就过去了，也是感觉时间越来越快了。那接下来，对即将过去的2024年做个总结吧。网站/服务器技术方面服务器升级今年年初我配了真正的家里云，用于存储自己的私人文件，也算是，2021年开始玩家里云后，从一个玩具真正转向有实用功能，并且承担重要任务的转变吧。为此，我算是咬咬牙直接上了比较好的配置，虽然也不是什么正经硬件，但是至少在捡垃圾的时候，都是求稳出发捡的。数据盘两个3TB的RAID1保证数据安全，选择可靠的Linux发行版，选用可靠的电源确保不会因为电源波纹不稳炸四方。然后有了这个正经的家里云后，我就开始探索各种玩法了。详情可以看这篇文章：关于运行网站的服务器转移重要文件到家里云之前我一直是手动双盘备份文件，费时费力，还容易出错。我这人比较求稳，重要数据存两份我才放心，为了整理这些数据，硬盘拿来拿去，接来接去属实浪费时间。于是乎，就直接上家里云了，其实家里云的两个3TB硬盘原本就是我的冷备盘。这下只要我把文件上传，至少就有两份独立的备份了，RAID1还是比较可靠的。使用filebrowser管理文件虽然我的家里云开启了SMB，内网可以直接访问文件。但是对于我在外面需要访问文件的情况，显然Filebrowser更合适。这个软件我之前就在用了，个人感觉非常好用，可以实时同步文件目录的更改，更改也是实时的，不依赖数据库，很适合储存目录经常变动的情况。而其他方案，例如cloudreve，nextcloud这种，如果文件目录被更改，在他们的目录是看不到更改的，这也就造成了很多不方便。而下面要玩的nextcloud，主要是照片同步备份目的，主要的日常文件我还是使用Filebrowser管理。开始玩转nextcloud搞照片同步由于我的个人数据，照片占的比例还是不小的，于是我希望搞一个全家一起用的照片备份方案，我选择了nextcloud。原因很简单，有App支持照片备份，支撑iOS系统，开源，免费。虽然第一次搞这个，我不会搞，是叫网友帮忙配置，但是还是学到了很多。就从那以后的照片，我都是放到nextcloud管理了，自动同步照片的功能确实很好用。美中不足的是，nextcloud性能消耗比较大，尤其是内存，PHP进程会占用上5GB+，也够逆天了。玩转QQBotQQ机器人其实2022年我就开始玩了，我记得是看了B站一个视频入坑的，第一次弄还不熟悉，看着视频不停的暂停，做一步看一步，现在搞这些操作好多都已经行云流水了。那时候感觉还是挺好弄的，GOCQhttp扫码直接就能登号对接了。后面QQ搞了一波消息签名，QQ机器人接口死一大片，好像那时候耐活王版本的GOCQ是8.9.33。后面我被下线后，听别人的说法，用了dev版的GOCQHTTP，一次登上。过了一段时间后，听他们说不能下线，一旦下线就登不回来了。那时候一直苟延残喘登着，不敢下线，好像是8.9.63版本的GOCQhttp配合签名，那时候其他群里面的bot陆陆续续都挂壁了，我的一直在。这下我的QQ机器人是耐封王了。不过好景不长，三月份的时候，被下线了，再也登不回去了。然后我就开始搞了ICQQ用来对接ZeroBot-Plugin，这个ICQQ是集成在云崽这个机器人上面的，需要用插件引出OneBot接口。后面登上去，刚开始那几个月以各种奇葩理由下线了一两次，后面到写这篇总结为止，没有下线过。感觉那个QQBot还挺好玩的，也算变成了我群里面的吉祥物了，一天到晚群友就在那里：签到抽签娶群友抽塔罗牌抽老婆23333免费tk域名寄了之前在2022年10月份，我在一个我认识的网友帮助下成功注册了tk域名：chocola690.tk，并且在2023年10月份成功续期。但是，万万没想到的是，在今年二月份，突然解析全掉。我一开始怀疑是不是配置问题，结果发现是域名被收回了。。。一开始我是转向免费的eu.org域名，但是还是感觉不爽，于是学会了买域名，并且购买了域名用来自己使用。果然印证了别人说的，免费的才是最贵的不过好在我没拿这个域名开网站，不然那就真有损失了。个人网站起航因为买下了miku39.win域名，我寻思着还能拿来干什么。大概在今年三月份，我突发奇想，反正都有LAMP环境了，为什么不尝试搭建个博客玩玩呢？于是，我就想在我家里面的家里云搭建wordpress，但是很快就被我一个网友劝住了。虽然wordpress主题众多，插件众多，但是它资源消耗比较大，对于简单的个人博客，有更好的替代，那就是现在我在用的Typecho。刚搭建好的那段时间，我几乎是有空就去折腾主题，前前后后试了好多个主题，最终还是觉得Bhao姐姐的主题好看。然后就对她的主题进行爆改，用上了。可以看看这篇文章：美化结束！我的小破站弄好了！后面逐渐感觉个人博客更有意思，这是一个属于你自己的个人空间，和其他平台的账号体验是完全不同了，于是我就更倾向于在我的个人网站更新我的内容。毕竟，你在其他平台积攒的人气，当平台变质了，你带不走，只能被平台喂屎吃，体验极差。啊？什么？说的就是你！BiliBili！这个网站我是打算一直开下去的了，就算后面真没时间更新了，我也会至少保持网站在线。盘下NEKOPARA.UK!如果之前关注过我B站的话，大概知道我厨什么：初音未来，镜音双子，洛天依，巧克力和香子兰。当然，对于洛天依这个傻逼，我已经在2022年粉转黑了。理由很简单，恰烂钱，变质，政治搅屎棍，最主要的一点就是最后一点，因为我对这些方面很反感，算是我的底线。所以现在我是见到洛天依就想黑两把，因为她曾经是我最喜欢的角色，但是现在感觉我被她背刺，让人非常不愉快。厨Nekopara那是2022年的事情。在厨之前，就对猫娘乐园这个大名有所耳闻。后面确实感觉巧克力和香草很可爱，看到steam的好友列表有人有nekopara的个人资料背景装饰，很好看，于是自己想要。看到说要求要有《NEKOPARA Vol.4》，正好看到NEKOPARA全系列打折，就买了vol4。然后顺理成章用点数买了资料卡，换上了，很喜欢。后面，感觉买都买了，为什么不玩一下？于是就点开了游戏。感觉剧情轻松愉快，猫娘也很可爱，故事也不错，主要是还能摸！摸了是有反应的，live2D效果做的真的好！虽然后面也玩过《千恋*万花》，但是还是觉得《NEKOPARA》有意思。至此，我最喜欢的角色就变成了巧克力，直到现在都是。所以，你应该可以理解为什么之前的免费tk域名是chocola690.tk了吧。后面我也想过注册一个NEKOPARA相关的域名，也就是NEKOPARA.XXX之前买域名都是挑便宜的买，当时看到Cloudflare上面最便宜的域名就是.win域名，但是可惜的是，nekopara.win被注册了。偶然的机会，我发现嘤国国家域名.uk也很便宜，于是就查了一下nekopara.uk一查，好家伙！可以注册！于是毫不犹豫买下了，并且做好了长期运营的打算。目前这个域名已经续费到2027年了，miku39.win这个域名我不打算续费了，留给有缘人吧。白嫖华为云你敢信，我云服务器到期时间比我域名还久！在白嫖大王，VPS灵车老司机的带领下，我累计白嫖了华为1.6K的代金券，并且用来购买最低配的云服务器，换取最长的使用时长，因为一开始我对这个云服务器的想法是用来做流量转发。不得不说，华为真大方，用坑脑残花粉的钱，补贴我们这帮臭玩云服务器的。以后少骂点华为吧。。。博客上云由于我感觉这个云服务器单做流量转发太过于浪费，并且在博客运行期间，家里云重大事故出现了三次，导致网站掉线。虽然我家里云对于在线率要求不是很高，主要是我需要用的时候别出岔子就行，但是对于网站这种，随时都可能有人访问的服务，在线率还是很重要的。由于我感觉在线率对于这个网站而言越来越重要，并且本身Typecho占用很少，再加上网站目录文件夹也不到10GB。虽然说那个华为云是最低配的CPU双核 0.5G内存 20G硬盘的配置，但是，搭配上Alpine Linux，装完系统后，占用只有100多M的硬盘空间，50MB的内存。可以说把绝大部分的资源都让出来给应用了。于是，在我尝试过迁移上去没问题，并且优化过后可以抗并发压力测试后，正式把博客解析切到了华为云，迁移上云了。详情：优化Nginx+PHP+MariaDB并发访问占用问题其实还要感谢某个群友，让我帮他迁移博客，获得了实战经验，然后应用在了我自己的博客上面。个人日常生活方面其实可以说我是一个没什么实际日常生活的人，对于我而言，最大的娱乐，不是搞服务器，搞网站，搞电脑，搞编程，就是打游戏，看番。真正那种普通人定义的日常生活的活动，我真没多少。如果真要说，也有一点吧。寒假接近尾声的时候，去了同学家如果只是同城的初中高中同学，去他们家玩的话，那肯定不会写出来。因为这次去，我是去了完全不同城市的大学同学的家，玩了接近一个星期，很开心。起因就是之前他经常说有空可以去他家玩一下，后面寒假后半段，我觉得宅在家实在是无聊，于是就突发奇想问了问他这个星期方不方便我去找他玩，得到了肯定的回复后，我就开始了这场说走就走的旅行。由于他家在博白，我家在钦州，没有动车可以到，唯一的方法是，坐班车去到浦北，然后再坐班车去博白。这班车一坐就是差不多六个小时，十分煎熬，全程是走二级公路，车速比较慢，感觉不知道多久都到不了目的地。我是早上十点左右坐上班车，到博白的时候已经是五点多了。后面那几天，我和我同学去尝试了当地各种不同的夜市美食，去他朋友家撸猫，这还是我第一次撸猫，还去看了一些比较有意思的建筑毕竟我就是学建筑学专业的，没想到吧，会这么多计算机技术的我，居然是建筑图狗，哈哈哈，草！。不得不说，博白的美食确实挺出名的，去那里吃的也非常棒。后面甚至另一个同学也一起来吃完饭，只能说非常巧，我那两个同学，家长本来就是认识的，而且很熟，听说我过来博白玩，就一起过来吃晚饭了。除此之外，当然少不了技术方面了，我帮他给N100小主机装了linux系统用来跑服务，并且手把手教他使用。后面还让他打电话给家里面的光猫改成桥接更好的连路由器，可惜的是，他家没公网，虽然有IPV6，但是封80，443端口，电信是这样的。在他家的时候，带了电脑一起玩CSGO，只能说电信玩不了国际服游戏，卡出翔了都。我家的宽带是联通的，延迟只有三四十这样，非常流畅，而且我家还有公网，简直不要太爽。后面玩够了，回来了，本来之前说过就是单纯想过来玩玩，但是回来的时候还是被我同学的家长强行塞了红包和礼品带回来，搞得我怪不好意思的。后面开学之后，我直接买了一个fufu送给我同学作为谢礼。朋友送了四糸奈手办和我认识时间最长的大学同学（其实不算是同学，因为和我都不是同一级的），送了我一个四糸奈手办，作为生日礼物。为什么是四糸奈呢，因为前段时间我补番看了约会大作战，觉得四糸奈挺好看的，我现在手办里面，初音未来已经有好多个了，巧克力也有了，雷姆也有，是时候增加一点新角色了。和朋友一起去过生日今年过生日的时候，我没有拉上舍友去庆祝，而是和我玩的最好的朋友一起去吃了自助餐。只能说，偶尔奢侈一顿还是可以的，好像一个人八九十吧，反正我就狂炫牛排，狂选三文鱼。后面他还送了我一个熊猫头罩，但是后面我给fufu戴上了。出掉Tesla P4计算卡之前这个卡是在淘宝315包邮买的，后面居然在咸鱼550卖掉了，也是逆天！本来我想买来玩vGPU的，或者GPU直通，后面搞不明白就没在搞了，留在机架式里面浪费电。于是我就挂了咸鱼，本来都没打算能卖出去，结果真有人买了，逆天！三月三和朋友转了一下三月三的时候，我和我的朋友到南宁周边的景区转了一下，去了武鸣区看看。我们去看了一下明秀圆和伊岭岩，感觉还行。在伊岭岩的入口处，看到向上的坡道和一侧的木架小屋，我总感觉似曾相识，好像我之前来过。进入到洞口入口，我更加感觉我应该是来过，但是不知道是什么时候，就是感觉很熟悉。后来回来的时候翻了翻NAS的文件，发现确实是来过，是我小学的时候来的，难怪我这么说有点似曾相识的感觉。劳动节赶图，这下真劳动节了今年的五一劳动节，因为收假后马上要交图，而我的课程设计还没有最终完成，劳动节这五天，四天半在家里疯狂赶图。是什么工作状态呢？带游戏本在家里画CAD，排图。教室的机架式不关机，在家里弄好了Blender的3D场景，就传到机架式服务器进行效果图渲染。那时候我还没买RTX2080Ti，显卡是RX580，完全就是靠CPU嗯造渲染。双路E5 CPU还是很给力的，就是渲染时间比较久。一些比较复杂的场景，我干脆就是，睡觉之前，远程控制机架式服务器开始渲染任务，第二天起来查看结果。就这样连续干了四天半，终于是把设计做完了顺利交图。以及快累死了。学校东校园被水淹了这也是广西某211日常了，东体育场都成游泳池了。建筑物理的压力2024年大三下学习，压力和恐惧感最大的课程，就是建筑物理！太抽象了，书厚厚的一本，上课是双语课，老师课件就是把书上的内容搬上去，翻译成英文，照着PPT念书。基本没有实际操作，或者其他不一样的教学内容和方法，感觉就跟人机一样。计算题也不细讲，全靠自己自学，给我整无语了。期末考试还是英文试卷，听说前几届，挂科率高达一半，考试不及格占三分之二！我只能说，这是我上大学以来给我压迫感最大的一门课。临近考试的那一个月，我几乎天天窝在图书馆，用电脑手打文档整理知识点，把那些书上的计算题全部搞懂，按照要考100分的标准来复习，没日没夜的看书，背书，推演一遍又一遍书上的计算例题。最后考试，虽然没有能做到得心应手，但是至少不是抓狂，考的范围很大，甚至有一些东西，因为记得太多有点模糊，只能凭印象去写出来了。好在计算题部分是轻松秒杀了。后面考完试，一直提心吊胆的等成绩，期间改完卷后，助教说太惨了，一大堆二三十分的，甚至有十几分，零分的。这条消息把我吓个半死。好像是过了40多分就有机会捞及格，但是据说我们这次考试，卷面成绩能及格的，也就四分之一不到。后面成绩出来了，我考了60多分，然后平时给打了80多，综评70多，还行吧，只能说。虽然我大学课程，成绩最低的不是专业课，而是各种奇葩政治课，因为我真看不下去，很多东西看了我感觉反胃。程阳八寨测绘由于专业的特性，我们要学古建筑，还要学建筑测绘。于是在学期的后半部分，本来是小学期，后面合并到两个大学期，学期的总时长还是不变的。。。这搞了个寂寞。。我们就去了三江的程阳八寨进行古建筑测绘。个人体验下来感觉还好，感觉就是半玩半学，也相当于去程阳八寨简单旅游了。我没有带我的游戏本，带了我的轻薄本，对，就是那个NEC的触屏轻薄本：Intel Core i5-5200U4GB DDR3 1600MHz256GB SSD这个配置，用来blender建模，画CAD。其实还好，不算卡，主要是想带着电脑在鼓楼里面看着建模，轻薄本带过去比较方便，续航比较长。还得是Windows 8.1的极致优化，不然这个配置的电脑估计很难做的了这些事情。后面因为建模出图比较细致，还被老师当作是模范作业，让其他同学学习。虽然说感觉工作量也挺大的，还摊上了班里面两个比较摆的女同学，不过好在她们还算是听我安排，合力完成了作业，后面这门课打分也挺高的，90多分。假期因为比赛原因留在学校大半个假期当时感觉真不应该脚踏多条船，搞了两个比赛，时间还是重叠的，快把我累死。花时间最多的那个比赛甚至连奖都拿不到，反倒是花时间比较少的那个技能类的比赛，拿到了奖。因为那个时间最多的比赛，导致我今年的数据几乎没有假期体验，因为搞完后假期时间没了一半，而且奇葩的是，寒假比暑假要长。所以，算是我度过最短的暑假。我本来想像寒假那样把机架式服务器拉回家玩的，不过考虑到后面还要花一周去西安玩，就把机架式留在学校了，然后一直开机不关机，反正不用我交电费是吧＼(^▽^)／！西安之旅只能说，这是一次久违的远行。自从玩上了高中，我就没有出过远门。然后因为大学前半段时间疫情封控，导致连回趟家都胆战心惊。后面2023年放开了（这要感谢伟大的历史创造者——人民群众），本来想去玩的，后面家里面有别的事情就没去。2024年的寒假，终于如愿以偿。为什么选择是西安呢？原因有以下几点：我大二下学中国建筑史的时候，就开始对古建筑感兴趣了，而西安那边，这方面的的历史建筑文化还是很不错的。西安是十三朝古都，历史文化遗产非常多，文物非常多。西安可以玩的地方也非常多，还可以去周边的华山玩。后面就和家里面一起去了，玩了一个星期，感觉还是挺不错的。城市夜景很不错。去博物馆参观文物，看都看不完。寺庙啥的也挺多的，进去看很多都是原汁原味的唐代风格建筑，虽然也有修缮后的，风格更偏向于明清时期，但是不影响大体。第一次去了三山五岳中的华山，有一说一，真的很震撼，景观非常棒。之前看语文书上面的那些山水画，我还以为是假的，因为广西这边的山不长这样，但是真去了华山之后，才知道，这是真实的。去看来长恨歌演出，确实很好看，现场观感非常棒。只是可惜我认识的网友不再西安，不然就去面基了。购入RTX2080Ti今年暑假，我以1549包邮的价格，买下来了一张哥布林RTX2080Ti。因为我没有电脑可以测试，于是就借显卡给我朋友帮我测试，好在没翻车。具体的情况可以去看看我发的文章。RTX2080Ti使用体验买了一张RTX4090手办卡偶然的机会，我突然发现RTX4090手办卡才80块钱，加上运费到手价100左右，感觉非常有意思，于是就买了一张玩，打算送给朋友作为整活礼物。这种手办RTX4090，外观几乎就是新卡，但是被拆了显存和核心，其他的东西，都在。说白了看起来就是箱说全的新显卡。后面送我朋友的时候，他看到盒子，一开始开玩笑我送他显卡盒子，后面我让他打开看看，一看，傻眼了，愣了半天说你真送啊。233333后面跟他说明情况后他收下了，不然都不敢收，觉得太贵重了。国庆去见了见三年多没见过的同学国庆的时候，感觉宅在家也没什么意思，于是就找我的高中同学去玩了一下，因为是不同的城市，他家在防城，我家在钦州，我和他因为都比较忙，所以三年多没有见过面。后面国庆期间我抽了一天时间专门去跟他玩一下。虽然说确实出去转转也没什么好看的，但是主要目的还是和朋友聊天散心，还是挺不错的。今年玩了三个新游戏今年体验了三个新游戏：《最后生还者》《黑神话悟空》《对马岛之魂》《最后生还者》就不用说了，很出名的游戏，当时初中的时候我就想玩了，可惜那时候是PlayStation平台独占，要PS3或者PS4才能玩。后面这个游戏登陆PC了，我就借我朋友的号通关完成了，确实很不错。而对于《黑神话悟空》，我个人感觉不是很好玩，甚至可以说是体验操蛋。难度高，指引性差，没有地图，没有难度选项。这些槽点中，难度过于离谱是阻挡我玩这个游戏的最大拦路虎。不给玩家一个选择是让我最不爽的，于是我毫不犹豫给这个游戏打了差评，就算你是所谓的国产之光，但是做得不好的地方，我作为玩家还是有权利提出批评的。《对马岛之魂》这个游戏，我一开始是不知道的，后面在网友给我共享了Steam游戏库后，并且说值得一玩，我打算尝试一下。虽然默认是英语配音，但是考虑到这个游戏故事设定是在日本，而且英文配音感觉有点怪怪的，没内味，我就开了日语配音，顿时感觉对味了。游戏还是挺好玩的，至少我感觉比黑神话好玩多了。虽然两个游戏细节打磨都不太到位，但是我感觉从可玩性角度而言，对马岛之魂比黑神话悟空好玩多了。应该寒假会慢慢把对马岛之魂通关吧。平陆运河建设，钦州变化挺大的今年年初还在搭建保通桥，年末以及把之前的一桥，二桥，三桥，四桥全拆了。导致整个钦州，钦江东西边交通彻底瘫痪，一到高峰期堵得要死。有一说一，钦江两边变化真的非常大。很多我曾经熟悉的地方，都拆掉了。网易云音乐被无故封号大概在今年十一月份，我的网易云账号被频繁下线，我也不知道是怎么回事。因为我用网易云只是听歌，也从来不发表任何评论，但是就是这样还是被封了。理由是：播放数据异常。好家伙，真就你说什么就是什么啰？口袋罪，随便编一个理由就给你封号了，不愧是你国互联网公司。我已经对国内互联网感觉是无可救药了，没想到网易还能整大活。反正我打算放寒假就开始自建媒体库了，也不惯着你，直接把我账号喜欢音乐列表扒下来，自己去下载音乐整理。目前打算应该是用Jellyfin进行媒体管理。网易云你这个死妈东西!个人对2024年大环境的看法首先，说明一下，这是我的个人观点，请批判性看待，主观性较强，仅供参考。总的来说，我感觉是，明白人越来越多了，敢于反抗不公的人也变多了。但是，各种爱国绑架，脑残小粉红的数量也在变多，互相之间的对立也越来越严重。而且，我也感觉到了民粹主义，极端民族主义开始浮现，各种平台，脑残排外评论，爱国绑架评论层出不穷。甚至出现了什么抵制洋节？不是，哥们，本来世界全球化，文化就应该相互交流，相互包容。你中国文化传播到世界，外国人搞春节活动，你自豪的说是文化输出。而当是别人的文化，在国内传播，有一些人庆祝圣诞节，搞活动，你就说是文化入侵了？真会双标啊！反正对于这种人，我一律当成傻逼看待。各大平台相比于前几年，个人感觉是越来越烂了。平台的控制欲越来越严重，就B站而言，我发条动态都隔着卡审核，半天通不过。最过分的是，他不会提示你发的动态卡审核，而是显示正常，但是这条动态只有你自己可见。你就说贱不贱？各种平台也都根据自己的意愿操纵内容，让用户看到他们想让用户看到的，推荐那些他们认为应该推荐的内容。对于这种做法，我只能说恶心，这也是为什么我最终决定搞个人博客的原因，至少我可以发表我合理的意见和看法。同时，作为这个时代的青年，还是要做到心系社会的，我也通过网络的另一面，了解到了一些不太搬得上台面的某些底层人民的处境。只能说，对于某些社会事件，我觉得这些事情能发生，肯定是有道理的。对新的一年的展望我觉得也没什么好展望的吧，也没什么特别的想法。其实我感觉我的热情已经被高中高三一年折磨的差不多没了，再加上大学期间的一大堆屁事，哎，已经没什么想法了。那就来点符合实际的展望或者说是愿望吧:希望2025年可以成功保研。希望2025年学习顺顺利利，生活也顺顺利利。希望我未来还能有热情，有时间，去做我想做的事情。虽然我是一个社交废物，但是还是希望新的一年，能遇到真正的朋友。就这样吧。
Filebroswer的优点为什么选择Filebroswer呢？原因不外乎就是以下几点∶支持https实时同步文件目录更改，更新及时不需要数据库界面美观友好管理方便支持多用户支持分享文件可以定制界面而最后这一点，也为后面进行美化奠定了基础。前置准备为了保证操作的环境相同，如果你是按照这篇教程来，记得选择File Browser 2.28.0。FileBrowser的基本配置，可以参考我之前的文章：个性化Filebrowser界面，NAS也要Kawaii~~~!个性化Filebrowser你可以快速把我预设的文件下载后直接解压到Filebrowser所在文件夹，修改替换背景图，完成个性化。文件目录结构长这样：├── filebrowser ├── filebrowser.db └── style ├── custom.css ├── favicon.ico ├── img │ ├── background.jpg │ ├── icons │ │ ├── android-chrome-192x192.png │ │ ├── android-chrome-512x512.png │ │ ├── apple-touch-icon.png │ │ ├── browserconfig.xml │ │ ├── favicon-16x16.png │ │ ├── favicon-32x32.png │ │ ├── mstile-144x144.png │ │ ├── mstile-150x150.png │ │ ├── mstile-310x150.png │ │ ├── mstile-310x310.png │ │ ├── mstile-70x70.png │ │ └── safari-pinned-tab.svg │ ├── login.jpg │ ├── logo.svg │ └── lolicon.ttf └── manifest.json 4 directories, 21 files其中，最重要的配置文件就是custom.css了。这个文件决定了全局的外观。style文件夹我已经打包好了：style.7z下载回去，解压到程序的目录按照下图设置即可看到效果：下面是设置完成后的效果，我设置的是粉色主题的，稍微搭配一点蓝色：登陆页面：主界面：多选文件：复制文件对话框：移动文件对话框：删除文件对话框：切换不同的显示方式：下载文件对话框：上传文件对话框：文件信息对话框：搜索界面：设置界面：上传文件界面：CSS文件内容和解释custom.css文件内容这个文件定义了几乎全部的样式，文件内容如下： /** 页面字体 */ @font-face { font-family: 'cute'; src: local('cute'), local('cute'), url(/static/img/lolicon.ttf) format('truetype'); } * { font-family: "cute", sans-serif; } /** 加载动画 */ .spinner > div { background-color: #ff5f77; backdrop-filter: blur(6px); background-color: orangered\0; /* IE 样式 */ } /** 普通文字、字体图标颜色 */ .action, #listing h2, #search .boxes h3, .card h3, .collapsible > label *, .dashboard p label, .message { color: #ff5f77; } /** 链接文字颜色 */ a { color: #ff5f77; backdrop-filter: blur(6px); } /** 输入框、表格标题文字颜色 */ #search.active i, #search.active input, table th { backdrop-filter: blur(6px); color: #ff5f77; } /** 主体、弹窗颜色 */ #loading, #login, #search.active #input, body, header, .ace-chrome .ace_gutter-active-line { background-image: url(/static/img/background.jpg); background-repeat: no-repeat; background-attachment: fixed; background-position: center center; background-attachment: fixed; background-size: cover; color: #ff5f77 ; } /** 文件夹颜色 */ .file-icons [data-dir="true"] i { color: #ff5f77; } /** 搜索界面图标颜色 */ #search .boxes > div > div { background: #ff5f77; color: rgb(255, 255, 255); text-align: center; width: 10em; padding: 1em; cursor: pointer; margin-bottom: 1em; margin-right: 1em; -moz-box-flex: 1; flex-grow: 1; } /** 多选状态栏颜色 */ #listing #multiple-selection { position: fixed; bottom: -4em; left: 0px; z-index: 99999; width: 100%; background-color: #ff5f77a1; height: 4em; padding: 0.5em 0.5em 0.5em 1em; -moz-box-pack: justify; justify-content: space-between; transition: bottom 0.2s; } /** 多选项目颜色 */ #listing .item[aria-selected="true"] { background: #66ccffc4 !important; color: var(--item-selected) !important; } /* 设置容量显示条颜色 */ .vue-simple-progress { background: #66ccff !important; } /* 设置容量显示条颜色 */ .vue-simple-progress-bar { background: #ff6781 !important; } /* 设置选项卡颜色 */ .dashboard #nav ul li.active { border-color: #CD1076; color: #CD1076; } /** 定义卡片 */ .card{ border-radius: 2em; border: 1px solid #ff6781; background-color:transparent; backdrop-filter: blur(6px); color: #CD1076 ; } /** 定义卡片按钮 */ .button { outline: 0px; padding: 0.5em 1em; border-radius: 0.1em; cursor: pointer; background:#ff5f77; color: rgb(255, 255, 255); border: 1px solid rgba(0, 0, 0, 0.05); box-shadow: rgba(0, 0, 0, 0.05) 0px 0px 5px; transition: 0.1s; } /** 定义卡片按钮 */ .button--flat { color: #e93654; background: transparent; -webkit-box-shadow: 0 0 0; box-shadow: 0 0; border: 0; text-transform: uppercase; } /** 定义容量显示下面的小字颜色 */ .credits { font-size: 0.6em; margin: 3em 2.5em; color: #e56c81; } /** 取消变暗覆盖 */ .overlay { background-color: rgba(0, 0, 0, 0); position: fixed; top: 0px; left: 0px; height: 100%; width: 100%; z-index: 9999; visibility: hidden; opacity: 0; animation: 0.1s forwards show; } /** 定义搜索区 */ #search .boxes{ background-color:transparent; backdrop-filter: blur(6px); color: #CD1076 ; } /** 定义搜索框 */ #search input { border-radius: 2em; padding: .5em 1em; background: #fff5f6b8; border: 2px solid #ffd5dc; -webkit-transition: .2s ease all; transition: .2s ease all; color: #ff5474; margin: 3; } /** 搜索页面、列表标题样式 */ #search #input, #search #result, .input, #listing.list .item.header, .ace-chrome .ace_gutter, .share__box__download, .file-list li:hover { background-color:transparent; backdrop-filter: blur(6px); color: #CD1076 ; } /** 列表项目、文本编辑、命令行、文件分享样式 */ #listing .item, .ace-chrome, .shell, .share__box { background-color:transparent; backdrop-filter: blur(6px); color: #CD1076; } /** 加载页面、登录页面信息提示 */ #loading::after, #login::after { position: absolute; bottom: 6px; width: 100%; display: block; font-size: 22px; text-align: center; content: ''; color: #FF1493; /* IE 样式 */ bottom: 30px\0; font-size: 36px\0; color: tomato\0; } /** 登录页面背景图 */ #login { background-image: url(/static/img/login.jpg); } /** 登录页面LOGO大小 */ #login img { width: 8em; height: 8em; } /** 登录页面按钮定义 */ #login .button { outline: 0; border: 0; padding: .5em 1em; border-radius: 2em; cursor: pointer; background: #ff6781; color: #fff; border: 2px solid #ffd5dc; -webkit-box-shadow: 0 0 5px rgba(0,0,0,.05); box-shadow: 0 0 5px rgba(0,0,0,.05); -webkit-transition: .1s ease all; transition: .1s ease all; } /** 定义输入框 */ .input { border-radius: 2em; padding: .5em 1em; background: #fff5f6b8; border: 2px solid #ffd5dc; -webkit-transition: .2s ease all; transition: .2s ease all; color: #ff5474; margin: 3; } /** 定义登陆界面提示框 */ #login .wrong { border-radius: 2em; background: #ff5474; color: #fff; padding: .5em; text-align: center; -webkit-animation: .2s opac forwards; animation: .2s opac forwards; }文件每个功能区块有注释解释，可以根据需要修改，下面是详细说明。每个部分的详细说明页面字体定义了一个名为 'cute' 的自定义字体，并应用于整个页面。/** 页面字体 */ @font-face { font-family: 'cute'; src: local('cute'), url(/static/img/lolicon.ttf) format('truetype'); } * { font-family: "cute", sans-serif; }加载动画为加载动画中的元素设置了背景颜色和模糊效果。特别地，为了兼容IE浏览器，添加了额外的样式。/** 加载动画 */ .spinner > div { background-color: #ff5f77; backdrop-filter: blur(6px); background-color: orangered\0; /* IE 样式 */ }文字颜色为普通文字、链接文字、输入框及表格标题文字设置了统一的颜色。/** 普通文字、字体图标颜色 */ .action, #listing h2, #search .boxes h3, .card h3, .collapsible > label *, .dashboard p label, .message { color: #ff5f77; } /** 链接文字颜色 */ a { color: #ff5f77; backdrop-filter: blur(6px); } /** 输入框、表格标题文字颜色 */ #search.active i, #search.active input, table th { backdrop-filter: blur(6px); color: #ff5f77; }主体、弹窗颜色为页面主体、弹出窗口等设置了背景图片和文本颜色。/** 主体、弹窗颜色 */ #loading, #login, #search.active #input, body, header, .ace-chrome .ace_gutter-active-line { background-image: url(/static/img/background.jpg); background-repeat: no-repeat; background-attachment: fixed; background-position: center center; background-size: cover; color: #ff5f77; }文件夹颜色、搜索界面图标颜色、多选状态栏颜色、多选项目颜色这些规则为特定元素设置了颜色。/** 文件夹颜色 */ .file-icons [data-dir="true"] i { color: #ff5f77; } /** 搜索界面图标颜色 */ #search .boxes > div > div { background: #ff5f77; color: rgb(255, 255, 255); text-align: center; width: 10em; padding: 1em; cursor: pointer; margin-bottom: 1em; margin-right: 1em; flex-grow: 1; } /** 多选状态栏颜色 */ #listing #multiple-selection { position: fixed; bottom: -4em; left: 0px; z-index: 99999; width: 100%; background-color: rgba(255, 85, 119, 0.63); height: 4em; padding: 0.5em; justify-content: space-between; transition: bottom 0.2s; } /** 多选项目颜色 */ #listing .item[aria-selected="true"] { background: rgba(102, 204, 255, 0.77); color: var(--item-selected) !important; }容量显示条颜色、选项卡颜色、卡片定义、按钮定义、登录界面样式这些规则为UI组件如进度条、选项卡、卡片、按钮以及登录界面定义了样式。/* 设置容量显示条颜色 */ .vue-simple-progress { background: #66ccff !important; } .vue-simple-progress-bar { background: #ff6781 !important; } /* 设置选项卡颜色 */ .dashboard #nav ul li.active { border-color: #CD1076; color: #CD1076; } /** 定义卡片 */ .card{ border-radius: 2em; border: 1px solid #ff6781; background-color:transparent; backdrop-filter: blur(6px); color: #CD1076 ; } /** 定义卡片按钮 */ .button { outline: 0px; padding: 0.5em 1em; border-radius: 0.1em; cursor: pointer; background:#ff5f77; color: rgb(255, 255, 255); border: 1px solid rgba(0, 0, 0, 0.05); box-shadow: rgba(0, 0, 0, 0.05) 0px 0px 5px; transition: 0.1s; } .button--flat { color: #e93654; background: transparent; box-shadow: 0 0; border: 0; text-transform: uppercase; } .credits { font-size: 0.6em; margin: 3em 2.5em; color: #e56c81; } /** 取消变暗覆盖 */ .overlay { background-color: rgba(0, 0, 0, 0); position: fixed; top: 0px; left: 0px; height: 100%; width: 100%; z-index: 9999; visibility: hidden; opacity: 0; animation: 0.1s forwards show; } /** 登录页面样式 */ #login { background-image: url(/static/img/login.jpg); img { width: 8em; height: 8em; } .button { outline: 0; border: 0; padding: .5em 1em; border-radius: 2em; cursor: pointer; background: #ff6781; color: #fff; border: 2px solid #ffd5dc; box-shadow: 0 0 5px rgba(0,0,0,.05); transition: .1s ease all; } .wrong { border-radius: 2em; background: #ff5474; color: #fff; padding: .5em; text-align: center; animation: .2s opac forwards; } }
为Cuckoo主题更换评论头像源，并设置默认头像
偶然发现Cravatar抽风了这段时间，偶然发现，似乎Cravatar，抽风了，就算填写QQ号+@qq.com的形式邮箱的评论。也没办法正常获取头像了。于是我怀疑应该是这玩意出问题了，就在网上去找替代品。发现WeAvatar在看来那些推荐头像源的博客，发现大部分推荐的都是Cravatar。但是在偶然一篇文章的评论区，有人留言WeAvatar也不错，试试吧。这个服务似乎是一个个人博主做的，这是他博客的相关内容，有兴趣可以去看看：https://hzbk.net/archives/121072.html本教程的参考资料来源就来源于他的博客和文档。开始使用WeAvatar和大部分类似的镜像源一样，都是和Gravatar的用法是一样的。那就是：URL+邮箱哈希值https://weavatar.com/avatar/（目标邮箱哈希值）除此之外，还有一点是我觉得很赞的，那就是这个头像源可以自定义默认头像！你需要的，只是你默认头像的URL。组合形式就是如下这样：https://weavatar.com/avatar/（目标邮箱哈希值）?s=100&d=你默认头像的URL例如：https://weavatar.com/avatar/ab19c18dc265207b197f1080b493241a?s=100&d=https://teachermate.oss-cn-qingdao.aliyuncs.com/gSTpX-1734422434828-defualt_avatar.png像这样，如果匹配不到头像的话，就会自动返回后面自定义链接的头像。了解了基本的使用方法后，我们来把他装进Cuckoo主题。Cuckoo主题设置WeAvatar如果你只是简单的想要替换原来不正常的头像源，在主题的更多设置，Gravatar头像源里面，设置自定义并添上https://weavatar.com/avatar即可。但是，如果你希望自定义默认头像的话，很明显，这样是没办法完成的，我们需要对主题的文件进行修改。需要修改的文件是function.php，也就是主题根目录里面的那个文件。打开文件，定位到获取头像的函数：// 获取评论者头像 function get_comment_avatar($moe = NULL){ $gravatar = Helper::options()->gravatar; if($gravatar == 'geekzu'){ $host = 'https://sdn.geekzu.org/avatar/'; }elseif($gravatar == 'qiniu'){ $host = 'https://dn-qiniu-avatar.qbox.me/avatar'; }elseif($gravatar == 'cravatar'){ $host = 'https://cravatar.cn/avatar'; }elseif($gravatar == 'cdn'){ $host = Helper::options()->gravatarCdn; } $hash = md5(strtolower($moe)); $avatar = $host.'/'.$hash.'?s=100'; echo $avatar; }通过观察博客生成的头像URL链接，很明显，?s=100这个地方，就是我们需要更改的地方。下面就是修改后的代码：// 获取评论者头像 function get_comment_avatar($moe = NULL){ $gravatar = Helper::options()->gravatar; if($gravatar == 'geekzu'){ $host = 'https://sdn.geekzu.org/avatar/'; }elseif($gravatar == 'qiniu'){ $host = 'https://dn-qiniu-avatar.qbox.me/avatar'; }elseif($gravatar == 'cravatar'){ $host = 'https://cravatar.cn/avatar'; }elseif($gravatar == 'cdn'){ $host = Helper::options()->gravatarCdn; } $hash = md5(strtolower($moe)); $avatar = $host.'/'.$hash.'?s=100&d=https://teachermate.oss-cn-qingdao.aliyuncs.com/gSTpX-1734422434828-defualt_avatar.png'; echo $avatar; }我在后面加上了&d=https://teachermate.oss-cn-qingdao.aliyuncs.com/gSTpX-1734422434828-defualt_avatar.png，而https://teachermate.oss-cn-qingdao.aliyuncs.com/gSTpX-1734422434828-defualt_avatar.png就是头像的URL，不信你可以打开看看。更换完成后，刷新一下博客，嗯，一切正常了。默认头像被换成了凯露，毕竟接头霸王嘛，头安在谁身上都合适，那就给没有头像的人安上吧 XD为Typecho更换头像源另外，我还发现，Typecho后台也是没办法显示头像的，虽然访客看不到，但是我自己用还是有点不爽。按照那个博客的说法，添加define('__TYPECHO_GRAVATAR_PREFIX__', 'https://weavatar.com/avatar/');到站点根目录的config.inc.php中，轻松秒杀。
前言之前尝试过高并发压力测试自己的网站，发现打到128并发基本上就趴窝了。后面与友链的一个站长交流，得知可以通过缓存的方式解决这种高并发处理问题。因为如果不设置缓存的话，即使是同样的请求，也会让php进行反复处理，消耗大量资源。所以，我想尝试一下能不能改善一下这个情况。实验环境准备为了保证我网站能在我进行实验期间正常运行，我决定对我网站数据进行克隆，迁移到我云服务器里面性能最孱弱的那个进行测试。那就是，白嫖的华为云：母鸡CPU: Intel(R) Xeon(R) Gold 6348 (2) @ 2.60 GHz双核CPU512MB内存20G硬盘然后是软件环境，操作系统为Alpine Linux 3.20然后我按照前面我那片迁移博客的方法，把博客迁移了过去。原始表现迁移过程就进行省略了，和前面的博客方法大体相同。我测试下来，32并发就是这玩意的极限了，CPU彻底吃满。再往上加线程已经没有意义了，因为已经寄了。可以看出来，云服务器相比于实体鸡性能差别还是很大的。优化改用Unix Socket进行PHP对接首先是php对接的问题，默认Alpine使用的是TCP网络协议进行本地回环，开销较大。而使用Unix Socket则可以解决这个问题，他具有低延迟和资源占用少的优点。特征TCP 端口Unix Socket通信范围支持远程通信仅限于同一主机内的进程间通信性能较高开销，适合长距离通信更高效，尤其在本地通信中表现出色安全性需要额外的安全措施，如防火墙规则依赖于操作系统权限控制，天然更安全配置复杂度需要设置IP地址和端口号只需指定文件路径为了实现这个目标，我们需要对PHP的配置文件和Nginx的配置文件进行更改。1. 修改 PHP-FPM 配置文件首先，我们需要编辑 PHP-FPM 的池配置文件 /etc/php82/php-fpm.d/www.conf，将其 listen 设置更改为一个 Unix socket，并设置适当的权限。[www] ; 更改 listen 为 Unix socket listen = /var/run/php-fpm82/php8.2-fpm.sock ; 设置 socket 文件的所有者和组 listen.owner = nginx listen.group = nginx listen.mode = 0660确保 /var/run/php-fpm82/ 目录存在并且有正确的权限：sudo mkdir -p /var/run/php-fpm82/ sudo chown root:nginx /var/run/php-fpm82/ sudo chmod 755 /var/run/php-fpm82/2. 更新 Nginx 配置文件然后，编辑你的 Nginx 站点配置文件，例如 /etc/nginx/http.d/nekopara.conf，将 fastcgi_pass 指令更新为指向新的 Unix socket：location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/var/run/php-fpm82/php8.2-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }3. 重启服务保存所有更改后，重启 PHP-FPM 和 Nginx 服务以使新配置生效。# 重启 PHP-FPM rc-service php-fpm82 restart # 重新加载 Nginx rc-service nginx reload修改完成后，再进行测试，似乎没有太大改善，还是CPU爆炸。那就尝试一下设置缓存了。为Nginx配置缓存规则1. 定义 FastCGI 缓存区首先，在 Nginx 的主配置文件 /etc/nginx/nginx.conf 添加一个 fastcgi_cache_path 指令来定义缓存存储的位置和参数。http { # 其他配置... # 定义 FastCGI 缓存路径 fastcgi_cache_path /var/cache/nginx/fastcgi levels=1:2 keys_zone=my_fastcgi_cache:16m inactive=60m; # 定义缓存键，通常包含请求方法、主机名和 URI fastcgi_cache_key "$scheme$request_method$host$request_uri"; }在主配置文件加上以上这段即可。确保 /var/cache/nginx/ 目录存在并且有适当的权限：sudo mkdir -p /var/cache/nginx/fastcgi sudo chown nginx:nginx /var/cache/nginx/fastcgi sudo chmod 755 /var/cache/nginx/fastcgi2. 修改站点配置以启用 FastCGI 缓存接下来，在你的站点配置文件，例如 /etc/nginx/http.d/nekopara.conf 中修改处理 PHP 请求的 location ~ \.php$ 块，加入 FastCGI 缓存相关指令。以下是我的示例配置文件：server { listen 4443 ssl proxy_protocol; server_name www.nekopara.uk; #确保后端正确跳转而不带上端口号 set_real_ip_from 0.0.0.0; real_ip_header proxy_protocol; set $real_host $http_x_forwarded_host; if ($http_x_forwarded_host = '') { set $real_host $host; } # 添加这一行，确保生成的重定向不带后端端口 port_in_redirect off; # 设置最大上传文件大小为 8M client_max_body_size 8M; # SSL证书和密钥路径 ssl_certificate /data/certs/nekopara_uk.pem; ssl_certificate_key /data/certs/nekopara_uk.key; # SSL设置（可选但推荐用于安全） ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; # 网站根目录 root /data/typecho; index index.html index.php; # Serve static files directly location / { try_files $uri $uri/ /index.php?$args; autoindex off; } # PHP处理，并启用FastCGI缓存 location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/var/run/php-fpm82/php8.2-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; # 启用 FastCGI 缓存 fastcgi_cache my_fastcgi_cache; fastcgi_cache_valid 200 301 302 404 1m; # 设置缓存的有效时间 fastcgi_cache_methods GET HEAD; # 只缓存 GET 和 HEAD 请求 # 不缓存 POST 请求和其他非幂等性请求 set $skip_cache 0; if ($request_method = POST) { set $skip_cache 1; } if ($query_string != "") { set $skip_cache 1; } if ($http_cookie ~* "PHPSESSID|_sf|your-session-cookie") { # 如果存在特定会话 cookie，则不缓存 set $skip_cache 1; } fastcgi_cache_bypass $skip_cache; fastcgi_no_cache $skip_cache; # 添加头部信息显示缓存状态 #add_header X-FastCGI-Cache $upstream_cache_status; } # Deny access to hidden files location ~ /\.ht { deny all; } }3. 测试并应用配置保存所有更改后，测试 Nginx 配置文件是否正确：nginx -t如果一切正常，重新加载 Nginx 使新配置生效：rc-service nginx reload此时在进行并发压力测试，感觉就是在挠痒痒：即使上压力到256线程，也就那样：Nginx FastCGI 缓存配置参数解释1. fastcgi_cache_pathfastcgi_cache_path /var/cache/nginx/fastcgi levels=1:2 keys_zone=my_fastcgi_cache:16m inactive=60m;/var/cache/nginx/fastcgi：指定缓存文件存储的路径。levels=1:2：定义缓存目录结构为两级子目录，有助于分散文件，避免单个目录下文件过多导致性能问题。keys_zone=my_fastcgi_cache:16m：创建一个名为 my_fastcgi_cache 的共享内存区域，大小为 16MB。这个区域用于存储缓存键（key）和元数据（如过期时间）。16MB 可以存储大约 80,000 个缓存项。inactive=60m：设置缓存条目在多长时间内没有被访问就会被认为是不活跃的并从缓存中移除。这里设置为 60 分钟。2. fastcgi_cache_keyfastcgi_cache_key "$scheme$request_method$host$request_uri";这个指令定义了用来生成缓存键的变量组合。每个唯一的 URL 请求（包括协议、请求方法、主机名和 URI）都会生成一个唯一的缓存键，确保不同的请求不会互相干扰。3. fastcgi_cache_validfastcgi_cache_valid 200 301 302 404 1m;指定哪些 HTTP 状态码应该被缓存以及它们的有效期。例如，这里表示状态码 200 (OK)、301 (永久重定向) 和 302 (临时重定向) 404 (未找到页面) 的响应会被缓存 1 分钟。4. fastcgi_cache_methodsfastcgi_cache_methods GET HEAD;指定只缓存特定的 HTTP 请求方法，这里是 GET 和 HEAD 请求。POST 请求通常包含表单提交等操作，不应该被缓存。5. $skip_cache 和相关条件set $skip_cache 0; if ($request_method = POST) { set $skip_cache 1; } if ($query_string != "") { set $skip_cache 1; } if ($http_cookie ~* "PHPSESSID|_sf|your-session-cookie") { set $skip_cache 1; } fastcgi_cache_bypass $skip_cache; fastcgi_no_cache $skip_cache;$skip_cache：这是一个自定义变量，用于标记是否跳过缓存。初始值设为 0，意味着默认情况下启用缓存。条件判断：通过一系列 if 语句检查请求是否是 POST 请求、是否有查询字符串或者是否存在特定的会话 cookie。如果任意条件满足，则将 $skip_cache 设置为 1，即禁用缓存。fastcgi_cache_bypass 和 fastcgi_no_cache：这两个指令分别控制是否绕过缓存（即直接发送请求给后端）和是否不让缓存当前请求的结果。当 $skip_cache 为 1 时，两者都生效，确保动态或个性化内容不被缓存。6. add_header X-FastCGI-Cacheadd_header X-FastCGI-Cache $upstream_cache_status;向 HTTP 响应头添加 X-FastCGI-Cache 字段，显示缓存的状态（如 HIT, MISS 等），便于调试和监控。这部分是可以不要的。理解了这些缓存参数的意义，你就可以根据需要自己调节了。博客状态我发布这篇文章的时候，已经完成了这些优化并且把博客迁移上云了。毕竟白送的服务器，不用白不用。虽然云服务器隐私安全一直是一个问题，云服务器提供商能不能靠得住这点存疑。但是，如果只是博客这种，反正都是要公开的内容，上云又何尝不可？当然，家里云还是会保留的，毕竟它的主要任务是NAS，让我随时随地可以访问我的文件，博客之前只是想在上面顺带弄着玩的玩具。随着博客访问量逐渐大了起来，迁移上云给家里云减负何尝不是一个更好的选择？这个云服务器已经白嫖续费到2029年了，所以这个博客至少也能在上面运行差不多五年时间，已经比我购买的域名时间还长了。迁移吧！定期把内容备份到家里云就是了。PS:不知道你有没有注意到网站底部的服务器运行时间，从200多天变成了80多天？
今天考完了六级，因为之前两次都是差一分就过，之前都是裸考，这次六级我决定下点功夫去复习。买了题，练了听力。虽然不是很高强度练习，但是还是有认真准备。结果，真听听力，我直接爆炸。感觉心理素质不太行，越听越爆炸，后面好在稳住了，听完了，我感觉，应该可以对一半以上吧。阅读部分的话，选词填空果断放弃，全力攻克段落匹配和阅读理解，好在，都做出来了。最后十分钟写翻译主打一个刺激，前面还算有逻辑，后面感觉就是胡言乱语了（悲）希望能过吧。
前言感觉日子是越来越快了，这个学期感觉开学还是不久之前的事情，怎么就期末了呢？今天看了一天的书复习，有点累了，去吃饭的时候突然对一些事情灵光一闪有点感悟，在我的博客写点随笔吧。初识BiliBili道听途说我第一次听说这个平台是我初一的时候，有同学跟我说过关于武器A这个视频的故事，说这是B站的镇站之宝。当时只是有所耳闻，知道是个奇怪的视频，但并没有真的去看。具体是什么时候的事情我已经记不清了，大概是2015-2016年那段时间吧。现在看到这个年份，感觉既遥远又很近，遥远的是，这是差不多十年前了，很近的是，我2015年刚上初中那会的事情，现在还是记忆犹新，历历在目，好像只是不久之前的事情。偶然相遇后面真正接触到了，不是因为和动漫相关的原因，而是我希望去看空中浩劫这个纪录片。当时我因为第一次接触的电脑就已经被国内流氓软件洗礼过一次了，什么360，优酷，爱奇艺都是有的。我下意识就去优酷搜索，果然是有，但是画质并不好，而且还有水印。然后，我尝试在搜索引擎搜索，不得不说，那时候的搜索引擎挺干净的，没有现在这么流氓，一搜全是推广和假页面。这一搜，突然发现了一个命名和其他网站不太一样的网站，并且整个网站洋溢着浓烈的二次元风味——BiliBili。我惊奇的发现，在上面看视频居然不需要下载应用，而且没有水印，画质非常清晰，还不用登陆！不过不登陆就不能和评论区互动罢了。我下意识感觉到，这个平台简直是国内视频平台的一股清流！第一次相见，是2017年时候的事情了。直到现在，《空中浩劫》仍然是我的每年必追“番剧”。踏入BiliBili注册账号后来，我因为想要和评论区的观众进行互动，决定注册账号。但是，注册完成后我傻眼了，基本上用不了，只有通过了答题才能开始使用。众所周知，那时候B站答题是最难的。于是，我凭着不多的电脑方面的知识，选了科技方向的答题，靠着自己所掌握的知识和搜索引擎，与B站答题斗智斗勇，最后勉强跨过及格线，进入了B站。有了账号，就可以和别人进行交流互动了，我到现在都感觉那时候的社区氛围是真的好，大部分人都很友善。而且，那时候上面的视频，过1万播放量，已经算是高的了。早期尝试投稿初次尝试投稿随着与别人互动的增加，我账号来到了二级，解锁了投稿功能，于是就开始随便录制一些视频投稿。那时候我都不会剪辑视频，就问网友，让他给我推荐一个录屏软件，录制一段游戏视频，然后直接投稿，不做任何剪辑。我还记得，我当时录制的视频是《腐烂国度》的最后一个关卡。因为电脑不太行，甚至视频到后面都音画不同步了，但是还是直接投稿了，不过没什么人看。第一次火起来的投稿后面也陆陆续续录了一些盗版GTA5联机的视频，当时用的是RAGE MP这个工具，感觉还是挺好玩的，可以开各种修改器叫车，就是没有NPC，服务器里面所有活动的东西都是玩家。玩家可以变成各种角色，因为这本质上就是靠修改器进行联机的，我最喜欢的就是变成黑猩猩，然后端着机枪和其他玩家干架，或者开车撞人。前面发的很多视频，都没什么人看，基本就200-300的播放量，没有或者只有一两个评论。突然有一个视频，莫名其妙就火了，视频的内容是，我在盗版联机里面开火箭狂雷创人。虽然只有3300的播放，但是弹幕非常密集，评论区也很热闹。那时候的社区环境是真的好，我感觉真的有实实在在3000多人看过了这个视频，并且有相当一部分人发弹幕评论。我就觉得挺有意思的，这个视频也奠定我我后面想要继续做视频获取关注的动机。踏入病毒圈子后面我慢慢玩起来了B站，关注了“瓜皮Tuza”，“手残Crazy”,“360MEMZ”,“任务管理器TSK”这些搞电脑病毒和流氓软件测试相关的UP，也关注了“阿狸才不是受”，“FUN科技”，“LTT”等电脑区的UP。后者那种类型的视频我是做不了的，没有这么多钱，但是，前者的那种视频，我是可以做的，虽然我没有很好的电脑，但是我至少有电脑。而且，那时候他们搞恶搞病毒的基本上都是用的易语言。第一个恶搞病毒好巧不巧，我初中的时候，我朋友给我发了一份易语言5.3破解版，然后他通过QQ的远程控制，指导我写了我第一个恶搞。这个恶搞的逻辑很简单，通过循环执行弹出信息框的操作，达到看起来崩溃的效果。后来，又去搜索各自语法规则，最终完成了我第一个恶搞程序：“请选择一张显卡炸掉你的电脑”。打开这个程序后，会有三张显卡让你选择，分别是GTX295，GTX590，GTX690，之际上真正会导致电脑卡死的，是点击GTX590，因为那是真正爆炸过的显卡。之所以做这个恶搞，是因为那时候科技圈还是称呼N卡的旗舰为：核弹。而来源就是GTX690的梗。也正是那时候玩这个梗，有了我现在的ID——GTX690战术核显卡导弹。那时候是2018年，也是我中考的那一年，真正开始搞这些上瘾是高中高一高二的时候。这个作品算是我的开山之作，后面上了高中之后，加了瓜皮Tuza的好友，问他怎么写的，他教会了我怎么文件关联导致系统没办法正常运行其他应用后，就一发不可收拾了。上高中后疯狂输出上了高中后，可能是因为学习压力的问题，在学校总会胡思乱想，想出一些莫名其妙的灵感，然后一旦有天数大于2天的假期，我就会疯狂输出。因为，我高中的时候周末只有半天，这半天我基本上都能拿来玩GTA5线上模式。没错，我后面2018年入正版GTA5了，好像是98块钱，过年打折，人生第一个游戏。所以，当年我的很多作品，都是两三天之内完成的，包括编写，测试，录制，剪辑。直到现在，我都不知道当年我是怎么做到的。我那时候就是感觉，一旦能有两天以上的假期，劲就不知道从哪里冒出来，非要写一个恶搞然后投稿不可。并且我写的时候，会不定时向群里群友汇报进度，那时候加群是可以提前得知节目内容的。我早期做的那些病毒，我现在看来更像是发泄学习期间的不满情绪和讽刺流氓软件的行经。具体有那些作品，可以到我博客《关于本人编写的恶搞病毒》查看。真正大火——蔡徐坤病毒20万播放量！虽然在此之前我发过的揭秘流氓软件和手撕流氓软件的视频也是接近20万的播放量，但是不是同一个赛道。那时候是2019年年初，蔡徐坤因为众所周知的原因直接大火，被黑的一塌糊涂，群友马上建议我写一个蔡徐坤病毒，然后给我看蔡徐坤的视频。那时候真写了，不过压箱底，没发出来这么早，想着先观望一下，过来一段时间才发，后面看看好像确实都是全网黑，就发了。这时候距离最火的时间已经过了差不多一个多月了，结果，这个视频居然火了，获得一塌糊涂。我记得那时候，有多离谱，大概只要七八分钟，我B站的消息就是99+。后面过了一个周后再次回家打开手机，已经是…三个点了！那时候，我记得我直接暴涨几千粉，从一开始只有几百个粉丝的UP变成了三四千粉的UP，然后顺手就开通了创作激励。那时候也是B站创作激励给钱最多的时候，基本上1000播放就有3块钱，很顶！927事件，毒圈陨落2019年9月27日，因为一个《送给最好的TA》的恶搞手机APP在各大高校传播，造成了比较恶劣的影响，B站开始对病毒圈子进行封杀，把相关的主要UP视频全部删除并且拉黑，只要是投稿相关的视频全部不给通过。也就是这一次事件后，我开始对B站产生了质疑。也从最开始的追捧这个平台，变成了怀疑。那时候，我与多个病毒区主力UP进行交流，了解到他们也是一样的情况，在尝试了多次与B站客服交涉未果后，不得不放弃了这个圈子。转而尝试去做和电脑以及软件相关的视频，也就是这一次事件，把我的创作热情浇灭了一半。因为好不容易找到了自己喜欢的圈子却被平台团灭，我当时已经心灰意冷，于是尝试杂七杂八的投稿一些视频，但是这些视频涉及的领域也竞争不过别人，再加上后来高三要备考，也就不怎么搞这方面的内容了。对BiliBili的一些看法和反思虽然我算不上是老用户，但是也见证了B站的衰落和变质。在我看来，在时间节点上，有几个比较重要的节点：2018年：开始变质，但是不多。绝大部分哲学♂相关的鬼畜视频被删，能发出来的只有删减版本，一些经典鬼畜作品也被删除。但是总体社区的氛围还在，虽然被限制，但是相关的圈子还是很活跃的。而且那时候二次元浓度还是挺高的。2019年：加速变质。越来越多的老一代鬼畜视频被删，刷到鬼畜视频的概率越来越低，到年末后基本上销声匿迹，取而代之的则是各种测评，vlog，还有狠活视频，这些本来不应该属于这个平台的视频，并且开始出现搬运他人视频改改投自制的营销号。用户素质开始下降，用户越来越多，低龄化越来越严重，二次元内容占比降低。2020年：臭起来了。基本上见不到曾经那种脑洞大开，极其有趣的鬼畜了。取而代之的则是各种生活视频，饭圈视频，游戏视频，以及政治正确的视频。二次元浓度占比很低，就连站娘2233都被边缘化了。首页一刷全是那种没什么营养的视频，营销号一大堆。用户傻逼化，用户数量直接上去了，脑残也越来越多，小学生越来越多。2021年至今：一坨屎！基本上没法看了，除了名称还叫BiliBili，以及和曾经那个BiliBili没有任何关系了，社区烂完了，用户烂完了，内容也烂完了，广告一大堆，大搞智商购。而我，在2022年的时候，决定不在关心这个平台，那一年，我把BiliBili从我手机卸载了，直到现在，我也没装回来。我需要看看消息的时候只在网页打开，平时不想让这个垃圾平台玷污我的眼睛。下面我对各个方面谈谈我现在的看法：社区方面低龄化严重！傻逼太多！脑残太多！由于B站不再严格限制用户转正，导致很多傻逼涌入B站，弱智也有，傻逼也有，小学生也有，没素质的也有！更过分的是，水军进来了一大堆，只要有某些企业的负面消息，下面必会有人洗地。最明显的莫过于华为的负面消息，水军洗地行为极其恶劣！平台方面恰烂钱越来越严重，各种广告满天飞。app首页四个视频就有一个是广告，而且更过分的是，如果你用港澳台版B站，是没有任何广告的。国内公司经典操作——中国人专坑中国人，就是给你同胞喂屎！内容同质化，失去了自己本来应该有的特色。本来应该是应该专注于二次元的平台，现在搞得不伦不类。大力推广智商购坑钱，卖的东西比淘宝买还贵，活该被骂智商购！新的app居然抄起了快手，抖音，这种短视频平台的逻辑，竖屏刷视频，这是让我最无法接受的。政治宣传严重，本来就应该是一个娱乐向的平台，我不希望在娱乐平台再被你那些什么乱七八糟的爱国爱党宣传骚扰！有一段时间使劲给我推各种官媒的视频，我拉黑了你还推，真有你的，垃圾B站。恶心！推送机制存在问题，我遇到最多的情况是，那种垃圾视频居然能有上百万的播放，而真正做得好的视频，有一些却只有几千播放，我不禁怀疑，是用户的品味垃圾呢？还是你平台推送算法的垃圾呢？简直是劣币驱逐良币！发评论被吞，有时候写个评论，莫名其妙就不见了，没有显示评论违规的通知，但是就是不见了，厉不厉害你B站。对当年承诺用户按等级赠送大会员，以及“只有大会员才能看的新番”也不会有的承诺背信弃义。番剧删减版，花钱看删减版，真是大冤种！砍掉客服，现在的B站已经没有人工客服了，入口都找不到了，只有机器人回复你了，解决不了任何问题。激励金越来越少，现在已经约等于没有了。针对部分UP进行偷偷限流，例如我。现在我发的视频，无论质量如何，做的再好，也很难播放量突破1万。讽刺的是，我居然有2.3万粉丝，发个视频，有时候只有1千播放，请问我的粉丝去那了呢？有部分粉丝和我反馈过，是看不到我动态更新的。好好好，跟我玩阴的是吧？鉴定为：粪坑。审核方面没有规范，规则含糊不清，对于不允许发的内容，没有很明确的规定，操作空间太大。审核不公平，同样内容的视频，别人可以正常发，几万，十几万播放屁事没有，我发就秒被删。发个动态也审核，一个字——绝！而且，更过分的是，你发出来的动态只是你自己可见，但是没有任何提示说你的动态正在审核。甚至有时候，发一个动态，过了一天了，还是只有自己可见，你就说绝不绝吧。也正是因为这个原因，才让我有了搭建一个博客的想法，可以自由的表达我的态度和观点。人民喜闻乐见，你不喜欢，你算老几？对于B站删除一些大家喜闻乐见的内容，以及干出一些让用户感到反胃的事情，我想用周恩来总理说过的话对此评论：“人民喜闻乐见，你不喜欢，你算老几？”鬼畜，哲学，动漫本来这就是老一代用户对这个平台的印象，也是当年B站内容的中流砥柱，而现在的B站非要从用户手里夺走本来应该属于他们的快乐，取而代之的，则是泛滥成灾的低质量视频和垃圾广告。而对于一些B站认为“不适合”的圈子，也是对其进行打压。首页没有好看的视频，或者说，很少。反倒是各种没有营养的视频，广告，推广，在你的主页占据了一席之地。我是真的觉得无语死了。陈睿，李旎，你别忘了，当年B站可是靠着这帮老用户才走过来的，现在倒好，为了利益，直接背刺老用户，这可不是什么好行为。不为用户考虑，不为UP考虑，在作死的路上越走越远。活该你BiliBili净亏损48亿元！
实战：帮群友迁移Typecho博客并解决数据库问题
为一时的口嗨买单为什么突然要帮群友迁移呢？因为一开始，我看到他的博客用的cn域名，已经够难崩了，没想到网站搭建用的东西更是重量级：CentOS7+宝塔，这DEBUFF是叠满了啊，CTOS7已经EOL，宝塔就不用说了，纯毒瘤。然后我就说要给他完全重新整一个，就有了下面的故事。导出数据登陆SSH，看到网站的数据都在/www/wwwroot/里面，直接scp拉下来。scp -r root@http://218.244.156.5/www/wwwroot/ ./当要备份数据库的时候，出问题了。那位小学生不记得数据库的密码，也不知道密码是什么。于是只能让他在万恶的宝塔面板导出数据库。为了确保万无一失，我还在我另一个闲置的云服务器对数据库进行了还原，确认他网站还原成功了，然后开始换系统。更换系统。我这次用的是一键安装脚本：GitHub地址是：https://github.com/leitbogioro/Toolscd / wget https://raw.githubusercontent.com/leitbogioro/Tools/master/Linux_reinstall/InstallNET.sh chmod +x ./InstallNET.sh ./InstallNET.sh -alpine安装完成后，root的默认密码是：LeitboGi0ro。要马上更改，避免被他人非法登陆。然后要降级到稳定版，因为默认安装的居然是测试版：第一次不知道为什么，没成功，第二次就成功了，一模一样的操作。最搞笑的是，第一次失败的时候那位小学生已经睡觉了，没办法重置服务器，第二天有碰不到电脑，于是服务器炸了一整天。印证了群里面另一个群友看到这位小学生把服务器密码给了我后说的话：来，我帮你删。啊不是，我帮你备份。再说个题外话。本来他是想和我家里云一样用AlmaLinux 8.10的，但是奇怪的是这个系统的nginx配置很奇怪，怎么都配不好。无奈换Alpine Linux了。不过也是好事，AlpineLinux非常节省资源，可以节省出大量资源用来干别的事情。安装环境可以参考之前的文章，安装环境。但是这次不同，我本来想给他变成SQLite作为数据库的，他原来是MySQL。但是似乎因为数据库兼容性问题没办法导入数据，于是只能安装MariaDB了。apk add nginx openssl php82 php82-fpm php82-json php82-openssl php82-curl php82-zip php82-phar php82-intl php82-dom php82-session php82-mbstring php82-ctype php82-tokenizer php82-fileinfo mariadb mariadb-client php82-mysqli php82-pdo_mysql php82-mysqlnd rc-update add php-fpm82 default rc-update add nginx default service php-fpm82 start service nginx start /etc/init.d/mariadb setup rc-service mariadb start rc-update add mariadb default新建数据库并导入之前的数据根据Typecho的config.inc.php文件可以知道之前设置的数据库和密码，直接创建一个并导入数据就是了。数据库操作：mysql -u root -p进入数据库后，新建一个和原来名字和密码一模一样的数据库：CREATE DATABASE xiaolin; CREATE USER 'xiaolin'@'localhost' IDENTIFIED BY 'rx9erYFE6cP4'; GRANT ALL PRIVILEGES ON xiaolin.* TO 'xiaolin'@'localhost'; FLUSH PRIVILEGES; EXIT;导入之前的数据：mysql -u xiaolin -p xiaolin < xiaolin.sql网站还原先生成一个自签名证书：生成一个自签名证书在/etc/nginx/ssl/selfsigned.crt和/etc/nginx/ssl/selfsigned.keymkdir -p /etc/nginx/ssl/ openssl genpkey -algorithm RSA -out /etc/nginx/ssl/selfsigned.key -pkeyopt rsa_keygen_bits:2048 openssl req -new -x509 -key /etc/nginx/ssl/selfsigned.key -out /etc/nginx/ssl/selfsigned.crt -days 365 -subj "/"自自签名证书用于验证配置以及后面设置通过IP访问拒绝连接。然后我们就需要编辑nginx的配置文件了。nano /etc/nginx/http.d/typecho.conf配置文件如下：# Typecho HTTP服务器块 server { listen 80; server_name xlbzi.cn; # 特殊处理.well-known目录，允许通过HTTP访问 location /.well-known { root /data/wwwroot/typecho; allow all; # 确保在这个location中的请求不会继续匹配其他的规则 try_files $uri =404; } # 对于所有其他请求，强制跳转到HTTPS location / { return 301 https://$host$request_uri; } } # Typecho HTTPS服务器块 server { listen 443 ssl; server_name xlbzi.cn; # 设置最大上传文件大小为 8M client_max_body_size 8M; # SSL证书和密钥路径 ssl_certificate /etc/nginx/ssl/selfsigned.crt; ssl_certificate_key /etc/nginx/ssl/selfsigned.key; # SSL设置（可选但推荐用于安全） ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; # 网站根目录 root /data/wwwroot/typecho; index index.html index.php; # Serve static files directly location / { try_files $uri $uri/ /index.php?$args; } # PHP处理 location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } # Deny access to hidden files location ~ /\.ht { deny all; } }以及，default.conf要更改为拒绝连接：nano /etc/nginx/http.d/default.confserver { listen 80 default_server; listen 443 ssl default_server; #listen [::]:443 ssl default_server; server_name _; # 这是一个通配符，表示任何未匹配的主机名 ssl_certificate /etc/nginx/ssl/selfsigned.crt; ssl_certificate_key /etc/nginx/ssl/selfsigned.key; ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES256-GCM-SHA384'; return 444; # 关闭连接，不发送任何响应 }重启nginx：rc-service nginx restart打开网站，嗯，除了证书报错，其他都正常了。配置acme.sh获取证书下载acme.sh并安装：curl https://get.acme.sh | sh部署证书：cd /root/ .acme.sh/acme.sh --set-default-ca --server letsencrypt .acme.sh/acme.sh --issue -d xlbzi.cn -w /data/wwwroot/typecho/ .acme.sh/acme.sh --install-cert -d xlbzi.cn \ --key-file /data/certs/xlbzi.cn.key \ --fullchain-file /data/certs/xlbzi.cn.pem \然后把之前的tppecho改成使用签发的证书进行TLS加密：# Typecho HTTP服务器块 server { listen 80; server_name xlbzi.cn; # 特殊处理.well-known目录，允许通过HTTP访问 location /.well-known { root /data/wwwroot/typecho/.well-known; allow all; } # 对于所有其他请求，强制跳转到HTTPS return 301 https://$host$request_uri; } # Typecho HTTPS服务器块 server { listen 443 ssl; server_name xlbzi.cn; # 设置最大上传文件大小为 8M client_max_body_size 8M; # SSL证书和密钥路径 ssl_certificate /data/certs/xlbzi.cn.pem; ssl_certificate_key /data/certs/xlbzi.cn.key; # SSL设置（可选但推荐用于安全） ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; # 网站根目录 root /data/wwwroot/typecho; index index.html index.php; # Serve static files directly location / { try_files $uri $uri/ /index.php?$args; } # PHP处理 location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } # Deny access to hidden files location ~ /\.ht { deny all; } }重启nginx：rc-service nginx restart打开网站，嗯，这下正常了。修复数据库回到了最开始他给我提出的问题，友联插件没法使用。我不知道这位小朋友之前对数据库做了那些不可告人的操作，我问他也说不清楚，我就先默认数据库是有问题的。后面试了一下，即使是从我家的服务器把插件传过去，依然不好使。于是为怀疑应该是网站数据库有问题。为了印证我的猜想，我在他服务器上用同样的方法搭建了一个全新的Typecho博客，然后发现友联插件是正常的。这下实锤数据库有问题了。经过与通义千问的友好交流，得知Typecho的每一个数据表的功能是什么后，我们来做迁移。迁移的目标数据库是新建的typecho数据库，之前的数据库是xiaolin。开始表演：导出需要的表的数据，我们只需要博客的内容，也就是文章，评论这些，设置不能要：mkdir /data/temp cd /data/temp mysqldump -u root -p xiaolin typecho_comments > comments.sql mysqldump -u root -p xiaolin typecho_contents > contents.sql mysqldump -u root -p xiaolin typecho_metas > metas.sql mysqldump -u root -p xiaolin typecho_relationships > relationships.sql mysqldump -u root -p xiaolin typecho_fields > fields.sql然后进入数据库，清空相关的数据表：mysql -u root -p进入数据库命令行后：USE typecho; SHOW TABLES; TRUNCATE TABLE typecho_contents; TRUNCATE TABLE typecho_comments; TRUNCATE TABLE typecho_metas; TRUNCATE TABLE typecho_relationships; TRUNCATE TABLE typecho_fields;导入之前的数据： mysql -u root -p typecho < fields.sql mysql -u root -p typecho < relationships.sql mysql -u root -p typecho < contents.sql mysql -u root -p typecho < comments.sql mysql -u root -p typecho < metas.sql完事后刷新一下网站，评论，文章，全部回来了。因为这一切实验都是在新站进行的，老站还是有问题的。不过没关系，直接让老站使用新站的数据库，新站删掉，不就行了？cd /data/wwwroot/typecho mv config.inc.php config.inc.php.back cp /data/wwwroot/blog/config.inc.php ./注意：typecho文件夹是旧网站，blog文件夹是实验网站。然后这下老网站也正常了。收工。下次再也不口嗨了。。。。。。