Typecho是MIT协议开源的轻量级PHP博客/内容管理系统(PHP+MySQL/MariaDB/SQLite),核心特点是极简、高效、低资源占用,原生支持Markdown,可扩展主题与插件,支持静态化、多用户、自定义URL、评论系统,适配个人博客/小众站点,部署简单(PHP环境+数据库即可),支持Docker/宝塔面板一键部署,二次开发友好,数据自主可控。


内存占用:90 MB
镜像大小:910 MB
使用感受:8.9 分
1.基础定位:一款基于PHP开发的轻量级开源博客程序,前身为Magike,2008年正式更名,以GPL V2许可证发行。
2.极致轻量:程序本体不足400KB(非Docker项目),核心数据表仅7张,对服务器配置要求低,在低配主机或各类云主机上都能流畅运行。
3.核心功能:原生支持Markdown实时预览,后台为响应式设计,还支持多级分类、自定义字段等实用功能。
4.灵活扩展:通过插件和模板机制扩展功能与外观,无需修改核心代码,可轻松定制博客样式和新增功能。
5.兼容性强:支持MySQL、SQLite等多种数据库,适配跨平台运行,还能兼容BAE、SAE等云主机并支持自动安装。
6.安全稳定:持续更新加固漏洞,有输入过滤等安全机制,GitHub上爱好者提交的代码也让开发版稳定性较优。
7.该项目运行成功后会自动生成3个容器
具体操作
mkdir -p typecho/{data,www} && cd typecho && touch docker-compose.yaml nginx.conf1.自定义路径新建“ typecho ”文件目录,并进入该目录内
2.在“ typecho ”文件目录下,新建“ data ”文件目录和“ www ”文件目录
3.同时,在“ typecho ”文件目录下,再新建“ docker-compose.yaml ”文件和“ nginx.conf ”文件
4.然后依次将以下对应的代码复制粘贴到“ docker-compose.yaml ”和“ nginx.conf ”文件内
① docker-compose.yaml 文件:
version: '3.7'
services:
app:
image: joyqi/typecho:nightly-php7.4-fpm
container_name: typecho-server
restart: always
volumes:
- ./www:/app
environment:
- TIMEZONE=Asia/Shanghai
depends_on:
- db
db:
image: mariadb:10.6
container_name: typecho-mariadb
restart: always
volumes:
- ./data:/var/lib/mysql
environment:
- TZ=Asia/Shanghai
- MYSQL_ROOT_PASSWORD=VJOcc2025.123 # 数据库管理员账号的密码
- MYSQL_DATABASE=typecho # 数据库库名设为了 typecho
- MYSQL_USER=typecho # 数据库用户设为了 typecho
- MYSQL_PASSWORD=VJOcc2025.123 # 数据库用户typecho 对应的密码
web:
image: nginx
container_name: typecho-nginx
restart: always
ports:
- 8885:80
links:
- app
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:ro
volumes_from:
- app
depends_on:
- app② nginx.conf 文件:
worker_processes auto;
error_log ./error.log warn;
pid ./nginx.pid;
events {
worker_connections 1024;
}
http {
include ./mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log ./access.log main;
sendfile on;
#tcp_nopush on;
# Prevent nginx HTTP Server Detection
server_tokens off;
keepalive_timeout 65;
#gzip on;
#upstream php-handler {
# server app:9000;
#}
server {
listen 80 default_server;
root /app;
index index.php;
access_log ./typecho_access.log main;
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php$1 last;
}
location / {
index index.html index.htm index.php;
if (!-e $request_filename) {
rewrite . /index.php last;
}
}
location ~\.php(.*)$ {
fastcgi_pass app:9000;
fastcgi_index index.php;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
}5.接着执行以下代码:
docker-compose up -d6.最后使用“ 服务器IP:8885 ”即可访问Typecho项目了。
① Typecho Demo
② Typecho官网
③ Typecho项目地址
④ Typecho基础搭建源代码 提取码:i0b6