首页
关于
Search
1
欢迎使用 Typecho
1 阅读
2
【好玩儿的Docker项目】10分钟搭建一个Typecho博客|太破口!念念不忘,必有回响!
1 阅读
默认分类
Docker系列
登录
Search
Typecho
累计撰写
2
篇文章
累计收到
1
条评论
首页
栏目
默认分类
Docker系列
页面
关于
搜索到
2
篇与
的结果
2026-06-21
【好玩儿的Docker项目】10分钟搭建一个Typecho博客|太破口!念念不忘,必有回响!
【好玩儿的Docker项目】10分钟搭建一个Typecho博客|太破口!念念不忘,必有回响!Roy • 2023年6月15日 下午7:24 • Docker系列 • 阅读 4512非常轻量的一个博客,本不适合用Docker搭建的本博客用什么VPS?创作不易,欢迎请咕咕喝杯咖啡☕☕☕image-20220507213351069Table of Contents介绍项目展示搭建环境搭建视频搭建方式5.1 搭建5.1.1 mysql5.1.2 php-fpm5.1.3 nginx5.2 更新5.3 卸载反向代理6.1 利用Nginx Proxy Manager使用教程7.1 地址重写功能结尾参考资料介绍Typecho时隔多年,终于在今年愚人节更新了新版本,之前咕咕最早也用过Typecho,非常轻量的一款博客,整个源文件就608Kimage-20220507213620714正常来说,这个是不适合用Docker来部署的,因为会把一个轻量的东西弄得很“重”,但是,谁叫我们懒呢,用Docker部署,维护和搬家方便呀,而且部署也简单,所以今天就索性来折腾一下吧。宝塔搭建的详情见【从0开始搭建个人博客】自建服务器,搭建一个typecho博客推荐阅读:Hexo还是Hugo?Typecho还是Wordpress?读完这篇或许你就有答案了!项目展示见【从0开始搭建个人博客】自建服务器,搭建一个typecho博客搭建环境服务器:腾讯香港轻量应用服务器24元/月VPS一台展示用的服务器是Netcup特价款,本期搭建用的是Vultr的服务器,按小时计费,可随时销毁(最好是选非大陆的服务器)(腾讯轻量购买链接)Hetzner注册免费得25欧试用金有效期一个月系统:Debian 10(DD脚本 非必需DD用原来的系统也OK)域名一枚,并做好解析到服务器上(域名购买、域名解析 视频教程)安装好Docker、Docker-compose(相关脚本)【非必需】提前安装好宝塔面板海外版本aapanel,并安装好Nginx(安装地址)【非必需本教程采用】安装好Nginx Proxy Manager(相关教程)搭建视频YouTube:https://youtu.be/OYSvwY-GHIQ00:00 唠嗑01:45 Typecho搭建环境介绍03:08 开始搭建Typecho03:41 先创建几个文件07:28 下载Typecho源码09:13 docker-compose文件10:31 域名解析及反向代理11:07 Typecho网页端安装配置13:09 Typecho博客地址重写功能哔哩哔哩:https://www.bilibili.com/video/BV1Au41167Dk搭建方式5.1 搭建服务器初始设置,参考新买了一台服务器“必须”要做的6件小事【Docker系列】不用宝塔面板,小白一样可以玩转VPS服务器!sudo -i # 切换到root用户apt update -y # 升级packagesapt install wget curl sudo vim git # Debian系统比较干净,安装常用的软件Copy创建一下安装的目录:mkdir -p /root/data/docker_data/typechocd /root/data/docker_data/typechoCopy先创建几个文件。5.1.1 mysqlcd /root/data/docker_data/typechonano mysql.envCopy填入下面的内容:MYSQL_ROOT_PASSWORD=root_passMYSQL_DATABASE=typechoMYSQL_USER=usernameMYSQL_PASSWORD=passwordCopy5.1.2 php-fpm其中 php 目录为 php-fpm 的 Dockerfile,在官方镜像的基础上,添加了 PDO_MYSQL(如果使用 MySQL 作为 Typecho 的数据库,则需安装此扩展),并设置 buffer 为 4kb,即一个内存页。同时设置了时区为RPC,来源于issue: https://github.com/typecho/typecho/issues/1090cd /root/data/docker_data/typechomkdir phpcd phpnano DockerfileCopy输入下面的内容:FROM php:7.3.29-fpmRUN apt-get update \&& docker-php-ext-install pdo_mysql \ && echo "output_buffering = 4096" > /usr/local/etc/php/conf.d/php.ini \ && echo "date.timezone = PRC" >> /usr/local/etc/php/conf.d/php.iniCopy5.1.3 nginxnginx 的配置要注意的是需要有rewrite 规则(后续typecho后台有一个地址重写功能),如果需要指定域名的话,需要写 server_name 字段。这里我并没有指定443端口,因为我们后面用到了反向代理。cd /root/data/docker_data/typechomkdir nginxcd nginxnano default.confCopy输入下面的内容:server {listen 80 default_server; root /var/www/html; index index.php; access_log /var/log/nginx/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 php: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; }}Copy下载源码:cd /root/data/docker_data/typecho/typechowget https://github.com/typecho/typecho/releases/download/v1.2.0/typecho.zipapt install zip -y unzip typecho.zipCopy创建docker-compose文件。cd /root/data/docker_data/typechonano docker-compose.ymlCopydocker-compose.yml内容如下:version: "3"services: nginx:image: nginx ports: - "8223:80" # 左边可以改成任意没使用的端口 restart: always environment: - TZ=Asia/Shanghai volumes: - ./typecho:/var/www/html - ./nginx:/etc/nginx/conf.d - ./logs:/var/log/nginx depends_on: - php networks: - web php:build: php restart: always expose: - "9000" # 不暴露公网,故没有写9000:9000 volumes: - ./typecho:/var/www/html environment: - TZ=Asia/Shanghai depends_on: - mysql networks: - web mysql:image: mysql:5.7 restart: always environment: - TZ=Asia/Shanghai expose: - "3306" # 不暴露公网,故没有写3306:3306 volumes: - ./mysql/data:/var/lib/mysql - ./mysql/logs:/var/log/mysql - ./mysql/conf:/etc/mysql/conf.d env_file: - mysql.env networks: - web networks: web:Copy注意:如果VPS的内存比较小 ,推荐设置一下SWAP,一般为内存的1-1.5倍即可~设置SWAP可以用脚本:wget -O box.sh https://raw.githubusercontent.com/BlueSkyXN/SKY-BOX/main/box.sh && chmod +x box.sh && clear && ./box.shCopy没问题的话,ctrl+x退出,按y保存,enter确认。查看端口是否被占用,输入:lsof -i:8223 #查看8223端口是否被占用,如果被占用,重新自定义一个端口Copy如果出现:-bash: lsof: command not foundCopy运行:apt install lsof #安装lsofCopy如果端口没有被占用,可以运行:docker-compose up -dCopy访问:http:服务ip:8223 即可。注意:1、不知道服务器IP,可以直接在命令行输入:curl ip.sb,会显示当前服务器的IP。2、遇到访问不了的情况,请在宝塔面板的防火墙和服务商的后台防火墙里打开对应端口。5.2 更新cd /root/data/docker_data/typecho # 进入docker-compose所在的文件夹docker-compose pull # 拉取最新的镜像docker-compose up -d # 重新更新当前镜像Copy利用Docker-compose搭建的应用,更新非常容易~5.3 卸载sudo -i # 切换到rootcd /root/data/docker_data/typecho # 进入docker-compose所在的文件夹docker-compose down # 停止容器,此时不会删除映射到本地的数据cd ~rm -rf /root/data/docker_data/typecho # 完全删除映射到本地的数据Copy利用Docker-compose搭建的应用,删除也非常容易~反向代理6.1 利用Nginx Proxy Manager在添加反向代理之前,确保你已经完成了域名解析,不会的可以看这个:域名一枚,并做好解析到服务器上(域名购买、域名解析 视频教程)之后,登陆Nginx Proxy Manager(不会的看这个:安装Nginx Proxy Manager(相关教程))注意:Nginx Proxy Manager(以下简称NPM)会用到80、443端口,所以本机不能占用(比如原来就有Nginx)直接丢几张图:image-20220502123517401image-20220507212548875image-20220507212620260注意填写对应的域名、IP和端口,按文章来的话,应该是8223IP填写:如果Nginx Proxy Manager和reader在同一台服务器上,可以在终端输入:ip addr show docker0Copy查看对应的Docker容器内部IP。否则直接填docker所在的服务器IP就行。image-20220403104353185完成之后,记得再次打开这个,把Force SSL再勾选上(小BUG)然后就可以用域名来安装访问了。使用教程安装看咕咕的视频。image-20220513212747473image-20220513212726407cd /root/data/docker_data/typecho/typechonano config.inc.phpCopy填入上面的内容,然后点击继续安装即可。7.1 地址重写功能image-20220507211319272结尾祝大家用得开心,有问题可以去GitHub提Issues,也可以在评论区互相交流探讨。同时,有能力给项目做贡献的同学,也欢迎积极加入到项目中来,贡献自己的一份力量!参考资料https://zhuanlan.zhihu.com/p/398776433https://saucer-man.com/operation_and_maintenance/607.htmlhttp://typecho.org/
2026年06月21日
1 阅读
0 评论
0 点赞
2026-06-21
欢迎使用 Typecho
如果您看到这篇文章,表示您的 blog 已经安装成功.
2026年06月21日
1 阅读
1 评论
0 点赞