数据库准备工作(宝塔版)
- 安装然后进入PostgreSQL管理器。
- 新建数据库:
# 数据库名
typechodb
# 用户名
typechouser
# 权限:指定ip网段
172.17.0.2,172.17.0.3
# 然后复制密码即可
正式部署
- 拉取docker镜像
docker pull joyqi/typecho:1.2.0-php7.4-apache
# 或者
docker pull dockerproxy.com/joyqi/typecho:1.2.0-php7.4-apache
docker tag dockerproxy.com/joyqi/typecho:1.2.0-php7.4-apache joyqi/typecho:1.2.0-php7.4-apache
- 运行镜像
- 注意邮箱最好注册过对应的头像
- 注册网站:https://cn.gravatar.com/
- 中国镜像代替网站:https://cravatar.cn/
- 如果用中国镜像,可以用国内的邮箱,比如qq邮箱。
docker run \
--name typecho-server \
--restart=always \
-p 9000:80 \
-v /data/typecho:/app/usr \
-e TYPECHO_INSTALL=1 \
-e TYPECHO_USER_NAME=tlntin \
-e TYPECHO_USER_MAIL=TlntinDeng01@Gmail.com \
-e TIMEZONE=Asia/Shanghai \
-e TYPECHO_DB_ADAPTER=Pdo_Mysql \
-e TYPECHO_SITE_URL=https://http5.cn \
-e TYPECHO_DB_HOST=10.0.8.2 \
-e TYPECHO_DB_USER=typechouser \
-e TYPECHO_DB_PASSWORD="xxxxx" \
-e TYPECHO_DB_DATABASE=typechodb \
-e TYPECHO_DB_PORT=5432 \
-d joyqi/typecho:1.2.0-php7.4-apache
- 开启https
- 配置nginx反代
location / {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Nginx-Proxy true;
proxy_cache_bypass $http_upgrade;
proxy_pass http://localhost:9000/;
}
- 修改config.inc.php,使得所有文件默认开启https
docker exec -it typecho-server /bin/bash
echo "define('__TYPECHO_SECURE__',true);" >> config.inc.php
docker restart typecho-server
安装主题
Typecho 博客主题安装:
下载Typecho主题,解压得到一个文件夹
通过FTP将整个文件夹上传至usr/themes/目录下
登陆自己的Typecho博客后台,在“控制台”的下拉菜单中选择“外观”选项进入已安装主题列表
将鼠标移动要上传的主题上传,点击“激活”即可使用
git clone https://github.com/dyedd/lanstar.git -b 4.0.2
# 或者
git clone https://ghproxy.com/https://github.com/dyedd/lanstar.git -b 4.0.2
# 然后将文件丢到主题目录
docker cp lanstar typecho-server:/app/usr/themes
- 后台》管理》分类》编辑分类中,在分类描述里填入你想要自定义的图片地址。否则分类不显示图片。描述填入内容如下:
https://q1.qlogo.cn/g?b=qq&nk=371043382&s=100
- 控制台》设置外观》将主题改成这个主题。
- 控制台》设置外观》侧边栏设置》将头像改成上面的网站图片, 然后名称改成你的名称。
语雀同步插件
git clone https://github.com/Juexe/YuqueSync.git -b v1.2.1
# 或者
git clone https://ghproxy.com/https://github.com/Juexe/YuqueSync.git -b v1.2.1
docker cp YuqueSync typecho-server:/app/usr/plugins/
- 然后去插件启用,并且获取token。
# Personal Access Token
xxxxxx
# Login User
xxxxx
- 关于图片无法显示问题,在页面 header 中加入如下 meta 即可绕过防盗链:
- 可以在设置外观》开发者设置》自定义头部信息里面加入。
<meta name="referrer" content="no-referrer">
Latex插件
git clone https://github.com/gogobody/TypechoLaTeX.git
# 或者
git clone https://ghproxy.com/https://github.com/gogobody/TypechoLaTeX.git
# 拷贝到插件
docker cp TypechoLaTeX typecho-server:/app/usr/plugins/
多域名(可选,建议设置)
- 复制配置文件
docker cp typecho-server:/app/var/Widget/Options.php .
- 搜索站点信息
TYPECHO_SITE_URL
# 找到下面这段
/** 初始化站点信息 */
if (defined('__TYPECHO_SITE_URL__')) {
$this->siteUrl = __TYPECHO_SITE_URL__;
} else if (defined('__TYPECHO_DYNAMIC_SITE_URL__') && __TYPECHO_DYNAMIC_SITE_URL__) {
$this->siteUrl = $this->rootUrl;
}
# 下面的代码加到这里
- 添加你的其他域名(注意,只支持开启Https的域名)
if($_SERVER['HTTP_HOST']=='http5.cn'){
$this->siteUrl = 'https://http5.cn';
}
if($_SERVER['HTTP_HOST']=='http6.cn'){
$this->siteUrl = 'https://http6.cn';
}
- 复制文件回去
docker cp Options.php typecho-server:/app/var/Widget/
docker restart typecho-server
头像不显示或者不匹配问题
将以下代码加到站点根目录的 config.inc.php 中即可
docker exec -it typecho-server /bin/bash
echo "define('__TYPECHO_GRAVATAR_PREFIX__', 'https://cravatar.cn/avatar/');" >> config.inc.php
docker restart typecho-server
备案相关
关闭点赞,评论功能
- 根据公安备案要求,个人网站不提供交互功能(包含点赞,评论等)
- 可以用grep命令搜一下评论,点赞相关字眼
grep "评论" -r ./lanstar/*
grep "点赞" -r ./lanstar/*
vim ./component/post.content.php
- 删除下面的代码
<div class="article-action-item">
<a id="comment" href="#comment" data-bs-toggle="tooltip" data-bs-placement="bottom"
data-bs-title="评论">
<svg class="icon" aria-hidden="true">
<use xlink:href="#icon-liuyanban"></use>
</svg>
</a>
</div>
<div class="article-action-item" id="agree-btn" data-cid="<?php $this->cid(); ?>"
data-bs-toggle="tooltip" data-bs-placement="bottom"
data-bs-title="点赞">
<svg class="icon" aria-hidden="true">
<use xlink:href="#icon-xihuan"></use>
</svg>
<?php $agree = $this->hidden ? array('agree' => 0, 'recording' => true) : utils::agreeNum($this->cid); ?>
<span class="agree-num"><?= $agree['agree']; ?></span>
</div>
- vim
lanstar/component/index.article.php
- 删除下面这两段
<div class="commentNum">
<svg class="icon" aria-hidden="true">
<use xlink:href="#icon-pinglun"></use>
</svg>
<?php $this->commentsNum('0', '1', '%d'); ?>
</div>
<div class="like" data-cid="<?php $this->cid(); ?>"
data-bs-toggle="tooltip" data-bs-placement="right"
data-bs-title="喜欢">
<?php $agree = $this->hidden ? array('agree' => 0, 'recording' => true) : utils::agreeNum($this->cid); ?>
<svg class="icon" aria-hidden="true">
<use xlink:href="#icon-dianzan"></use>
</svg>
<b class="agree-num"><?= $agree['agree']; ?></b>
</div>
vim lanstar/component/page.content.php
- 删除下面的评论统计
<div class="post-info-icon">
<svg class="icon" aria-hidden="true">
<use xlink:href="#icon-pinglun"></use>
</svg>
<?php $this->commentsNum(); ?>条评论
</div>
vim lanstar/component/post.content.php
- 删除下面的评论统计
<div class="post-info-icon">
<svg class="icon" aria-hidden="true">
<use xlink:href="#icon-pinglun"></use>
</svg>
<?php $this->commentsNum(); ?>条评论
</div>
vim lanstar/layout/right.php
- 删除右侧的评论量统计
<div class="item" title="累计评论数">
<span class="num"><?= number_format($item->publishedCommentsNum); ?></span>
<span>评论量</span>
</div>
- 覆盖主题
docker cp lanstar typecho-server:/app/usr/themes
填写ICP备案号
- 进入后端管理页面
- 控制台-设置外观-公共设置-网站备案号
- 如果忘记了自己的备案号,可以去该网站输入你的域名进行查询。https://beian.miit.gov.cn/
填写公安备案号
- 进入后端管理页面
- 控制台-设置外观-开发者设置-自定义脚部信息
- 下面是一个简单的示例,将备案号码换成你的就可以了。
<img src="https://pic.imgdb.cn/item/64a198cd1ddac507cc863cf6.png"><a class="jgawb" href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=44010402003054" target="_blank" data-v-057bc46e="" style="color: rgb(116, 154, 227) !important;"> 粤公网安备44010402003054号</a>
- 如果忘记了自己的公安备案号,可以来这里查询。https://beian.mps.gov.cn/?#/query/webSearch