FKUNのBLOG - 博客
type: channel
link: https://blog.fkun.tech/tag/%E5%8D%9A%E5%AE%A2/
items: 照片页做好了
items: Github从版本管理开始
items: 日·记
items: 今天蛮有效率的
items: 折腾了两个东西
items: 更新了图片API
items: 完成一个曾经的愿望——搭建自己的论坛
items: 数据库玩坏了可是有点糟糕
items: 总算有了自己域名的邮箱
items: 闷声作大死 两个小时抢修

照片页做好了
type: item
date: 2020-11-05T02:22:38+08:00
description: ScreenShot_2020-11-04_18-56-43.png加入了懒加载，可以自由替换加载动画。ScreenShot_2020-11-04_12-55-42.png这是之前的效果，因为当时后期修图基本不回去动图片比例，然后这边就显得有些太整齐，反而不好看。ScreenShot_2020-11-04_19-14-48.png现在用非常暴力的方法随机输出图片高度，强行制作出参差不齐的效果。后面有附代码，感兴趣的可以去看看。本来还搞得非常精致，把图片的宽高信息弄下来，再前后比较比较。但没想到啊，这个图片信息获取直接搞得网站加载巨慢。没啥其他办法，遇事不决量子力学，直接安排随机数。有一定概率输出很细长的图片，有一定概率输出接近方形的，剩下的就是原始比例。关于实现瀑布流，绕来绕去简直头疼，经常是眼看就要做出最后的效果了，结果因为又因为很小的细节导致需要整体返工。写这个页面我又学了不少新的东西，边查资料边写代码。好的代码不在长，在于巧。有时候发现几句代码就能实现刚才慢慢一屏幕代码的效果，不禁感叹。这次除了和vue框架有关的没有去尝试（看到了很多用vue写的），其他的css，js的实际中实现办法都试了一边。大概和Typecho也有关系，我放在独立的测试页面跑非常正常，放进Typecho就可能会抽风。Typecho模板的那些代码我也不太熟悉，看来看去也没看出问题。最后瞎搞总之是搞出来了。代码顺便放上来了，如果要给自己的博客添加效果可以在根目录添加photo.php文件把代码放进去。图片源当然还是要自己手动去设置一下。<?php /** * Photos * * @package custom * * @author FKUN */ if (!defined('__TYPECHO_ROOT_DIR__')) exit; $setting = $GLOBALS['VOIDSetting']; if (!Utils::isPjax()) { $this->need('includes/head.php'); $this->need('includes/header.php'); } ?> <?php $raw = file_get_contents('https://api.fkun.tech/img/num.php'); $imgnum = (int)$raw; for ($num = 1; $num < $imgnum; $num++) { $imgscr = "https://api.fkun.tech/api/web-" . $num . ".jpg"; echo ''; $randnum = rand(0, 2); if ($randnum == 1) { $url = ' '; } elseif ($randnum == 2) { $url = ' '; } else { $url = ' '; } echo $url; echo ''; } ?> <?php $this->need('includes/footer.php'); ?>

