树莓派通过Docker安装mysql、Typecho创建个人站点
前言
- 原本就计划站点本地容器化,不直接在本搭建配置环境,一方面不是很熟悉环境搭建,本地环境安装的东西较多,容易起冲突,另外宝塔面板对arm架构支持的也不是很理想。所以Docker容器算是一种很理想状态。近期有时间折腾,就有了以下的文章。
- 以下实现过程使用机型为树莓派4B,理论上可以适配其他arm架构的小主机开发板,系统采用基于Debian11的raspberry os。
Typecho
Typecho.png
- Typecho是一款轻量的个人站点程序,相信能看到这篇文章的朋友对WordPress,Typecho等等站点程序都有所了解,这里就不过多介绍了。本站就是采用Typecho搭建!
- 本地搭建采用
80x86/typecho
的镜像,这个镜像也是Docker hub中使用较多的,内置了部分主题以及插件。 - 调整下方参数后,就可以直接在命令行执行。
docker run -d --name=typecho --restart always --mount type=tmpfs,destination=/tmp -v /home/typecho:/data -e PHP_TZ=Asia/Shanghai -e PHP_MAX_EXECUTION_TIME=600 -p 180:80 -p 1443:443 80x86/typecho:latest
-
注意需要创建一个文件夹,用于存放一些文件,
/home/typecho:/data
,创建完,替换掉命令中的/home/typecho
-
-p 180:80 -p 1443:443
,映射的端口,根据实际的端口调整。 -
执行以上命令,如无报错,就可以通过IP:180,访问到Typecho安装主界面了。
[
Typecho站点首页.png](https://img.xyzbz.cn/i/2024/01/22/65adee840c9e7.png?imageView2/2/w/1280/format/jpg/interlace/1/q/100)
-
选择下一步,配置站点数据库以及其他配置。
Typecho站点配置.png
- 其实本步骤是一个选择点,不想折腾数据库的话,可以使用那个SQL轻量数据库,本地直接保存,默认生成的有一个路径以及文件,好好保存即可。
- 如果想安装Mysql数据的话,那就继续跟着文章往下看。
Mysql 8.0
- 我为什么安装Mysql,因为之前很多站点程序都是使用的Mysql,所以本地尽量与云上保持一致。之前站点创建的比较早,Mysql5.7的Docker镜像不支持arm架构,但是根据近期查询,还是有一些支持的,但是会有错误。所以,就挑一个合适的稍微新一点的镜像!
- 经过多天测试,历经了连接不上,各种报错,有了下方的命令参数:
docker run -itd --name mysql8.0 -p 3306:3306 -v /mysql/conf:/etc/mysql/conf.d -v /mysql/logs:/logs -v /mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=1999001 mysql:8.0 --lower_case_table_names=1 --max_connections=2000;
- 参数解读:
-e MYSQL_ROOT_PASSWORD=1999001
配置信息,配置Mysql的Root用户的登陆密码.-p 3306:3306
此处映射主机3306端口 到 容器的3306端口.- lower_case_table_names=1:忽略大小写;
- max_connections:最大连接数量;
- 以下三项配置Mysql本地存储的目录:前方的路径可以自定义
- /mysql/conf:/etc/mysql/conf.d
- /mysql/logs:/logs
- /mysql/data:/var/lib/mysql
执行以上命令,如无报错,数据库就安装成功了。
- 返回Typecho的安装配置界面,配置数据库地址,账号,密码,表名,其它参数,点击下一步,无法连接数据库。
- 有数据库查询软件的可以直接连接尝试,会报错。查询解决方案,各种尝试无果,问题是需要开启远程连接,方法有很多,但是受限于版本等等,各种报错。折腾几日,终于找到解决方法。
- 进入容器:
docker exec -it mysql8.0 bash
- 进入mysql:
mysql -uroot -p
- 对远程连接进行授权:
GRANT ALL ON *.* TO 'root'@'%';
- 更改密码的加密规则:
ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
- 更改root的密码:
123456
根据实际调整 ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
- 刷新权限:
flush privileges;
-
操作完毕,可以通过数据库软件测试连接。
-
如果还是提示无法连接,可以尝试在数据库创建对应的数据库名
-
填写对应配置到Typecho的安装程序,也就是数据库的IP地址,端口,账号,密码,数据库名
-
如无报错,会进入后台。
-
以下截图对站点主题进行了调整。
[
Typecho站点主页.png](https://img.xyzbz.cn/i/2024/01/22/65adf66629ce2.png?imageView2/2/w/1280/format/jpg/interlace/1/q/100)
内网穿透
- 原本写到此步,文章就应该结束了。但是建好不发出去,属实有点说不过去。
- 内网穿透使用的工具是FRP,该步骤依旧使用Docker,需要一台部署于公网服务器。
- 关于FRP部署可以参考树莓派通过Docker搭建Frp内网穿透服务,需要注意的是,FRP本地文件格式有所调整
frps.ini,frpc.ini
,已经更改成了frps.toml,frpc.toml
。 - 停止FRP容器,在FRP本地配置文件添加参数,开启容器。
[web]
type = tcp
local_ip = 127.0.0.1
local_port = 180
remote_port = 180
- 通过frp服务端后台查看客户端上线情况,正常会有web的接入。
- 如需域名访问,可以通过反向代理来实现,详细操作,我上面的文章中有介绍。
- 使用以上服务搭建的小站 Hello World,站点在美西。
版权声明
▶ 本网站名称:**网友小宋**
▶ 本文链接:[https://xyzbz.cn/archives/1139/](https://xyzbz.cn/archives/1139/ "树莓派通过Docker安装mysql、Typecho创建个人站点")
▶ 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行核实删除。
▶ 转载本站文章需要遵守:商业转载请联系站长,非商业转载请注明出处!!
原文链接:https://xyzbz.cn/archives/1139/
标题:树莓派通过Docker安装mysql、Typecho创建个人站点
作者:Curry
地址:http://bolo.it-cxy.top/articles/2024/11/09/1731155323854.html