Typecho 是一款基于 PHP 的博客软件,旨在成为世界上最强大的博客引擎。Typecho 是根据 GNU 通用公共许可证 2.0 发布的。
主要特点
- 支持多个数据库(MariaDB、MySQL、SQLite、PostgreSQL)
- Markdown 支持
- 插件支持
- 主题支持
- 自定义字段
- 自定义页面
Docker容器部署
分两个部分,一个是Typecho,另一个是数据库Mariadb,独立数据库是为了将数据库作为公共数据库使用,方便其它容器链接和管理。
涉及到的资源
typecho:
- 官网:https://typecho.org
- Github:https://github.com/typecho/Dockerfile
- hub.docker.com:https://hub.docker.com/r/joyqi/typecho/tags
- mariadb
Linuxserver.io:https://docs.linuxserver.io/images/docker-mariadb/#usage - adminer
hub.docker.com:https://hub.docker.com/_/adminer/tags
测试主题
老朱开源主题WaterDrop:https://github.com/ZShijun/WaterDrop
- demo:https://ilaozhu.com
木灵鱼儿开源主题Typecho_Theme_JJ:https://github.com/mulingyuer/Typecho_Theme_JJ
开源主题Joe:https://github.com/HaoOuBa/Joe
- demo:https://78.al
1. 博客系统Typecho
docker-compose
version: '3.7'
services:
typecho:
image: joyqi/typecho:nightly-php8.2-apache
container_name: typecho-server
restart: always
environment:
- TYPECHO_SITE_URL=https://your-domain.com # 替换为您自己的域名
ports:
- 8080:80 # 端口只是一个例子,你可以把它改成任何你想要的端口 `8080`
volumes:
- /var/typecho:/app/usr # 将本地目录挂载到容器目录以获取持久性数据
docker run(可选,需要命令行操作)
# 拉起镜像
sudo docker pull joyqi/typecho:nightly-php8.2-apache
# 运行docker run命令
sudo docker run -d --name typecho-server -e TYPECHO_SITE_URL=https://your-domain.com -v /var/typecho:/app/usr joyqi/typecho:nightly-php8.2-apache
2. 数据库Mariadb
docker-compose
---
version: "2"
services:
mariadb:
image: linuxserver/mariadb
container_name: mariadb
environment:
- PUID=1000
- PGID=1001
- MYSQL_ROOT_PASSWORD= # 密码
- TZ=Asia/Shanghai
volumes:
- ./config:/config
ports:
- 3336:3306
networks:
- mynet
restart: unless-stopped
# 可视化管理工具 adminer
adminer:
image: adminer
container_name: adminer
environment:
- ADMINER_DEFAULT_SERVER=mariadb
ports:
- 8030:8080
networks:
- mynet
restart: unless-stopped
networks:
mynet:
external:
name: mynet
程序安装
1. MariaDB 创建数据库typecho
2. 初始化 Typecho
1. 易配置失败点:数据库适配器选择注意。
如果选择Mysql原生函数适配器,会报错error
,而MariaDB旨在保持与MySQL的高度兼容性,要选择pdo驱动Mysql适配器
。
- 新上传主题启用失败,预览不显示,读取不了文件
index.php
解决办法:修改新主题权限,给予公共读取权限。
可以安装应用1panel,这个是服务器管理工具。
其它补充
亲测版本注意错误:
这个镜像版本在配置SQlite数据库时会一直报错,原因是安装程序无法自动生成sqlite数据库文件。joyqi/typecho:nightly-php7.4-apache
解决办法:
在官方仓库有解决办法:https://github.com/typecho/Dockerfile/issues/29
进入容器输入命令:
chown -R www-data:www-data /app/usr
- 如果选择SQlite数据库,直接选择 SQlite 原生函数适配器。但这个数据库很多主题不支持,大多主题是Mysql数据库开发的。
庐山真面目
前两年也安装过,后来迁移服务器就停了一直没再开。现在算是重拾起来但发现快忘得差不多了,一些易出错的地方花了我不少时间排查错误。故记录下来以便查询。
插件扩展
1. LZStat
基于 typecho 的浏览量、点赞量统计插件。
- 支持浏览量统计与显示
- 支持点赞量统计与显示
- 支持文章列表自定义排序
- 支持浏览量、点赞量异步接口调用
- 实现浏览量、点赞量当天不重复计算
- 支持点赞在当天取消
- 实现防抖策略,避免多次重复提交
- 实现榜单查询功能
评论0
暂时没有评论