Github从版本管理开始
type: item
date: 2020-09-30T03:33:00+08:00
description: 按照之前的计划，周五去杜塞尔多夫接到了从慕尼黑来的Armor。他毕业后在微软实习，目前入职德国谷歌，是实实在在的编程大佬。周末我们参加了Dokomi漫展，本来应该是五月底的漫展，因为疫情，硬是给拖到了九月底。我们两个都是老二次元了，展子上拍coser什么的，轻车熟路。他在我家过夜，虽说离场馆路途遥远，回到家供扯淡的时间寥寥无几，但我还是见缝插针的向他请教一些编程方面的问题。聊到Github，他提到了版本管理，这个对我来说还比较陌生的概念。Github可以培养很好的版本管理意识，这也是许多大的代码公司非常看重的能力。我之前折腾Github主要是为了弄博客，当时有个master分支，本地的改动写个commit再push上去。当时只是比较好奇出了master以外，其他branch的作用是什么，我当时只是把他们当作项目底下的其他文件夹（硬要这么说也没错）但经过大佬指点，我逐渐明白了branch的真正用途。越是大的项目，合理的版本管理就越是重要。举个例子，现在需要给一个网站写一个新feature,目前这个网站已经上线。这个新的feature需要和网页上其他的部分做联动，如果我直接修改现有的网页文件，用户很可能看到未开发完毕的页面，体验很不好。此时一个解决办法就是把整个网站clone到本地，开发测试完成后再deploy到线上。不过，要是我同时需要开发几个不同的feature呢，或者说，多人合作去做一个项目。本地的clone的方法不再好用，要对付这样的情况，就得用Github这样的有版本管理功能的仓库了。比如master主分支可以作为用户看到的现有版本，在这个分支下，我可以创建develop分支，或者test分支，再往下，每一个不同的feature都可以再进行展开。画成图形，这不就正像一颗枝叶茂密的树么。用branch来形容再形象不过。每一个branch写完之后，确认没问题就可以merge到master，这样用户就能使用新的功能了。用户和开发两边都会有不错的体验。为了实践，我把我的homepage和记账项目上传到了github，并尝试了最基本的分支操作。github仓库页面这里我已经建好了仓库，到这里和以前没有不同。branch使用桌面应用或者网页端再Master下创建了dev分支，现在把软件中切换到dev分支。这里稍微插两句。为了真正的让分支起到作用，我花了点时间，折腾了本地网页服务器，还有github到remote server的同步。nas本地服务器直接使用Synology的webstation，源文件夹设置成Github仓库本地文件夹。本地的代码更新将实时反馈到NAS上的网页。homepage先测试一下本地的访问，一切ok，可以无视chrome提示的网页不安全，本地的证书懒得搞了。code稍微修改一下代码，比如我想把这里的2020改成2017-2020。code修改完成 保存page本地页面瞬间更新githubgithub软件这边也检测到了更新，我们再次确认选择的是dev分支，给commit写个description，不写也可以，然后push。pushgithub在github网页版上看结果，目前master分区没有任何变化。dev在dev分支下，可以看到index的改动。如果是多人合作的项目，其他开发者也可以看到这条改动并进行review或者优化。online线上的版本还是改动之前的。现在假设代码没有问题，我们决定deploy刚才的改动。pull request点击pull request，可以看到箭头从dev指向master。这里也可以写点comment来记录。pull request现在已经提交了merge申请，这一步操作个人开发者来说意义不大，如果是多人团队，可以设置不同的权限。比如这里，权限较低的开发成员只能提交request，能否上线还需要admin进行确认。github自动进行了校验，返回了一个绿勾。如果代码写的有问题这里可能提示conflict，那么就还是得打回去继续改代码。我们确认后点击merge pull requestmerge允许merge并关闭了这个requestgithub这边master已经开始了更新deploy因为目前网页服务不是跑在github上，而是单独的VPS，这边还需要通过github action的脚本同步。deploygithub action会把新文件通过rsync上传到server上。complete上传完成。github回到github仓库页面，master分区这边也出现了个绿勾，说明merge已经完成。home再次刷新线上的homepage，更新的内容已经出现。到这里，整个演示完成，回顾一下版本管理的好处。1.新的开发不会影响已有线上项目的运行。2.每个feature的开发都相对独…

