最近搭建了一个博客系统,作为自己的主页,方便记录一些平时所见所闻,学习收获等内容,正如你所看到的这个网站。再搭建过程中遇见了不少的困难和问题,再此做下记录和总结。
想了解 Solo 开源博客系统的可以去 Solo 官网了解下!
开始正题:
一、搭建方式
基于阿里云服务器通过 Docker 方式部署,操作系统使用 CentOS,数据库使用 MySQL(也正是 Solo 默认推荐的数据库)。为了方便部署和提高效率,我还使用了 Xshell 和 Xftp 工具,基本所有的操作任务在这两个工具中都可以完成。
二、步骤概述
1、购买阿里云服务器;
2、本地安装 Xshell 和 Xftp 工具;
3、服务器安装配置 MySQL 数据库;
4、服务器安装 Docker;
5、通过 Docker 获取 Solo 镜像;
6、创建容器并运行。
其中每一步又分为很多操作细节,下面展开来一步一步细说。对于个别非关键步骤会省略掉。
三、具体内容
1、购买阿里云服务器并配置
本人选择的是阿里云主机作为服务器,相对来说便于维护,若有条件也可用个人物理主机作为服务器。不过从便捷性上了来说推荐使用云服务器,代表有阿里云,腾讯云,华为云等等。
具体不同云服务商的购买步骤不尽相同,不细展开,具体参考服务商官网。
假如你现在已经有了自己的服务器了,其中系统为纯净 CentOS7,那么看下一步。
2、本地电脑上安装 XShell 和 XFtp 软件
安装过程略。
这里只简单说下这两个工具连接 CentOS 的过程中的注意事项:CentOS 的 22 端口需要打开,默认是打开的,如果没打开的话,需要操作两方面,一.CentOS 系统本身的防火墙中打开 22 端口,二.阿里云对应该主机的安全组需要添加 22 端口的访问策略。
首次连接时,建议记住密码,否则后期使用时,会经常让输入密码,很麻烦。
3、安装配置 MySQL8
这里用过 yum 方式安装,需要用到 MySQL 官方提供的 mysql80-community-release-el7-1.noarch.rpm 文件。下载到本地后,通过 XFtp 工具上传到 CentOS 系统中,习惯于在 CentOS 系统/usr/local/目录下新建一个 tmp 文件夹,用于存放上传文件,这样便于管理自己的文件。
现在已经将文件 mysql80-community-release-el7-1.noarch.rpm
放于/usr/local/tmp 下,
然后,使用 Xshell 工具连接 CentOS 执行命令:
[root@localhost ~]# yum -y install mysql80-community-release-el7-1.noarch.rpm
这时候就已经在安装 MySQL 了,其中 yum
命令是 Linux 中一种安装软件的方式,-y
表示在安装过程中遇到的所有询问,自动选择“是”。install 表示安装动作。
等待自动过程安装完毕,执行下面命令安装和注册 MySQL 服务:
[root@localhost ~]# yum -y install mysql-community-server
服务注册完成后,执行下面命令启动服务:
[root@localhost ~]# systemctl start mysqld.service
这边提示下 centOS7 以下的版本用的是 service
命令,centOS7 开始需要使用 systemctl
命令。
此时 MySQL 已经开始正常运行,不过要想进入 MySQL 还得先找出此时 root 用户的密码,通过如下命令可以在日志文件中找出密码:
[root@localhost ~]# grep "password" /var/log/mysqld.log
2019-05-02T03:50:17.570037Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: Dn!URfyNl6HP
根据 ROOT 用户名和密码登录服务:
[root@localhost ~]# mysql -u root -p
接着让输入密码,就是刚才找到的密码,正确输入后登录成功。登录成功后就可以输入 MySQL 相关的命令来操作 MySQL 数据库了。
这时候,第一件事,就是修改密码,执行如下和命令进行初始密码的修改:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
注意:MySQL 的命令全是以分号结尾,不要丢掉分号。且新密码要满足:同时含有大小写字母、数字、符号,并牢记。
下面,需要新建一个数据库用户:
#创建用户:
mysql> CREATE USER 'username'@'host' IDENTIFIED BY 'password';
#默认新建用户的加密规则是caching_sha2_password方式,有些客户端不支持,所以修改为mysql_native_password方式:
mysql> alter user 'username'@'host' identified with mysql_native_password by 'password';
username: 你将创建的用户名
host: 指定该用户在哪个主机上可以登陆,如果是本地用户可用 localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符 %
password: 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器
到这里,退出 MySQL,执行:
#退出MySQL命令模式
mysql> \q
重启 MySQL 服务:
[root@localhost ~]# service mysqld restart
用新用户登录 MySQL 并手动建库(库名 solo
,字符集使用 utf8mb4
,排序规则 utf8mb4_general_ci
)。
CREATE DATABASE `name` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
到此,数据库部分已完成。
4、服务器安装 Docker
Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的 CentOS 版本是否支持 Docker 。
通过 uname -r
命令查看你当前的内核版本
root 权限登录 CentOS。若内核版本过低,执行命令 yum update
确保 yum 包更新到最新。
安装需要的软件包
#yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
[root@localhost ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
#设置yum源
[root@localhost ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
#安装最新稳定版docker
[root@localhost ~]# yum install docker-ce
#启动
[root@localhost ~]# systemctl start docker
#加入开机启动
[root@localhost ~]# systemctl enable docker
#验证安装是否成功
[root@localhost ~]# docker version
5、通过 Docker 获取 Solo 镜像
[root@localhost ~]# docker pull b3log/solo
6、创建容器并运行
提前在 CentOS 中新建两个文件夹:/usr/local/tmp/solo/skins
/usr/local/tmp/solo/images
用于下面将这两个文件挂载到要创建的容器中。
创建容器:
[root@localhost ~]# docker run --detach --name solo --network=host \
--env RUNTIME_DB="MYSQL" \
--env JDBC_USERNAME="username" \
--env JDBC_PASSWORD="password" \
--env JDBC_DRIVER="com.mysql.cj.jdbc.Driver" \
--env JDBC_URL="jdbc:mysql://127.0.0.1:3306/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC" \
--volume /usr/local/tmp/solo/skins:/opt/solo/skins \
--volume /usr/local/tmp/solo/images:/opt/solo/images \
b3log/solo --listen_port=80 --server_scheme=http --server_host=域名
此时,容器被创建并开始运行。
相关连接
Linux 和 Docker 常用命令
通过 yum 源在 centOS7 安装 mysql8
Centos7 上安装 docker
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于