标签 博客 下的文章

好像很长时间没怎么更新过博客了,就连一些评论也没再回复过。

所以趁着元旦有点时间,简单说说吧。

工作了

去年8月份开始,正式从学生变成了社会人。不好说是否已经完成了身份的改变,但这身份终究是要如此转变的。

我现在就职在某国企的系统集成子公司的总部。不用想,肯定有很多人感觉朝九晚五,工作轻松。

错了。因为它早在3年前就已经进行了混改了,现实的情况是在我去之前,我们组一共4个人,要支撑全国31家分公司和产业互联网公司的业务。你就可以想象一下在总部的这几个人需要拥有多少个分身了。

但现实终究不是西游记,这些人也不可能拥有分身来协助,所以纵使刚刚到岗的我再不熟悉业务,也算是多了一个帮手。什么意思呢?我到岗的第4天就被安排出差去四川了。

从四川回来,是为期一个礼拜的新员工培训——这可能也是我这半年里边最轻松的一个礼拜。

然后便是无止境的工作。对了,我好像还没有介绍公司的上下班时间:早上八点半,晚上五点,不打卡。

但是工作量使得五点这个下班时间没有什么作用,至少从五点半开始,同事才会陆陆续续的离开。

可能即使是这种程度的加班也比一般的互联网公司下班时间早。但是要知道,公司是不打卡的,不打卡就意味着人力或者领导并不知道你到底是几点离岗的,也就意味着加班是没有加班工资的。

退一万步讲,即使我可以做到正点下班,我的单位在二环里,每天我都要往返于六环外和二环里。而这就使得我一天要上两个班:单位一个班,坐车一个班。

说几个数据你可以体会一下:为了保证八点半到岗,我需要赶六点四十五的车上班;五点半出公司的话,我最早可以在八点二十下车到家。

插空做的视频

所以即使正点出公司,我也没有时间在工作日做视频。所以从工作开始,所有的视频都是在礼拜六日抽空录制的。这也是为什么我不再提供字幕了。没时间打轴维护,也懒得在休息日做这么多工作了。

如果你是从b站关注过来的,你应该还记得我在去年八月份时候发过一条动态,就是更新频率从周更调整至四周三更。这是有计算的。因为我知道不管我去到什么样的公司,我家的位置也就保证了我在工作日是没有时间做额外的事情的——有时间也只是在坐车途中看看书。所以所有额外的工作都要堆到周末完成。而一个月有四个礼拜,四周三更就意味着每个月能空出来一个星期。我又没指定四周三更是哪三周更,所以这一个礼拜有着很大的价值:

  • 如果这个月没什么出差也没什么事,那么空出来的这个礼拜可以录一个视频做备用。
  • 如果有出差,那么出差占用的那个礼拜末正好就是四周三更中不更新的那一周,或者直接使用备用视频发布。

事实上也是这样。在这半年里,我已经使用过几个备用视频了,你可以通过结尾来判断。

很少更新的博客

这半年里边,我视频内容更多的是在进行看板主题的解答。这一部分的内容我个人感觉还真不值得写一篇文章来保存,所以也就没有跟随视频的更新而更新。

即使是自己产出的内容,就现在的情况来看也不是很有时间把视频落到文字上面。

不过之后可能就会有所变化了。为什么呢?因为我想变一变我的流程了——文字不是记录,而是草稿。

也就是说,在确定了视频主题后,先落实到文字,再做成视频。相对于现在临场发挥的录制法,这样兴许还会节省不少剪辑衔接的时间。

啊不说了,明天又该上班了。就祝这里的各位新年(公历)大吉吧。

虽然Dedipath的终身优惠让我可以以每月2.6刀的价格拥有一台双核、1G内存、100G存储、双ip的服务器。不过这么一段时间下来,还是在一些地方感觉有那么点儿不舒服:

  • OVZ架构,内核版本只能用默认的2.6
  • 往大陆直连速度不快(虽然做了加速)
  • ssh经常会被断开(大概是因为经常性的25%的丢包率)