日·记
type: item
date: 2020-07-20T08:13:18+08:00
description: 一整个月没有更新博客，主要是忙于考试。前些日子考完，有些成绩出得快，有些还得过阵子。出分了的考的都还不错，考试的标准没有因为疫情降低，该去学校考的还是得去学校。暂定下学期继续网上授课，我不禁思考，既然光在家看看课件就能通过考试，学校在地理以后是不是显得并不是那么必要了。留几个实验室给做毕业设计的用用，其他课放网上老师轻松，反正教每届都是一样的东西，学生也轻松，成天在家也不用花时间在通勤上。暑假立了个高产Flag，这两个月要试试每周两到三更。昨天去科隆取到了2月就托同学带过来的滑轨，这次的评测视频又刷新了视频制作速度的记录，产品到手到出片只要半天。去科隆顺便去了优衣库买衣服，没记错的话，至少一年没买衣服了，之前买的衣服质量太好，穿不出什么让我有必要换的毛病。有朋友在优衣库打工，顺道暗中观察一下。优衣库这个品牌我挺早就听说了，国内经常看到，不过却从来没进去过。没想到第一次去优衣库竟然是在德国，衣服的价格比我想象的便宜得多。几个欧元就可以买T恤，简直比地摊还便宜。我转了一圈，最后买了条硬质的卡其色裤子，还有一件快干五分短袖。上衣其实没有太大必要购买，我有好几件哔哩哔哩的周边T恤，高中时期的衬衫有好几件都带过来了。但裤子确实没几条，去年春夏秋冬出门固定穿一条略厚的深色牛仔裤。下雨的话可以穿一条加绒防水裤，夏天下雨也就无所谓了。这个夏天要自己过了，没有国内的补给，稍微补充点物资吧。靠员工折扣便宜了不少钱，这就是走后门吗？德国这边的疫情要我说大概已经是过去了，官方没有完全放开政策，民众已经提前放开了。web-20200718_A6_1700.jpg这是科隆的主商业街，水泄不通。web-20200718_A6_1712.jpgweb-20200718_A6_1706.jpg商店大多依然采取限流，进店戴口罩，出店摘口罩是习惯，严格的店铺还需要登记信息。图中是一家服装店贴的告示。web-20200718_A6_1726.jpg优衣库（我也不知道为啥这天喜欢斜着构图）web-20200718_A6_1754.jpg最后来一张科隆大教堂的侧面，之前从来没用广角在这个角度拍过。对了，还有件事。本来打算单独写一篇，过了几天也想不出到底写点啥。是关于叶修的，也许个别读者已经知道他的事了。B站ID叫做路旁的叶修，15年开始拍摄Vlog，制作了长篇日本第一视角的视频，被CCTV4专题报道过。7月5日中午11点，微博上，他删除了所有以前的博文并留下最后一句话，“2020年7月4日凌晨，叶修于南京结束了自己的生命”。几个月前我花了几十个小时看他的视频，觉得这种视频风格不错，打算自己也做一些这个类型的视频。他在日本的影视专门学校毕业后创业组建工作室，做了不少项目。不仅养活自己，还能给几个员工发签证。在我看来，这个年龄有这个成就已经很厉害了，做出这个决定，据知情人士后续发布的聊天记录截图可以看出，是预谋已久的。几年前的他已经有这种想法了，没预料到的是他把计划提前了两年。看到那条微博，我第一反应是他可能是退网回归虚无，终结叶修这个IP，几天后确认消息后我心情有些复杂。他的视频治愈了很多人，自己却是这样的结果……昨天，新闻报道日本演员三浦春马自杀。今年究竟是怎么了？

今天蛮有效率的
type: item
date: 2020-05-15T04:56:00+08:00
description: [Meting][Music server="netease" id="517940001" type="song"/][/Meting]写实习报告，因为没法去实验室，相关数据直接发了过来。好几个小时就是在把数据放到表格，作图，代入公式，做表格，作图，再代入新的公式…… 物理实验就是这样枯燥。整天在家，所有业务都需要靠互联网完成，平时都没注意，没想到我这一天业务这么繁忙。完全被动的解决各种人的问题，真·工具人。做披萨用的中筋粉只剩一点了，想着赶快用完，混了做饼干用的405低筋粉，这面发的…… 还好量不大，披萨的面皮真的很重要啊，以前都是直接甩个薄到透光的底，烤完会有很出现很大的面泡，吃起来带感。晚上准备早点睡，明早继续搞报告，三个报告，有一个还是完全没头绪那种。总之一步一步来把，整天焦虑最后啥也弄不成。看了一圈友链力接，千篇一律的主题整的我快吐了。哪怕是稍微改一改的也会看着有点新意啊！再就是看到和自己用同个主题的博客心中会有尴尬的感觉，因为实在是太像了。于是，我在忙完这两周的事情后我打算魔改一下现在的主题。比如，换个背景图，比如改一改排版……

