PageSourceSearch

https://www.hestudio.net/assets/set-waline-on-hexo.html-BcKetuX4.js

js hestudio.net collected 2026-09-24 10:37:09 UTC 25,543 bytes, 128 lines download raw bytes

1import{_ as s,c as a,f as e,o as i}from"./app-D7CCjthX.js";const l={};function p(t,n){return i(),a("div",null,[...n[0]||(n[0]=[e(`<p>这几天迁移服务器的,心想:我**(文明用语)都有服务器了,还用那个难用的 valine 吗?所以我准备从 valine 迁移到青出于蓝而胜于蓝的 waline</p><p><a href="https://waline.js.org" target="_blank" rel="noopener noreferrer">Waline</a> 是一款从 <a href="https://waline.js.org" target="_blank" rel="noopener noreferrer">Valine</a> 衍生的带后端评论系统。可以将 Waline 等价成 With backend Valine.它的强大的自由度吸引力我。这里不多介绍,详细请浏览 <a href="https://waline.js.org" target="_blank" rel="noopener noreferrer">https://waline.js.org</a></p><p>因为咱也是有服务器的人了,所以我们直接全私有部署。详细的方案如以下所示:</p><ul><li>服务端部署到我们服务器</li><li>数据库部署到 MySQL</li></ul><p>其他的部署方案请在 waline 官网查看,这里只讲述独立部署。</p><p>我打算用<code>docker-compose</code>部署到我们的服务器上,那么我们就需要准备<code>docker-compose.yml</code></p><div class="language-yaml line-numbers-mode" data-highlighter="prismjs" data-ext="yml"><pre><code class="language-yaml"><span class="line"><span class="token key atrule">version</span><span class="token punctuation">:</span> <span class="token string">&quot;3.8&quot;</span></span>
2<span class="line"><span class="token key atrule">services</span><span class="token punctuation">:</span></span>
3<span class="line">  <span class="token key atrule">web</span><span class="token punctuation">:</span></span>
4<span class="line">    <span class="token key atrule">image</span><span class="token punctuation">:</span> <span class="token string">&quot;lizheming/waline&quot;</span></span>
5<span class="line">    <span class="token key atrule">restart</span><span class="token punctuation">:</span> always</span>
6<span class="line">    <span class="token key atrule">ports</span><span class="token punctuation">:</span></span>
7<span class="line">      <span class="token punctuation">-</span> 127.0.0.1<span class="token punctuation">:</span>8360<span class="token punctuation">:</span><span class="token number">8360</span></span>
8<span class="line">    <span class="token key atrule">volumes</span><span class="token punctuation">:</span></span>
9<span class="line">      <span class="token punctuation">-</span> $<span class="token punctuation">{</span>PWD<span class="token punctuation">}</span>/data<span class="token punctuation">:</span>/app/data</span>
10<span class="line">    <span class="token key atrule">environment</span><span class="token punctuation">:</span></span>
11<span class="line">      <span class="token comment"># 这里怎么填详见下文</span></span>
12<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>那么我们还需要填写环境,有关环境变量的相关内容因为篇幅太长,所以我直接放传送门 <a href="https://waline.js.org/reference/env.html" target="_blank" rel="noopener noreferrer">https://waline.js.org/reference/env.html</a></p><p>众所周知,HTTP 是明文传输的,而 HTTPS 是密文传输。所以我们想要实现密文传输,就需要 SSL 证书和 Nginx 反向代理。 SSL 证书我们使用 Let&#39;s Encrypt 即可,现在我们要设置的是 Nginx 反向代理。</p><p>这里以宝塔面板为例,</p><ol><li>转到“网站”</li><li>新建一个网站,配置如图所示</li><li>保存,以留备用</li></ol><figure><img src="https://img.hestudio.net/img/2022/12/11/6395a29cf37e7.jpg" alt="填写模板" tabindex="0" loading="lazy"><figcaption>填写模板</figcaption></figure><p>由于我们用的是 MySQL,所以直接跳过传送门上面的内容,直接转到 MySQL 位置。</p><p>这里就有一个问题,就是你必须保证你的数据库在外部能访问,<code>localhost</code>在这里无效(别问我怎么知道的),你需要打开权限才能保证你的数据库在外边能访问,下文主机地址需要填写你的公网 IP 或者域名(像<code>www.hestudio.net</code>这样没有协议头和斜杠的纯域名)</p><div class="hint-container warning"><p class="hint-container-title">注意</p><p>你的数据库在外部能访问,建议你不要用默认的数据库端口号(3306)</p></div><p>初次使用需要向 MySQL 数据库导入一段数据,将以下
12内容复制,另存为以<code>.sql</code>为后缀的文件,然后导入数据库。</p><div class="language-text line-numbers-mode has-collapsed-lines collapsed" data-highlighter="prismjs" data-ext="text" style="--vp-collapsed-lines:15;"><pre><code class="language-text"><span class="line">/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;</span>
13<span class="line">/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;</span>
14<span class="line">/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;</span>
15<span class="line">/*!40101 SET NAMES utf8 */;</span>
16<span class="line">SET NAMES utf8mb4;</span>
17<span class="line">/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;</span>
18<span class="line">/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE=&#39;NO_AUTO_VALUE_ON_ZERO&#39; */;</span>
19<span class="line">/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;</span>
20<span class="line"></span>
21<span class="line"></span>
22<span class="line"># Dump of table wl_Comment</span>
23<span class="line"># ------------------------------------------------------------</span>
24<span class="line"></span>
25<span class="line">CREATE TABLE \`wl_Comment\` (</span>
26<span class="line">  \`id\` int(11) unsigned NOT NULL AUTO_INCREMENT,</span>
27<span class="line">  \`user_id\` int(11) DEFAULT NULL,</span>
28<span class="line">  \`comment\` text,</span>
29<span class="line">  \`insertedAt\` timestamp NULL DEFAULT CURRENT_TIMESTAMP,</span>
30<span class="line">  \`ip\` varchar(100) DEFAULT &#39;&#39;,</span>
31<span class="line">  \`link\` varchar(255) DEFAULT NULL,</span>
32<span class="line">  \`mail\` varchar(255) DEFAULT NULL,</span>
33<span class="line">  \`nick\` varchar(255) DEFAULT NULL,</span>
34<span class="line">  \`pid\` int(11) DEFAULT NULL,</span>
35<span class="line">  \`rid\` int(11) DEFAULT NULL,</span>
36<span class="line">  \`sticky\` boolean DEFAULT NULL,</span>
37<span class="line">  \`status\` varchar(50) NOT NULL DEFAULT &#39;&#39;,</span>
38<span class="line">  \`like\` int(11) DEFAULT NULL,</span>
39<span class="line">  \`ua\` text,</span>
40<span class="line">  \`url\` varchar(255) DEFAULT NULL,</span>
41<span class="line">  \`createdAt\` timestamp NULL DEFAULT CURRENT_TIMESTAMP,</span>
42<span class="line">  \`updatedAt\` timestamp NULL DEFAULT CURRENT_TIMESTAMP,</span>
43<span class="line">  PRIMARY KEY (\`id\`)</span>
44<span class="line">) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;</span>
45<span class="line"></span>
46<span class="line"></span>
47<span class="line"></span>
48<span class="line"># Dump of table wl_Counter</span>
49<span class="line"># ------------------------------------------------------------</span>
50<span class="line"></span>
51<span class="line">CREATE TABLE \`wl_Counter\` (</span>
52<span class="line">  \`id\` int(11) unsigned NOT NULL AUTO_INCREMENT,</span>
53<span class="line">  \`time\` int(11) DEFAULT NULL,</span>
54<span class="line">  \`reaction0\` int(11) DEFAULT NULL,</span>
55<span class="line">  \`reaction1\` int(11) DEFAULT NULL,</span>
56<span class="line">  \`reaction2\` int(11) DEFAULT NULL,</span>
57<span class="line">  \`reaction3\` int(11) DEFAULT NULL,</span>
58<span class="line">  \`reaction4\` int(11) DEFAULT NULL,</span>
59<span class="line">  \`reaction5\` int(11) DEFAULT NULL,</span>
60<span class="line">  \`reaction6\` int(11) DEFAULT NULL,</span>
61<span class="line">  \`reaction7\` int(11) DEFAULT NULL,</span>
62<span class="line">  \`reaction8\` int(11) DEFAULT NULL,</span>
63<span class="line">  \`url\` varchar(255) NOT NULL DEFAULT &#39;&#39;,</span>
64<span class="line">  \`createdAt\` timestamp NULL DEFAULT CURRENT_TIMESTAMP,</span>
65<span class="line">  \`updatedAt\` timestamp NULL DEFAULT CURRENT_TIMESTAMP,</span>
66<span class="line">  PRIMARY KEY (\`id\`)</span>
67<span class="line">) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;</span>
68<span class="line"></span>
69<span class="line"></span>
70<span class="line"></span>
71<span class="line"># Dump of table wl_Users</span>
72<span class="line"># ------------------------------------------------------------</span>
73<span class="line"></span>
74<span class="line">CREATE TABLE \`wl_Users\` (</span>
75<span class="line">
75  \`id\` int(11) unsigned NOT NULL AUTO_INCREMENT,</span>
76<span class="line">  \`display_name\` varchar(255) NOT NULL DEFAULT &#39;&#39;,</span>
77<span class="line">  \`email\` varchar(255) NOT NULL DEFAULT &#39;&#39;,</span>
78<span class="line">  \`password\` varchar(255) NOT NULL DEFAULT &#39;&#39;,</span>
79<span class="line">  \`type\` varchar(50) NOT NULL DEFAULT &#39;&#39;,</span>
80<span class="line">  \`label\` varchar(255) DEFAULT NULL,</span>
81<span class="line">  \`url\` varchar(255) DEFAULT NULL,</span>
82<span class="line">  \`avatar\` varchar(255) DEFAULT NULL,</span>
83<span class="line">  \`github\` varchar(255) DEFAULT NULL,</span>
84<span class="line">  \`twitter\` varchar(255) DEFAULT NULL,</span>
85<span class="line">  \`facebook\` varchar(255) DEFAULT NULL,</span>
86<span class="line">  \`google\` varchar(255) DEFAULT NULL,</span>
87<span class="line">  \`weibo\` varchar(255) DEFAULT NULL,</span>
88<span class="line">  \`qq\` varchar(255) DEFAULT NULL,</span>
89<span class="line">  \`2fa\` varchar(32) DEFAULT NULL,</span>
90<span class="line">  \`createdAt\` timestamp NULL DEFAULT CURRENT_TIMESTAMP,</span>
91<span class="line">  \`updatedAt\` timestamp NULL DEFAULT CURRENT_TIMESTAMP,</span>
92<span class="line">  PRIMARY KEY (\`id\`)</span>
93<span class="line">) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;</span>
94<span class="line"></span>
95<span class="line"></span>
96<span class="line"></span>
97<span class="line"></span>
98<span class="line">/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;</span>
99<span class="line">/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;</span>
100<span class="line">/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;</span>
101<span class="line">/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;</span>
102<span class="line">/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;</span>
103<span class="line">/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;</span>
104<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div><div class="collapsed-lines"></div></div><p>然后按照下面模板填写,以留备用</p><div class="language-yaml line-numbers-mode has-collapsed-lines collapsed" data-highlighter="prismjs" data-ext="yml" style="--vp-collapsed-lines:15;"><pre><code class="language-yaml"><span class="line"><span class="token key atrule">version</span><span class="token punctuation">:</span> <span class="token string">&quot;3.8&quot;</span></span>
105<span class="line"><span class="token key atrule">services</span><span class="token punctuation">:</span></span>
106<span class="line">  <span class="token key atrule">web</span><span class="token punctuation">:</span></span>
107<span class="line">    <span class="token key atrule">image</span><span class="token punctuation">:</span> <span class="token string">&quot;lizheming/waline&quot;</span></span>
108<span class="line">    <span class="token key atrule">restart</span><span class="token punctuation">:</span> always</span>
109<span class="line">    <span class="token key atrule">ports</span><span class="token punctuation">:</span></span>
110<span class="line">
110      <span class="token punctuation">-</span> 127.0.0.1<span class="token punctuation">:</span>8360<span class="token punctuation">:</span><span class="token number">8360</span></span>
111<span class="line">    <span class="token key atrule">volumes</span><span class="token punctuation">:</span></span>
112<span class="line">      <span class="token punctuation">-</span> $<span class="token punctuation">{</span>PWD<span class="token punctuation">}</span>/data<span class="token punctuation">:</span>/app/data</span>
113<span class="line">    <span class="token key atrule">environment</span><span class="token punctuation">:</span></span>
114<span class="line">      <span class="token key atrule">MYSQL_HOST</span><span class="token punctuation">:</span> <span class="token comment"># 填你的数据库主机地址</span></span>
115<span class="line">      <span class="token key atrule">MYSQL_PORT</span><span class="token punctuation">:</span> <span class="token comment"># 填你的数据库端口号</span></span>
116<span class="line">      <span class="token key atrule">MYSQL_DB</span><span class="token punctuation">:</span> <span class="token comment"># 填你的数据库名</span></span>
117<span class="line">      <span class="token key atrule">MYSQL_USER</span><span class="token punctuation">:</span> <span class="token comment"># 填你的数据库用户名</span></span>
118<span class="line">      <span class="token key atrule">MYSQL_PASSWORD</span><span class="token punctuation">:</span> <span class="token comment"># 填你的数据库密码</span></span>
119<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div><div class="collapsed-lines"></div></div><p>现在你需要部署到 Docker,这里以宝塔面板为例,</p><ol><li>进入 Docker &gt;&gt; Compose 模板</li></ol><figure><img src="https://img.hestudio.net/img/2022/12/11/6395a297bc475.png" alt="Compose模板" tabindex="0" loading="lazy"><figcaption>Compose模板</figcaption></figure><ol start="2"><li>点击“添加”</li><li>模板名自定义,内容填入上面写好的 yaml 文件</li></ol><figure><img src="https://img.hestudio.net/img/2022/12/11/6395a29954e67.png" alt="添加模板" tabindex="0" loading="lazy"><figcaption>添加模板</figcaption></figure><ol start="4"><li>保存,并转到“Compose”页面</li><li>点击“添加 Compose 项目”</li></ol><figure><img src="https://img.hestudio.net/img/2022/12/11/6395a29a78b4c.png" alt="添加Compose项目" tabindex="0" loading="lazy"><figcaption>添加Compose项目</figcaption></figure><ol start="6"><li>选择刚才创建的模板,点击添加</li><li>等待一定时间后,转到“容器”页面</li><li>记住这个 IP,过会有用</li></ol><p>服务端的最后一步,配置反向代理,这里还是以宝塔面板为例</p><ol><li>进入网站设置 &gt;&gt; 反向代理 &gt;&gt; 添加反向代理</li><li>如图所示</li></ol><figure><img src="https://img.hestudio.net/img/2022/12/11/6395a29f1ea5d.jpg" alt="模板" tabindex="0" loading="lazy"><figcaption>模板</figcaption></figure><p>最后,访问</p><div class="language-text line-numbers-mode" data-highlighter="prismjs" data-ext="text"><pre><code class="language-text"><span class="line">https://评论系统域名/ui</span>
120<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><p>并注册你的账号,如果注册成功即表示服务端的配置已经完成。</p><p>至此,服务端的配置就算告一段落了。下面开始客户端的配置,这里以 hexo 的 fluid 主题为例。</p><ol><li>编辑主题的<code>_config.yml</code>文件</li><li>打开评论功能,并指定插件为 waline(无需复制,只需编辑对应的内容即可)</li></ol><div class="language-yaml line-numbers-mode" data-highlighter="prismjs" data-ext="yml"><pre><code class="language-yaml"><span class="line"><span class="token comment"># 评论插件</span></span>
121<span class="line"><span class="token comment"># Comment plugin</span></span>
122<span class="line"><span class="token key atrule">comments</span><span class="token punctuation">:</span></span>
123<span class="line">  <span class="token key atrule">enable</span><span class="token punctuation">:</span> <span class="token boolean important">true</span></span>
124<span class="line">  <span class="token comment"># 指定的插件,需要同时设置对应插件的必要参数</span></span>
125<span class="line">  <span class="token comment"># The specified plugin needs to set the necessary parameters at the same time</span></span>
126<span class="line">  <span class="token comment"># Options: utterances | disqus | gitalk | valine | waline | changyan | livere | remark42 | twikoo | cusdis | giscus</span></span>
127<span class="line">  <span class="token key atrule">type</span><span class="token punctuation">:</span> waline</span>
128<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><ol start="3"><li>找到下面 waline 的相关配置</li><li><code>serverURL</code> 为必填项,填写你的评论系统域名</li><li>其他的配置详情详见 <a href="https://waline.js.org/reference/component.html" target="_blank" rel="noopener noreferrer">https://waline.js.org/reference/component.html</a></li></ol><p>保存,部署。如果测试正常,就没有往下看的必要了。</p><p>当然,有的小伙伴遇到了虽然正确配置,但是网页底部的评论还是不显示,这个怎么办呢?因为向默认的 CDN 地址请求 Hexo 必须的<code>waline.min.js</code>时找不到文件(404)。</p><figure><img src="https://img.hestudio.net/img/2022/12/11/6395a2a18e0f4.jpg" alt="返回404" tabindex="0" loading="lazy"><figcaption>返回404</figcaption></figure><p>以 Hexo 的 fluid 主题为例,将主题的_config.yml 底部 CDN 配置的 Waline 改为 heStudio 的 CDN,然后再次部署。</p>`,41)])])}const r=s(l,[["render",p]]),d=JSON.parse('{"path":"/posts/set-waline-on-
128hexo.html","title":"在 Hexo 上使用 Waline","lang":"zh-CN","frontmatter":{"title":"在 Hexo 上使用 Waline","tag":["Docker"],"category":["Linux"],"description":"这几天迁移服务器的,心想:我**(文明用语)都有服务器了,还用那个难用的 valine 吗?所以我准备从 valine 迁移到青出于蓝而胜于蓝的 waline Waline 是一款从 Valine 衍生的带后端评论系统。可以将 Waline 等价成 With backend Valine.它的强大的自由度吸引力我。这里不多介绍,详细请浏览 https:...","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"在 Hexo 上使用 Waline\\",\\"image\\":[\\"https://img.hestudio.net/img/2022/12/11/6395a29cf37e7.jpg\\",\\"https://img.hestudio.net/img/2022/12/11/6395a297bc475.png\\",\\"https://img.hestudio.net/img/2022/12/11/6395a29954e67.png\\",\\"https://img.hestudio.net/img/2022/12/11/6395a29a78b4c.png\\",\\"https://img.hestudio.net/img/2022/12/11/6395a29f1ea5d.jpg\\",\\"https://img.hestudio.net/img/2022/12/11/6395a2a18e0f4.jpg\\"],\\"dateModified\\":\\"2025-03-13T06:15:20.000Z\\",\\"author\\":[{\\"@type\\":\\"Person\\",\\"name\\":\\"undefined\\",\\"url\\":\\"https://www.hestudio.net/about/\\",\\"email\\":\\"[email protected]\\"}]}"],["meta",{"property":"og:url","content":"https://www.hestudio.net/posts/set-waline-on-hexo.html"}],["meta",{"property":"og:site_name","content":"heStudio"}],["meta",{"property":"og:title","content":"在 Hexo 上使用 Waline"}],["meta",{"property":"og:description","content":"这几天迁移服务器的,心想:我**(文明用语)都有服务器了,还用那个难用的 valine 吗?所以我准备从 valine 迁移到青出于蓝而胜于蓝的 waline Waline 是一款从 Valine 衍生的带后端评论系统。可以将 Waline 等价成 With backend Valine.它的强大的自由度吸引力我。这里不多介绍,详细请浏览 https:..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://img.hestudio.net/img/2022/12/11/6395a29cf37e7.jpg"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2025-03-13T06:15:20.000Z"}],["meta",{"property":"article:tag","content":"Docker"}],["meta",{"property":"article:modified_time","content":"2025-03-13T06:15:20.000Z"}]]},"git":{"createdTime":1671603014000,"updatedTime":1741846520000},"readingTime":{"minutes":5.14,"words":1542},"filePathRelative":"posts/set-waline-on-hexo.md","excerpt":"<p>这几天迁移服务器的,心想:我**(文明用语)都有服务器了,还用那个难用的 valine 吗?所以我准备从 valine 迁移到青出于蓝而胜于蓝的 waline</p>\\n<p><a href=\\"https://waline.js.org\\" target=\\"_blank\\" rel=\\"noopener noreferrer\\">Waline</a> 是一款从 <a href=\\"https://waline.js.org\\" target=\\"_blank\\" rel=\\"noopener noreferrer\\">Valine</a> 衍生的带后端评论系统。可以将 Waline 等价成 With backend Valine.它的强大的自由度吸引力我。这里不多介绍,详细请浏览 <a href=\\"https://waline.js.org\\" target=\\"_blank\\" rel=\\"noopener noreferrer\\">https://waline.js.org</a></p>\\n<p>因为咱也是有服务器的人了,所以我们直接全私有部署。详细的方案如以下所示:</p>\\n<ul>\\n<li>服务端部署到我们服务器</li>\\n<li>数据库部署到 MySQL</li>\\n</ul>\\n<p>其他的部署方案请在 waline 官网查看,这里只讲述独立部署。</p>\\n","autoDesc":true}');export{r as comp,d as data};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.