所以,我前两天终于是给它给换掉了。你大概不知道,当你看到这篇文章时,这个博客的伺服器已经从Dedipath的德国机房转移到RackNerd的洛杉矶mc机房了。

根据介绍,该机房的的路由对大陆地区还是不错的。目前中国电信已经加入了cn2线路直连,虽不保证cn2,但相比之前没有加入要好;另外洛杉矶mc机房一直对联通支持的比较友好,联通169骨干直连;移动线路相对弱一点走的也是联通骨干。

那我这台服务器的配置怎么样呢?

3核、2G内存、75G硬盘、月流量2T。

至于速度,北京鹏博士ping出去延迟在200ms左右,下载基本保持在800kb~1M,而这是在没有开启bbr加速的情况下测试的。要打开了bbr,你就琢磨去吧。

没错,这个服务器能打开bbr,这意味着它的内核可以被升级到4版本以上,也就意味着我可以随意调整内核版本,也就说明这个机器是KVM的!

哇,3核2G,75G存储,还是KVM虚拟化,更有cn直连,如此美好的东西价格如何呢?

说出让你死心的价格吧:月缴9.59刀。我又附加了一个ip,所以月缴10.59刀(合74.3)。

当然,它原本应该是这么贵的。

实际上,现在有月缴模式终身5折的优惠。所以我这机器实际月缴5.29刀。按现在汇率算,38块钱一个月!想一想,38块钱就买到了一个三核2G加上75G存储的双ip、KVM虚拟化服务器,而这些钱买腾讯云能买到啥?至少你的带宽就只有可怜的1Mbps(核算过来从服务器下载数据速度最高128k);而6刀买国外服务器又能买到啥样的?要想kvm的话,撑死1核1G了吧?

这么看,超值了啊!

比我这个配置低的还有两个KVM方案:

  • 单核512M、30G存储、500G流量,只能年缴23刀
  • 双核1G、50G存储、1T流量,月缴5.59刀,加一个终身5折优惠,月缴才1块多美元啊!

要是最近想买服务器,快去!

购买传送门:

双核1G+50G存储

我的同款

优惠码(我也不知道啥时候失效,所以尽快):zhujicepingcom50mo

记得改成月缴呦~

感谢原插件(WikimoeBangumi)的创作者 广树,我所做的仅仅是在其基础之上进行了些许改动而已。
不想看废话的,就请直接拉到最后。

Übermorgen/Typecho追番插件-B站来源


最近更新

  • 1.0.0.2010, 2020.10.25更新

    • 进一步避免jQuery对主题的依赖
    • 支持自定义每页数量
    • 支持翻页按钮自定义
  • 1.0.0.207, 2020.7.12更新

    • 隔离jquery依赖
  • 1.0.0.204, 2020.4.22更新
    追番信息分页显示,每页30个
  • 1.0.0.202, 2020.2.8更新
    兼容伪静态站
  • 1.0.0.201c, 2020.1.20更新

    1. 进一步撤销了no-referrer标记
    2. 现在番剧封面不直接从b站获取了,会保存到服务器供使用

    注意:因为现在需要下载封面到服务器,所以设置好插件后应先访问一次以构建封面缓存。时间可能较长,耐心等待。

  • 1.0.0.201b 20200116更新
    新增:番剧块背景可调(番剧封面/空白)
    更新请先禁用再启用
  • 1.0.0.201 20200115更新

    1. 修复了评论与番剧封面不兼容的问题
    2. 优化了载入速度。理论上每多45个番剧,载入速度能提升2倍
    3. 现在的番剧封面默认走https协议了

一、为什么想做这个

自打从WP转到Typecho,我就突然有了浏览独立博客的习惯。但博客内容并不是我浏览的重点所在,我更喜欢去看每位博客作者的 关于 页面。真的有意思。

除此之外,我很好奇每个博客的结构。比如都有哪些分类,页面都有什么元素之类的。这关注点有点儿奇怪,不是吗?