折腾了两个东西
type: item
date: 2020-05-14T02:41:00+08:00
description: 加入了友链接力的链接，搭建了个人云盘https://cloud.fkun.tech/今天本来有点提不起精神，要写两个实习的报告，然而一点头绪也没有。正事儿没搞完，也不能尽兴的玩MC。MineCraft可是当时我真正玩吐过的一款游戏，当时在服务器里爆肝几个工程，导致后来看到MC就头疼，16年之后就再没动过了。这几天好友说是开了服，我一股子冲动直接入正（补票）玩了一阵，又找到当年刚开始接触MC时的乐趣了。这个实习报告，以往都是在实验室实习后再写，通常我也会问问实验室的管理这个报告大概怎么写。这次整个云实习，放俩视频加一堆资料，让自个儿慢慢写去吧……好不容易把实验数据搬到Excel里准备进一步处理。紧接着收到邮件说之前放的实验数据是错的，我尼玛…… 最后只把报告的结构做了出来，四舍五入就什么都没干。为了给日本那边语言交换的伙伴回信，我花了一阵子重新阅读新标日初级，看看整理点问题一并问他。到了晚上，和刚答辩完的好友探讨了它的毕业论文，他做的是基于ESP8266的智能门锁。这个东西本身，说真是个很简单的玩意儿，所以我的关注点是他怎么写出来的一万多字的论文。看完之后，不禁感叹，查重机制和字数要求究竟逼出了多少明明内涵简单看起来却晦涩难懂的论文啊。晚上例行看看友链里的博客有没有新的内容，无疑点开一个友链中的友链，单纯因为头像是个妹子。这年头妹子站长可不多呀，结果进去一看发现是个男的…… 但他的侧边栏链接里有个Traveling的图标，我开始以为是他的旅行足迹，打开一看给我跳转到了其他博客，我又重新点了一遍，结果跳转到了另一个博客。我好像逐渐明白这个链接的意思了，觉得挺有趣，想看看他怎么做的，看了一下他的归档，他还真写了关于这个的文章，当然不是他做的就是了。这是个Github项目https://github.com/volfclub/travellings 叫做 开往-友链力接 ScreenShot_2020-05-14_00-01-26.png大概就火车一路开下去，一环连一环。其实这就是我一直以来对友链页面的设想，找到一个有趣的博客，看完以后再去他的友链，找到下一个博客，顺藤摸瓜，可以发现不少有趣的人。这个友链力接算是个十年之约的升级版（建议两个网站PY一下）能直接点击跳转确实方便不少。因为要求按钮放在首页看得到的地方，看首页觉得无聊的博客就可以直接跳过接着看，这种很有效率的获取信息的方式用着很爽。我在第一时间就提交了issue申请加入。在逛别人博客的过程中，看到一个初二的小朋友建的站 https://blog.tigerroot.cn/ 实属后浪，看到里面有个云盘，我觉得很牛批，他给的标签是Onedrive，网页可以直接访问云盘中的文件，视频之类的文件可以在线播放。看到这玩意儿我太高兴了，我手头可是捏了7个5T的Onedrive网盘。这要是能直接这样做成网页使用那就太可了。可惜这位小盆友没有留下关于搭建这个页面的信息，我从这个网页的字缝中发现了Oneindex的字眼。谷歌一下，就是它了。原来是这位同学用了这个程序默认的名字。Oneindex的原项目没直接看到，直接看到的是一个魔改版 https://github.com/david7207/oneindexMod 应该也是这个小盆友用的。这个仓库里直接包含了卡Office365 教育版 的链接，一条龙服务，赞。考虑到爷直接有很多Onedrive盘，就没有新折腾云盘，随便找了个手头空着的云盘进行了设置。和Typecho的搭建一样简单，上传文件，访问网址，跟着步骤设置，完成。做出来是这个效果ScreenShot_2020-05-13_23-59-51.png设置里面看到似乎还有图床的作用ScreenShot_2020-05-14_00-40-08.png以前教育版的Onedrive想搞个直链还挺费劲的，这玩意儿直接给整合进去了。更猛的是，这东西不走服务器流量，薅的是微软的羊毛。爽！同时可以设置一些文件的直接输出，走服务器流量，但好处是可以直接调用。ScreenShot_2020-05-14_00-43-26.png有了这个，以后想分享个啥东西就都可以往这里面放了。在德国测试下来速度很OK，1080视频在线不会卡顿.听说国内有时候Onedrive访问不了，我只能说，GFW，给爷爬。

