TypechoJoeTheme

Chris&Karen's Café

Chris

人生而自由,却无往不在枷锁之中
网站页面
标签搜索

分享个人容器化部署typecho的案例

2023-07-05
/
24 评论
/
318 阅读
/
正在检测是否收录...
07/05

  由于Karen的一句话,“老公,给我建个博客吧”,我便开始动力满满地研究起来自建博客的技术了,这便是缘分的开始。虽然我完全没有接触过怎么搭建网站,但是我也还是知道大名鼎鼎的WordPress得,于是乎便想研究搭建这个框架的博客平台。但是,其实了解下来我认为这个框架还是比较庞大,一时之间我要上手的话,还是比较难。虽然我是IT工作的从业者,但是毕竟是从事的是基础架构方面的运维工作,要部署一个这种应用对我来说还是很有挑战的。Anyway,世上无难事,只要肯放弃,遂考虑转战一些其他的更容易部署的框架,然后就发现了typecho,然后就有了本博客网站。

  之所以搭建typecho是因为它真的看起来非常轻量级,我不需要准备太多的服务器资源就可以搭建起来,正好命中我的需求,我手上的服务器性能都比较一般。不过正当我准备按照typecho官网的方式进行部署时,我发现一个难题了(也许只是对我而言是难题~),我需要先在linux下部署php,部署mysql,还要安装一些curl的扩展之类的。这些都是我没有接触过的技术,所以一下子我有点懵圈,不知从何研究起来。于是我把心一横,干脆盘算起用docker来部署,心想应该可以简化一些这种复杂环境依赖的问题吧。

  按我个人查找资料的情况来看,感觉网上通过docker方式部署的案例并不多见,可能还是因为这个应用太轻量级了吧,用docker反而还稍微比裸机部署更耗费资源一些。另外,查资料的过程中,发现很多人都是使用宝塔面板来进行更傻瓜式的安装。对于宝塔面板,我一直都不太喜欢使用,感觉用这个安装,完全学习不到东西了。我个人还是喜欢折腾的感觉,通过折腾学习成长,这样才能有点技术长进。

  回到正题,而我在网上找到的docker部署方法,更多的是nginx+php+mysql的docker-compose部署方式。我个人感觉这种方式的缺点还是很明显的,就是需要额外在本地化部署数个文件,例如nginx的conf.d文件,还要执行像usr/uploads目录的权限提升命令,还有后期初始化阶段需要手动添加php中的一个ini文件。这样一通下来,如果以后要迁移服务器的话,还是挺麻烦的,步骤多了就容易遗漏,非常的不够elegant。后来在朋友yd的帮助下,才发现原来官方是推出了docker镜像的,链接在此(https://hub.docker.com/r/joyqi/typecho),基本上就可以实现很少步骤的部署了。只需要本地创建好mysql.env文件,就可以通过docker-compose.yml拉起应用了。

配置脚本案例

  以下是我的配置案例,希望能对读者们有借鉴意义(默认读者已拥有自己的域名,并配置好域名的A记录解析到自己的服务器上)。

  在项目的目录下(例如,我的项目目录为/home/chris/typecho-docker),创建mysql.env,内容如下(建议修改后两项的值为你的实际值):

MYSQL_ROOT_PASSWORD=root_pass
MYSQL_DATABASE=typecho
MYSQL_USER=yourusername
MYSQL_PASSWORD=yourpassword

  在同一个目录下,创建docker-compose.yml,内容如下:

version: '3.7'

services:
  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

  typecho:
    image: joyqi/typecho:nightly-php7.4-apache
    container_name: typecho-server
    restart: always
    environment:
      - TYPECHO_SITE_URL=https://example.com  #更改为你计划使用的实际域名
    ports:
      - 127.0.0.1:8080:80     #如需对公网直接暴露8080,请采用8080:80的写法
    volumes:
      - ./typecho:/app/usr    
    depends_on:
      - mysql
    networks:
      - web

networks:
  web:

  创建好这两个文件以后,直接docker-compose up -d就可以运行了,但是此时8080端口是不可以被正常访问到的。出于安全的考虑,我采用了linux本地化部署的nginx来做ssl卸载,再转发至127.0.0.1:8080端口(即typecho的web服务),以下为nginx的配置文件参考(域名和证书文件修改为你的实际情况):

server {
  listen       80;
  server_name  example.com;
  return 301 https://$host$request_uri;
}

server{
 listen  443 ssl;
  server_name example.com;
  ssl_certificate    /xxxxxxxx/blog_fullchain.pem;
  ssl_certificate_key    /xxxxxxxx/blog_key.pem;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
  ssl_prefer_server_ciphers on;
  ssl_session_cache shared:SSL:10m;
  error_page 497  https://$host$request_uri;

  location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

  最后补充一点,ssl证书的申请网上有很多教程,赖得找的话,可以参考该链接(https://www.panyanbin.com/article/c44653d8.html),我认为足够清晰明了,好评。至此,你应该可以通过https的方式访问到以下的初始化界面了,将数据库的名称、用户、密码等信息填写正确以后就可以创建typecho管理员账号进行后台管理了,大功告成。

IT技术
朗读
赞 · 2
评论 (24)
  1. Aeron 作者
    iPhone · Safari

    NiuB

    2023-07-05 回复
    1. Chris 作者
      Windows 10 · Google Chrome
      @Aeron

      真正牛bi的是yd童鞋

      2023-07-06 回复
  2. rmlbdaqyyd 作者
    Windows 10 · Google Chrome

    博主真是太厉害了!!!

    2024-09-22 回复
  3. blsndbajpx 作者
    Windows 10 · Google Chrome

    博主真是太厉害了!!!

    2024-09-22 回复
  4. sqkulhqitg 作者
    Windows 10 · Google Chrome

    叼茂SEO.bfbikes.com

    2024-09-23 回复
  5. wmnrbfuecf 作者
    Windows 10 · Google Chrome

    看的我热血沸腾啊https://www.jiwenlaw.com/

    2024-09-23 回复
  6. guwxootsio 作者
    Windows 10 · Google Chrome

    不错不错,我喜欢看

    2024-09-23 回复
  7. ugmrklllxj 作者
    Windows 10 · Google Chrome

    怎么收藏这篇文章?

    2024-09-27 回复
  8. zxzccsjoen 作者
    Windows 10 · Google Chrome

    看的我热血沸腾啊https://www.237fa.com/

    2024-10-01 回复
  9. hgcjftoouv 作者
    Windows 10 · Google Chrome

    想想你的文章写的特别好https://www.ea55.com/

    2024-10-04 回复
  10. qsggrdkywo 作者
    Windows 10 · Google Chrome

    看的我热血沸腾啊www.jiwenlaw.com

    2024-10-06 回复
  11. rtmbdnffbs 作者
    Windows 10 · Google Chrome

    文章的确不错啊https://www.cscnn.com/

    2024-10-19 回复
  12. nnbioyrqlm 作者
    Windows 10 · Google Chrome

    哈哈哈,写的太好了https://www.lawjida.com/

    2025-01-06 回复
  13. uboxroyyjo 作者
    Windows 10 · Google Chrome

    独特的构思和新颖的观点,让这篇文章在众多作品中脱颖而出。

    2025-03-01 回复
  14. hrhtibfhsh 作者
    Windows 10 · Google Chrome

    语言简洁明快,用词精准,毫无赘余。

    2025-03-02 回复
  15. rldttrbbcn 作者
    Windows 10 · Google Chrome

    情感真挚,直击人心,引发强烈共鸣。

    2025-03-02 回复
  16. zrxazyzldp 作者
    Windows 10 · Google Chrome

    每一个段落都紧密相连,逻辑清晰,展现了作者高超的写作技巧。

    2025-03-02 回复
  17. scstgugguo 作者
    Windows 10 · Google Chrome

    文章紧扣主题,观点鲜明,展现出深刻的思考维度。

    2025-03-04 回复
  18. xddcpardyj 作者
    Windows 10 · Google Chrome

    新项目准备上线,寻找志同道合的合作伙伴

    2025-10-05 回复
  19. ymdmhcwupq 作者
    Windows 10 · Google Chrome

    2025年10月新盘 做第一批吃螃蟹的人coinsrore.com
    新车新盘 嘎嘎稳 嘎嘎靠谱coinsrore.com
    新车首发,新的一年,只带想赚米的人coinsrore.com
    新盘 上车集合 留下 我要发发 立马进裙coinsrore.com
    做了几十年的项目 我总结了最好的一个盘(纯干货)coinsrore.com
    新车上路,只带前10个人coinsrore.com
    新盘首开 新盘首开 征召客户!!!coinsrore.com
    新项目准备上线,寻找志同道合的合作伙伴coinsrore.com
    新车即将上线 真正的项目,期待你的参与coinsrore.com
    新盘新项目,不再等待,现在就是最佳上车机会!coinsrore.com
    新盘新盘 这个月刚上新盘 新车第一个吃螃蟹!coinsrore.com

    2025-10-07 回复
  20. 华纳公司开户注册流程?(▲18288362750?《?微信STS5099? 】【╃q 2704132802╃】

    2025-10-31 回复
  21. 华纳东方明珠客服电话是多少?(▲18288362750?《?微信STS5099? 】【╃q 2704132802╃】
    华纳东方明珠开户专线联系方式?(▲18288362750?《?微信STS5099? 】【╃q 2704132802╃】
    如何联系华纳东方明珠客服?(▲18288362750?《?微信STS5099? 】【╃q 2704132802╃】
    华纳东方明珠官方客服联系方式?(▲18288362750?《?微信STS5099? 】【╃q 2704132802╃】
    华纳东方明珠客服热线?(▲18288362750?《?微信STS5099? 】【╃q 2704132802╃】
    华纳东方明珠开户客服电话?(▲182(▲18288362750?《?微信STS5099? 】【╃q 2704132802╃】
    华纳东方明珠24小时客服电话?(▲18288362750?《?微信STS5099? 】【╃q 2704132802╃】
    华纳东方明珠客服邮箱?(▲18288362750?《?微信STS5099? 】【╃q 2704132802╃】
    华纳东方明珠官方客服在线咨询?(▲18288362750?《?微信STS5099? 】【╃q 2704132802╃】
    华纳东方明珠客服微信?(▲18288362750?《?微信STS5099? 】【╃q 2704132802╃】

    2025-11-01 回复
  22. 华纳东方明珠客服电话是多少?(▲18288362750?《?微信STS5099? 】
    如何联系华纳东方明珠客服?(▲18288362750?《?微信STS5099? 】
    华纳东方明珠官方客服联系方式?(▲18288362750?《?微信STS5099?
    华纳东方明珠客服热线?(▲18288362750?《?微信STS5099?
    华纳东方明珠24小时客服电话?(▲18288362750?《?微信STS5099? 】
    华纳东方明珠官方客服在线咨询?(▲18288362750?《?微信STS5099?

    2025-11-02 回复
  23. 华纳东方明珠客服电话是多少?(??155--8729--1507?《?薇-STS5099】【?扣6011643?】
    华纳东方明珠开户专线联系方式?(??155--8729--1507?《?薇-STS5099】【?扣6011643?】

    2025-11-03 回复

最新回复

  1. 鍗庣撼鍏徃鍚堜綔寮€鎴锋墍闇€鏉愭枡锛熺數璇濆彿鐮?5587291507 寰俊STS5099
    2025-11-03
  2. 鍗庣撼鍏徃鍚堜綔寮€鎴锋墍闇€鏉愭枡锛熺數璇濆彿鐮?5587291507 寰俊STS5099
    2025-11-02
  3. 鍗庣撼鍏徃鍚堜綔寮€鎴锋墍闇€鏉愭枡锛熺數璇濆彿鐮?5587291507 寰俊STS5099
    2025-11-01
  4. 鍗庣撼鍏徃鍚堜綔寮€鎴锋墍闇€鏉愭枡锛熺數璇濆彿鐮?5587291507 寰俊STS5099
    2025-10-31
  5. ymdmhcwupq
    2025-10-07