但不知是不是我的选择性记忆,我逐渐发现不少的博客都有一个追番页。你说它有什么用吗?我其实没感觉有啥用说实话…所以我也一直没怎么太注意过这种插件。直到我开始应用了看板作为我的进度及备忘工具之后,突然感觉追番页这种有条理的东西,放在那儿也挺有意思的啊。于是便简单搜了搜这类插件。自然,如果你检索过这种插件,那么仅有的两个结果你大概也就知道了:我使用的这个主题的大佬做的熊猫追番,以及WikimoeBangumi。这两个的来源都是 Bangumi 的API,而我从来都是在B站上头(不管是看还是追)的,单开一个账号我也想不起来去打理,又白消耗人家一丁点数据库空间。所以,我便尝试着把WikimoeBangumi改造,用B站的api来实现一个追番插件了。

二、现在成什么样了

每天两小时,连蒙带猜的搞了两天,已经改的差不多了。用抽风Crazy这个头油怪的账号试了一下(不,他并不认识我,之后你会明白为什么可以拿别人账号测试),83个追番加载的速度还算可以接受吧。刨去我的服务器从德国向B站请求数据->B站返回给德国->处理好后将网页发送到圣何塞->圣何塞转送给北京这种由于世界人民大团结而产生的延迟,我认为3秒加载还是可以接受的(这地方我觉得我以后会改一改。我觉得…)