更新了图片API
type: item
date: 2020-04-09T06:06:00+08:00
description: 今天通知下来，如果疫情没有直接证据表明好转，则整个学期都会以线上形式授课。其实挺适合我的，这样我就可以自己安排时间学习，有时候多看一点，有时候少看一点。听说考试不会延期，那这次再出难题可就有点说不过去了。说一下API，主要是导航页，和博客首页头图用到了这个API，就是从一个文件夹下随机获取一张我的摄影作品。之前是在网上找到了acgimgurl这么一个方案，可以从网易自动获取图片，也可以自定义文件。实现方法是建立个TXT格式的文件名列表，再通过PHP读取其中每一条整合成完整的地址。但这个比较蛋疼就是，在我传完图片后，为了让API能更新这些图片，我需要再手动把这几个文件名放到TXT文件里。多一个步骤，很不爽。于是就稍微做了些改动，先在储存照片的网站下挂一个PHP单纯用来计数。<?php $imgnum = (count(scandir('./api'))-'2'); print_r($imgnum); ?>这个php也可以直接访问来看已经有多少图片，为之后图片批量命名做参考。直接计数会出一个数组，其中包含一个. 和一个.. 所以在计数后-2，就是真正的文件数了。然后就是真正的API<?php $raw = file_get_contents('https://fkun.tech/apinum.php'); $imgnum= (int)$raw; $num = rand(1,$imgnum); $url = 'https://fkun.tech/api/web-'.$num.'.jpg'; //解析结果 $result=array("code"=>"200","acgurl"=>"$url"); //Type Choose参数代码 $type=$_GET['return']; switch ($type) { //格式解析 case 'json': $path = "$url"; $pathinfo = pathinfo($path); $imageInfo = getimagesize($url); $result['width']="$imageInfo[0]"; $result['height']="$imageInfo[1]"; $result['size']="$pathinfo[extension]"; header('Content-type:text/json'); echo json_encode($result); break; //格式解析 case 'img': $img = file_get_contents($url,true); header("Content-Type: image/jpeg;"); echo $img; break; //IMG default: header("Location:".$result['acgurl']); break; } function str_re($str){ $str = str_replace(' ', "", $str); $str = str_replace("\n", "", $str); $str = str_replace("\t", "", $str); $str = str_replace("\r", "", $str); return $str; } ?>他这个代码前半部分我改了一下，直接让他获取之前计数网页的数据，转成整型再做个random。现在终于就可以直接传图，自动更新到首页了。之后想单独做个摄影集的页面。

