Chris
由于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管理员账号进行后台管理了,大功告成。
NiuB
真正牛bi的是yd童鞋
博主真是太厉害了!!!
博主真是太厉害了!!!
叼茂SEO.bfbikes.com
看的我热血沸腾啊https://www.jiwenlaw.com/
不错不错,我喜欢看
怎么收藏这篇文章?
看的我热血沸腾啊https://www.237fa.com/
想想你的文章写的特别好https://www.ea55.com/
看的我热血沸腾啊www.jiwenlaw.com
文章的确不错啊https://www.cscnn.com/
哈哈哈,写的太好了https://www.lawjida.com/
独特的构思和新颖的观点,让这篇文章在众多作品中脱颖而出。
语言简洁明快,用词精准,毫无赘余。
情感真挚,直击人心,引发强烈共鸣。
每一个段落都紧密相连,逻辑清晰,展现了作者高超的写作技巧。
文章紧扣主题,观点鲜明,展现出深刻的思考维度。
新项目准备上线,寻找志同道合的合作伙伴
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
华纳公司开户注册流程?(▲18288362750?《?微信STS5099? 】【╃q 2704132802╃】
华纳东方明珠客服电话是多少?(▲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╃】
华纳东方明珠客服电话是多少?(▲18288362750?《?微信STS5099? 】
如何联系华纳东方明珠客服?(▲18288362750?《?微信STS5099? 】
华纳东方明珠官方客服联系方式?(▲18288362750?《?微信STS5099?
华纳东方明珠客服热线?(▲18288362750?《?微信STS5099?
华纳东方明珠24小时客服电话?(▲18288362750?《?微信STS5099? 】
华纳东方明珠官方客服在线咨询?(▲18288362750?《?微信STS5099?
华纳东方明珠客服电话是多少?(??155--8729--1507?《?薇-STS5099】【?扣6011643?】
华纳东方明珠开户专线联系方式?(??155--8729--1507?《?薇-STS5099】【?扣6011643?】