主要更改了哪些呢?

  • api:这是当然的。现在会通过B站来请求追番数据了
  • 登录方式:大佬原本的插件是通过用户名密码,很友好的登陆的。但是B站的第三方登录需要API Key,否则需要破一道图片验证码…这太麻烦了,所以我改成了直接用cookie登录。自然,插件设置页变更成了填写UID和cookie。所以设置的时候有点儿麻烦,但恕我才疏学浅,实在想不到怎么能比较方便的实现登录了…
  • 块显示内容:原本插件会显示中文番剧名、外文番剧名、首播日期、进度。现在更改成了中文番剧名、最后更新的剧集名、首播日期、进度。
  • 进度条显示内容:原本是简洁的当前话数/总话数(类似10/135/未知),但B站的剧集数并没那么规矩,而好在B站api直接提供了一个当前观看状态的值(类似于 已看完第13话已看完PV1看到第2话 1:37这种),顺便为了友好化未知这种冷冰冰的词,所以更改成了观看状态(截掉了具体的观看位置)/共 num 话(类似于 已看完第13话/共 13 话已看完PV1/未完结看到第2话/共 12 话
  • css:稍微的调整了块高度,使其在RAW主题上可以更好地显示;亦调整了图片长宽,避免变形;换成了em单位,对于不同分辨率,显示应该更好一些了?还调整了进度条,现在当番剧未完结时,进度会显示成50%了。
  • (201b新增)css: 块背景可选透明还是番剧封面
  • 函数变更:整体到底是麻烦了还是简单了我也说不清,总之删掉了部分函数,更改了载入追番的逻辑(B站API默认不能直接获取到所有,但是它会返回一个追番总数。所以目前暂时用了一个简单粗暴的解决方案:分多次获取,然后全部显示)(204取消了这个粗暴的逻辑)分页获取,提供上下翻页按钮,更改了curl的方法(加入了伪装登录用的各种需要的头),自然也更改了各种变量对应的json字段,最后增加了一个函数,用于截掉详细进度信息。
  • (201c新增)函数:增加了下载封面到服务器的方法。现在可以完全规避b站禁止跨域导致的封面403问题了。
  • (2010新增)函数: 可以自定义每页展示的番剧数量以及翻页键按钮样式了。
  • (207新增)依赖:独立了jQuery依赖,使得不再要求主题带有jQuery库,(2010新增)并且包含在插件中,不必再担心获取js速度的问题了。

效果 看这里

三、怎么用?

注意

你的博客根目录下不存在bangumi文件。注意是文件,文件夹是没问题的。因为封面会保存到这个文件夹内,所以如果存在同名文件夹没有关系(共用就好),但文件就不成了。

a、插件部署

clone或下载zip,解压放到你的Typecho文件夹/usr/plugins/,并更改文件夹名为BiliBangumi,启用即可。

b、番剧页

参考WikimoeBangumi的部署方法。只不过语句要改成<?php BiliBangumi_Plugin::output(); ?>

c、插件设置

目前一共两个设置项:UID、cookie。

截止到2010,共有5个设置项:UID、cookie、块背景、每页数量和自定义翻页键。

UID很好说,直接把你的BilibiliUID填入即可。此时会有两种情况:

  • 如果你的追番信息是公开的(即别人可以从你的主页看到你追的番):这时候你的追番页应该就可以显示出追番信息了——除了进度相关是失效的。这就是为什么我可以用头油怪的账号做实验。
  • 如果你的追番信息是隐藏的,或者说你想要显示出追番进度,那么就需要“登录”——也就是填入cookie。

至于块背景,你可以选择使用番剧封面还是默认背景色(默认是透明的);每页数量则定义了每一页中展示的番剧数量,默认是10。

自定义翻页键则属于比较高级的设置项。可通过编写css自定义翻页按钮的样式实现更细致的美化。这里只需使用css中属性: 变量;的语法顺次写入即可。不要回车,回车会触发Typecho设置页面的确定按钮。

d、所以如何获取cookie?

  1. 在Bilibili登录你的账号(电脑网页端,推荐使用Chrome)
  2. 点击头像,进入个人主页(此时网址应该是space.bilibili.com/uid号。如果uid号后面还有一堆字符,删掉即可)
  3. 按下万能的F12,切换到Network标签
  4. 清空一下Network里边的内容,然后F5刷新
  5. 不出意外,此时在Network列表内,应该有一项是以UID为名称的条目。点击它
  6. 弹出一个预览窗格,切换到Headers标签页
  7. Request Headers栏目下,会有一个cookie项目。把这个的值复制下来,粘贴到插件设置页,保存
  8. enjoy

e、疑难解答


Q: 封面获取逻辑

A:因为使用no-referrer总会间歇性的失效导致封面无法获取,所以从版本201c开始,封面获取逻辑改为从服务器自身获取:

  • 第一次进入到追番列表的番剧,自动去b站下载封面到typecho文件夹/bangumi/
  • 之后每次访问,封面就会从上述的文件夹获取封面文件了

因为需要下载,所以在初次启用插件时,最好在设置好后自己先访问一次以完成封面下载工作。受限于服务器传输速度和追番数量,第一次访问加载的时间可能会很长,耐心等待封面下载完成即可。

想清除封面文件,只需清理typecho根目录/bangumi即可

Q:迷の版本号

A:是一个拼接出的结果:原插件版本号.日期后两位+月份。这里边我只会更新我自己的版本号部分,原插件版本号会一直保留原样,作为基于哪个版本的参照。这是我的习惯,就像我喜欢留点儿缺陷,后期刷版本号的一种执念::(滑稽)

四、更多信息

下载地址:https://gitee.com/stsiao/typecho_bangumi_bili


任何问题,留在这里吧。码云的issue我可能很难想起来去看…

就怕忘了。万一啥时候主题一更新,或者手残一重装,又要重新来一遍可怎么办…

顶栏公告栏

修改效果:顶部导航栏下面滚动自定义的公告;后台的设置外观界面可以自定义公告和滚动速度

编辑当前外观中,在functions.phpfunction themeConfig($form)方法里添加代码

//公告栏设置
$notice = new Typecho_Widget_Helper_Form_Element_Textarea('notice', NULL, NULL, _t('公告'), _t('公告栏,可用一部分html标签'));
$form->addInput($notice);
$speed = new Typecho_Widget_Helper_Form_Element_Textarea('speed', NULL, NULL, _t('公告游动控制'), _t('设置公告文字游动速度'));
$form->addInput($speed);

然后,在header.php</nav>下增加公告栏位

<!-- 公告牌 -->
<div id="bbs">
    <marquee class="nav-link" scrollamount=<?php $this->options->speed(); ?> onmouseover=this.stop() onmouseout=this.start() style="line-height:18px;">  
</div>

<!-- 下面这个脚本,可以实现公告滚动几次之后自动隐藏 -->
<!-- 如果没有这个需求,可以不用;上方div的id也可以不用 -->
<!-- 用的话,在marquee标签里增加loop="数字"来给出循环次数 -->
<script>
    function hideboard(){
        bbs.style.display="none"
    }
</script>

修正https导致的问题

可能只在cloudflare使用flexible模式时候才需要修改。

具体看这里吧

获得评论者正确的ip地址

只需要在网站根目录的config.inc.php中,增加/修改一个字段即可:

/** IP地址来源 */
define('__TYPECHO_IP_SOURCE__', 'HTTP_X_FORWARDED_FOR');

/** 具体需要看phpinfo的PHP Variable里边能展示真正ip的字段 */

Typecho支持PHP7的修正

由于PHP7的一部分函数被取消,导致Typecho默认并不能支持PHP7.但只需要将根目录/config.inc.php中的$db = new Typecho_Db('Mysql', 'typecho_');更改为$db = new Typecho_Db('Pdo_Mysql', 'typecho_');,保存即可。

RAW主题去掉日志/说说切换栏

index.php中,带有“日志”和“说说”两个div删掉即可。

RAW主题,文章列表页顶栏修正

当把typecho的主页设置为静态页面时,文章列表(就是默认的首页)的顶栏会置空。应该是开发时没有注意到这个问题。
修复也很简单,在index.php中,将

<?php if ($this->is('index')): ?><!-- 页面为首页时 -->
最近文章
<?php if...

一句的if条件加上$this->is('front'),即条件语句变为

<?php if ($this->is('index') || $this->is('front')): ?><!-- 页面为首页/文章列表页时 -->

保存即可。

Access插件,控制面板仅管理员账号显示

  • 编辑Access的plugin.php文件,将active方法中的第2行最后一个参数修改为administrator,即改变成
Helper::addPanel(1, self::$panel, _t('Access控制台'), _t('Access插件控制台'), 'administrator');
  • 注释adminFooter方法中的所有行
  • 保存。如果不生效,则重新应用插件

RAW主题,增加前台注册页

最终效果:点击弹出登录窗口后,拥有链接导向注册页。点击后弹出注册窗口,用户可以输入用户名和邮箱注册,之后跳转到后台。

修改RAW主题的header.php文件

1、修改登录页,增加注册页链接

  • 找到action="<?php $this->options->loginAction()?>的form表单,在文本中加入注册页的链接:
<a style="text-decoration: underline" data-fancybox="" data-src="#hidden-register-form" href="javascript:;" target="_blank">注册</a>

2、增加注册表单

相同文档里,增加下述代码:

<div id="hidden-register-form" class="login-form" style="display:none">
    <form action="<?php $this->options->registerAction();?>" method="post" name="register" role="form">
        <p>注册</p>
        <p>
            <input type="hidden" name="_" value="<?php echo $this->security->getToken($this->request->getRequestUrl());?>">
            <input type="text" name="name" placeholder="用户名" required/>
        </p>
        <p>
            <input type="email" id="mail" name="mail" placeholder="邮箱" required/>
        </p>
        <p style="font-weight: bold; color: red">
            成功后请立刻修改密码!否则随机密码你是记不住的!
        </p>
        <button type="submit" name="loginsubmit" value="true">注册</button>
    </form>
</div>

保存即可。

随便看看功能

整合在热门文章插件中,可共同启停用。最终显示在电脑端左栏中。

  • 在热评插件的plugin.php中,增加功能:
public static function outputRandomPosts() {
    $archive = Typecho_Widget::widget('Widget_Archive');
    $pluginOpts = Typecho_Widget::widget('Widget_Options')->plugin('TePostViews');
    $sortBy = $pluginOpts->sortBy;
    $hotNums = $pluginOpts->hotNums;
    $minViews = $pluginOpts->minViews;
    $linkClass = $pluginOpts->linkClass;
    $hotNums = intval($hotNums) <= 0 ? 8 : $hotNums;
    $minViews = intval($minViews) <= 0 ? 0 : $minViews;
    $linkClass = strlen($linkClass) > 0 ? 'class="'.$linkClass.'" ' : '';
    $db = Typecho_Db::get();
    $select = $db->select()->from('table.contents')
        ->where('table.contents.type = ?', 'post')
        ->where('table.contents.status = ?', 'publish')
        ->order('', 'RAND()')
        ->limit($hotNums);
    $rows = $db->fetchAll($select);
    foreach ($rows as $row) {
        $row = $archive->filter($row);
        echo '<span><a ' . $linkClass . 'href="' . $row['permalink'] . '" title="' . $row['title'] . '">' . $row['title'] . '</a><br>
        <span style="margin-right:1em"><i class="fa fa-eye"></i>&nbsp;'.$row['viewsNum'].'</span>
        <span><i class="fa fa-comment"></i>&nbsp;'.$row['commentsNum'].'</span></span>';
    }
}
  • RAW主题的nav-left.php文件中,在nav标签合适位置增加下述代码:
<aside>
    <div id="hot-posts" style="animation-delay:0.4s">
        <span><i class="fa fa-random"></i> 随便看看</span>
        <?php TePostViews_Plugin::outputRandomPosts(); ?>
    </div>
</aside>

Access插件,兼容ipv6地址记录

通过直接记录ip,而不使用ip2long来保存。性能会下降

数据库:

access_log表中,修改ip列为varchar(100)

插件:

page/console.php: 类似于Access->long2ip()的字段全部只保留ip变量$log['ip']

Access_Core.php: 注释所有$ip = bindec(decbin(ip2long($ip)));

Access_IP.php: $nip2 = pack('N', ip2long($nip));改为$nip2 = pack('N', $nip);

编辑文章时增加标签选择列表

来源:Typecho Wiki

在typecho目录admin下找到write-post.php文件并进行编辑,在其中找到代码(大概在94行左右):

<p><input id="tags" name="tags" type="text" value="<?php $post->tags(',', false); ?>" class="w-100 text" /></p>

在这段代码后面增加如下代码:

<div id="exist-tags">
<p style="background: #fff;border: 1px solid #D9D9D6;display: block;padding: 2px 4px;">
<?php
$stack = Typecho_Widget::widget('Widget_Metas_Tag_Cloud')->stack;
$i = 0; 
while (isset($stack[$i])) {
  echo "<a id=\"mydiv$i\" style=\"cursor:pointer;padding: 0px 6px;margin: 2px 0;display: inline-block;\" onclick=\"mytag=document.getElementById('mydiv$i');mytag.style.backgroundColor='#E9E9E6';t=document.getElementById('tags').value;c=t?',':'';document.getElementById('tags').value=t+c+'",$stack[$i]['name'],"'\">",$stack[$i]['name'], "</a>";
  $i++;
  if (isset($stack[$i])) echo "  ";
}
?>
</p>
</div>

Typecho修改头像地址

现在gravatar的地址已经不可连接,所以替换为镜像源以确保头像可以正常显示。

前往网站根目录/var/Typecho/Common.php,将gravatarUrl方法中的网址按规律修改即可。具体镜像源可以参考知乎文章这个博客

一直用Cloudflare作为我这个域名的DNS和CDN。一来,我的服务器在德国,不能备案。所以虽然可以用国内的域名解析,但不能用国内的CDN,访问速度必然会是一个问题;二来,Cloudflare的CDN是免费的。免费的东西谁不喜欢::(阴险)

因为本身我这个博客也申请过ssl证书,而Cloudflare之前的ssl设置也一直使用的Full(strict),然后从CDN到我这博客的后台都做了强制的https跳转。一直用的也好好的。直到昨天…

不知道脑子哪根筋抽了,想把我的子域名都做上CDN。但Cloudflare的Full模式要求域名要有证书,也要有Cloudflare的证书。

Cf的证书好说,免费申请一个就可以随便用,只要主域名是一个就行;但我自己的证书不行啊,只授权到了www这个下面。所以如果这样的话,就不得不再申请几个证书来用。太麻烦了…就不如把Cf的SSL降到Flexible来用来得快。


Cf的SSL等级有4个:Off、Flexible、Full和Full(Strict)。区别看图


然后,满心欢喜的把我的很多二级域名都打开了CDN。再来ping一下:

完美。ping到的ip已经是Cf的CDN地址了。加速的同时,我的真实ip也已经被隐藏了。其实本身我的真实ip也是禁ping的…所以就算知道了,如果想用ping来验证大概也是不可能的

但随之而来的就是对这个正经的HTTPS站点一些坑爹的善后了…

一、重定向次数过多

一开始没发现这个问题,直到在满意的离开我那些带有小绿锁的二级域名站,转到www下面时…

打开控制台看跳转(用到了Firefox。因为火狐不会提示这个错误而是会一直跟着跳转走,直到内存耗尽),发现访问地址不断的在http和https之间来回跳跃。

仔细阅读SSL的帮助,发现对Flexible的解释中提到了一点:

Note: You may encounter a redirect loop with some origin configurations.

为什么呢?往前看一看:

Visitors will be able to access your site over HTTPS, but connections to your origin will be made over HTTP. 

所以说,使用flexible时,浏览器请求HTTPS到cf,而cf则请求HTTP到我的服务器上。而对于www这个网址,我之前又配置过强制HTTPS,也就是说,cf通过HTTP链接服务器的请求全部被跳转到了HTTPS,但cf又把它拉回了HTTP。这循环便形成了。

明白了原因,那解决就很好办了。因为我是用宝塔的,所以直接去这个网站的SSL设置,将强制HTTPS关掉,便万事大吉了。

直到我想登录的时候…

二、登录不作用

什么现象呢?当我想登陆时,输入好用户名和密码后点击登录,页面会刷新一下,然后我填写的东西便被吞噬了。

仿佛无事发生。

可还行::(阴险)

这我可是真的没头绪了…毕竟在Full模式时候都没出现过这种问题,怎么等级松下来了,反而登录不了了…

直到搜到了这个博客的文章,提到了个解决方案,就是在config.ini.php下加入一行:

 /** 开启HTTPS */
define('__TYPECHO_SECURE__',true);

虽然这个博主的问题是评论不可用,我这是登录不可用,但都是不可用,所以就死马当活驴医,试试吧。

然后…就可以了…

我所有二级域名都可以愉快的使用CDN和HTTPS了。

视频点此

如果你看过了上次的视频,那么现在你的服务器应该已经被你赋予了运行网站的能力了。那么,我们怎样才能快速的搭建一个个人网站出来呢?今天着重来看看这个问题。

当然,你完全可以自己来写——只要你有时间来做这件事。但从零开始这东西,又难又麻烦,就不如利用现有的一些解决方案来实现对不对。那么,现如今都有哪些解决方案可以供你使用呢?

很多。所以我也不可能都介绍一遍。找一些非常容易上手的方案来介绍,我说着也省事你听着也明白,两全其美。

WordPress

一个非常知名的方案——WordPress。

这是一个可以算得上是全能型的解决方案了。它可以让你轻松搭建诸如论坛、网店、CMS等各种类型的网站——即使WordPress最初是以个人博客的身份出现的。

WordPress的用户规模很庞大,在百度上面以WordPress为关键词进行搜索,可以看到成千上万条相关的结果。此外,如果关注一下网站和大型博客的页脚——好像大型博客这词听着有点儿怪…但我也不知道怎么形容那种内容庞大、流量也大的信息发布平台——你会发现有不少都会留下一句:Powered by WordPress。可见WordPress这老大哥在业界的地位。

它为什么可以这么流行?首先,插件系统庞大,这使得管理员可以通过WP很方便搭建各种类型的网站;其次,部署方便。方便到什么程度,我们现在就来看一看。

在这之前,默认你是跟着我上次的视频,是个宝塔用户啊。毕竟我面向新手,图形化终归会更亲民一些。

  • 进入宝塔面板,选择网站—添加站点
  • 弹出窗口,这里有几个注意的地方

    • 想必你还没申请域名。所以在域名这里直接填入你服务器的IP地址即可
    • 根目录的文件夹名称是可以自定义的,可以随便修改
    • FTP可以不创建,毕竟有宝塔面板,用不到FTP来管理文件。不过对于文件夹操作,还是FTP更方便一些
    • 数据库选MySQL,版本应该只有一个,用户名密码设置好
    • PHP版本选择5.6,应该也只有一个
    • 提交,这时会告诉你一些用户名和密码,尤其记住数据库的各种信息
  • 现在在网站的根目录应该可以看到刚创建的文件夹了——不出意外,应该是/www/wwwroot/下面有一个文件夹,进入
  • 现在去往WordPress官网下载最新的WP,最好用tar.gz方便一会儿操作。另外为了避免下载再上传,可以复制下载链接,切换到刚刚的宝塔面板,点击远程下载,直接将文件下载到服务器上。当然如果没有宝塔也无所谓,终端命令下面的wget同样可以做到
  • 现在回到宝塔面板的首页,启动底部功能区的宝塔SSH终端,进行下述操作

    • cd命令切换到网站根目录
    • tar -xzvf 下载的文件名,将压缩包解压到网站根目录下
  • 好了,现在打开浏览器,输入ip,回车,WordPress的部署界面是不是出现了呢?根据提示填入,确定。一个新的WordPress站点出现了

这里可能看起来比较繁琐。主要是因为考虑到你可能用的是Windows系统。如果你也使用Linux,完全可以在文件管理器的地址栏输入sftp://ssh的用户@地址:端口号来挂载服务器磁盘,一切操作就好像在自己电脑上一样,简单明了。

有没有被Linux吸引到?

Typecho

使用WordPress,非常大的好处,就是如果有问题,百度可以很方便的找到解决方法。但正限于其功能强大插件繁多,以至于其在一些低配置的服务器上(VPS、树莓派等等)运行速度比较缓慢,从而使得网站的浏览体验变差。如果你没有很多的建站需求,仅仅是想搭建一个自己的博客,那么Typecho这个方法可能是更好的选择。

Typecho有一个最大的特点:开发进度异常缓慢——十多年了,刚刚到1.1版本(17年10月释放的最新版本)。但正是因为其开发慢,所以插件们不需要频繁的更新以兼容新版本,也使得功能的追加基本为0。所以到现在typecho仍然是一个完全专注于个人博客的一个系统。更简介的功能使得其在同等硬件配置条件下,其执行速度要优于WordPress,特别是在低配置的VPS上。

其部署过程与WordPress几乎相同,所以这里就不再说明了。


两者各有优劣。你要怎么选择呢?

我觉得上文我已经给出大概的答案了:如果你需要搭建很多种类型的网站,有很多的功能需求,那么使用WordPress绝对是最好的选择;反之,如果只是想做一个个人的博客,那么Typecho的轻量快速同样会让你眼前一亮。

但是,市面上的建站方案千千万,这里提到的这两个仅仅是动态站家族的两名成员,静态博客的方案一样很多。但是由于静态博客要求每次编写好一篇文章之后,需要手动执行生成网页的命令并上传到服务器,没有太多的精力来维护,或者初次接触个人博客的话,还是动态站来的更直接一些。

至于插件和主题,无论是WordPress还是Typecho都可以很方便的安装使用,这里自己探索一下就可以了。

建立一个个人博客是不是很简单呢?那么服务器还能干什么,我下次接着说。