完成一个曾经的愿望——搭建自己的论坛
type: item
date: 2020-03-13T05:44:10+08:00
description: 这短时间一直消失不见，过了几天吃了睡，睡了吃的颓废生活后，赶快恢复了忙碌。除了继续制作B站那边的教程系列外，我总算是搭出了自己的论坛。以前常混迹于各种中小论坛，贴吧我是不爱去的，虽说是个学校的小吧主，但这几年下来，光靠脚本签到续着资格外，没有什么实际的作为。小论坛氛围相比贴吧这种鱼龙混杂的地方要好上不少，比如技术宅社区，科创论坛，曾经的星飞论坛，PC426…… 大家都是兴趣相投，分享自己的心得相互也都有不少收获。前阵子，哎，说是前阵子，其实都过去大半年了，PC426因为备案问题下线了。这段时间确实挺难熬，不说学习新知识吧，就看看网友在那边发的图，还有一些高质量的开箱评测之类的。有时候426本人也会出没，分享一些硬核知识。PC426是基于Flarum开发的，我深度体验过Flarum，他就像是论坛里的Typecho。极度精简，我果断也选择了Flarum作为论坛引擎。虽说四五年过去了，到现在还没出正式版，但三月新鲜出炉的beta12版本支持的插件已经足够一个中等规模的论坛运作。想当年认识了PC426的实际后台运维，年纪和我相仿，但却已经全职折腾这些，不知是不是因为肝过头了，甚至一度入院。当时我对建站，一无所知，才是个只会拼凑HTML直播简介的萌新。当时单纯觉得服务器很带感，二手的也很便宜，买回来放在家里看着就很高级。当时直接被这个运维骚年给泼了盆冷水，之后去逛他的博客，觉得好厉害，可以有自己的域名，自己的网站。写自己想写的内容，发自己想发的图片。如今，技术已不是瓶颈。再次看到各种博客，瞄一眼就能看出这是什么主题，当然自己做主题的大佬是有的，大多基于那么几个大的博客引擎开发，拼的就是肝和设计了。曾经一直逛别人的论坛，现在终于有了自己的论坛。不知道换位思考到论坛里的同学会不会有和我当年相似的感觉，也许他们觉得我很厉害咧。当自己真的折腾出来这些后，回过头，一切就是如此简单。我热爱折腾，因为我享受那种折腾了四五个小时，换了各种思路，最终把自己脑中的效果实现的瞬间。那种爽快很短暂，情不自禁的放开鼠标，拍一下手，喊一句Yes，起身走两步。这些东西也许已经有不少人折腾过了，但正因为情况不同，网上的资料是有限的，最终解决问题的还是自己。最后，放一张网站的截图。ScreenShot_2020-03-12_22-18-29.png

数据库玩坏了可是有点糟糕
type: item
date: 2020-01-07T08:30:00+08:00
description: ScreenShot_2020-01-06_22-27-23.png早上shell上去一看服务器hostname怎么还是mail开头，想都没想先重启。nginx掉了，问题不大，手动选一下路径就行了。再一看，我靠SQL没起来，这个问题有点大。大概就是我服务器前期摸索留下的错误设置导致的，我寻思直接借此机会整体重搞一下更新SQL，5.5的版本不是不能用，但我觉得5.6好像听起来好一点。早上赶着上课撒手放着没关，博客就这么停了一天，晚上很意外的和一个学长聊了起来。本以为在这边很难找到和高中同学相仿交流比较轻松的类型，不出来是体会不到的，地域差距真的影响很大。同一个地区的人会抱团行程小圈子，我在这些国人之间，其实像个外国人。也就语言相同罢了。在这边几年下来，我个学物理的总是在机械组和电器组里找朋友。抬头看了看未来，不到两年就毕业了，到那时也差不多攒了一圈说的上的朋友，然后又被迫离开这个舒适圈再去适应新的环境。下午上完课帮要住过来的同学搬运了行李，顺便去了超市和银行。新一年的开始就是匆匆忙忙，还需多静心沉下气。明天没有早上的课，补个觉。要不然写个博客思绪都乱七八糟的。

总算有了自己域名的邮箱
type: item
date: 2019-12-25T02:56:00+08:00
description: 最开始的设想是直接搭建邮件服务器，postfix+dovecot，简称p+d。在配合sasl还有数据库之类的，做好加密通讯和账户管理。试了很久，各种方法，各种教程都没能成功。最开始，相比一个月前的尝试略微有所进展。毕竟我没学过linux，当时因为不熟悉系统，连postfix服务都没法正常启动。这会儿大概是比较清楚了怎么查看status逐步排错，总算是把最基本的服务跑起来了。直接telnet localhost 25然后rcpt我的Gmail邮箱一条讯息。Snipaste_2019-12-22_03-45-46.png裸装postfix肯定是进垃圾箱的，所以搞邮件服务器难就难再后续。看了Zhen Zhang's Blog的博文，我也准备让gmail代收自己邮件服务器的讯息，这样管理会更加方便。可是尽管我流程照做，就是收不着邮件。而且tls配置的死活有问题，一直454 Access denied。之后又试了大概5个不同的教程，无果，到后来我翻postfix的那几个配置文件可叫一个熟练，然而就是搞不定。Snipaste_2019-12-22_02-31-14.png最后跟着知乎的教程做，在最后发现有个组件CentOS 8没有，很尼玛费劲的看着英文教程，强行把7里面的依赖包搞了过来。然而，最后邮件要是没能跑起来。三天我都在搞这事情，不能再浪费时间了。我的目的其实只有一个，就是要个以自己域名结尾的邮箱。而且要能支持SMTP POP3在任何平台收发。嗯，查一查有哪些网站提供这样的服务，腾… PASS，网易，不错，试试网易，要手机验证，没问题。手机卡在这边收短信还是可以的，结果下一步，我靠，这怎么是要发短信啊。我裂开了，然后开始看一些国外的服务，Outlock的服务协议乱七八糟，Gmail似乎不是免费，然后我就看到了Yandex，一个毛子做的邮箱网站。跟着这篇教程，很快的完成了设置。并没有作者当时说的那么长时间的等待，我这边在10分钟内完成了从部署到第一篇邮件的发送。有一说一，毛子网站看的很难受，既然都给了英语版，为啥里面还有那么多俄文，看不懂啊！！用人家的服务器就是爽，检查了一下，挺良心，没有在邮件里加什么奇奇怪怪的角标水印。外观上看起来就和自己搭的一样。第一时间部署到了博客上，开通了评论邮件回复提醒的功能。以前邮件用的少，没想到邮件也可以用html来编辑样式。太棒了，以前的知识可以用上了。收信参考了桜庭夜の杂话铺子的自动回复邮件代码，写出了以下样式。Snipaste_2019-12-24_19-54-42.png

闷声作大死 两个小时抢修
type: item
date: 2019-12-19T06:53:25+08:00
description: 睡得晚必定早上起不来。我决定今天试着晚上十点睡觉，六七点开始浏览一些个人博客。发现了一堆很好的软件，主要是Xshell还有Navicat。前者用来代替Putty，后者可以直接管理数据库。装好当然是要测试一下能不能用了，一切都很顺利，唯一不足就是之前折腾邮件服务器的时候把服务器名给改了。好办啊，改回来，重启。这下出事了，Nginx没跑起来。Nginx出问题不是一回两回了，跟着报错找方案，解决了Ng的问题，SQL又崩了。当初装邮件服务器偷懒用了个整合包，里面的程序自动重装SQL之类的套件，装的位置又很奇怪。邮件服务最后还是没搞定，扔了一堆废文件在里面没管，这波重启，系统自动把这些没用的东西里的SQL打开了。直接删了也不行，改路径也不行，搞了半天，真的无解。最后的成果就是能跑SQL，但跑的不是我想要的那个SQL。可以重新改库的路径，能用，但是跑在一个奇怪的SQL上我总是不爽。好吧，干脆一点。备份库。rm -rf。Snipaste_2019-12-18_22-00-20.png然后就是重新安装SQL，漫长的等待后装好了。Typecho的后台能访问了，主页还是显示数据库错误。明明都把表导回去了，只好仔细检查权限，也没啥问题。最后发现SQL自带的user表裂了，提示需要修复。直接重启SQL吧，莫名其妙就好了。一看表，淦，23：50。