云服务器 1 折起,仅 89 元 / 年,限量抢购,5 分钟搭建博客

本贴最后更新于 1804 天前,其中的信息可能已经时移世改

大家都知道最近阿里云服务器很便宜火爆,于是小编也入手了一台 3 年的,配置:1 核 2G 内存,40G 硬盘。

今年比去年便宜,1 年 89 元,3 年 229 元
限新用户(如不是新用户,可以用家人的支付宝注册),打开以下链接参与:抢购 1 折服务器

买了不能闲置着,可以搭建自己的网站、博客、代码仓库等,用处广泛着呢!有很多朋友问怎么搭建网站,怎么用?应小伙伴们的需求,今天来学习一下最简单的网站搭建,只需要 5 分钟,就可以轻松搭建!

可以浏览查看我的博客
image.png
后台管理发布文章界面:
image.png
自带管理功能,使用 GitHub 账号登陆即可。Solo 是一款小而美 Java 编写的博客系统,功能丰富,插件化,皮肤可选可定制,管理方便,社区活跃。
本文章介绍利用 Solo 开源博客系统在云服务器上搭建自己的博客,让我开始吧。

前提,把需要公网 IP 访问的端口,在阿里云控制台加到安全组里放行。

Docker 搭建

第一步就是安装 Docker

yum install docker.x86_64 -y

安装完成后启动 Docker

  1. systemctl start docker

MySQL 镜像安装

Docker 镜像安装 MySQL 的好处:方便,容器间互不干扰,可以在同一主机上安装多个版本的 MySQL,只需要在主机上映射不同的端口即可。
安装 MySQL 镜像

docker search mysql #查找MySql镜像版本  
docker pull mysql:5.7 #安装指定版本的mysql镜像,5.7为版本号

启动 MySQL 容器

docker run --name test-mysql -e MYSQL_ROOT_PASSWORD=123456 -d  -p 3307:3306 mysql:5.7
  • –name 容器的别称
  • -p 端口映射。格式是 主机的端口:容器的端口。
  • -e 设置容器的环境变量。-e MYSQL_ROOT_PASSWORD=123456 就代表 MySQL 的 root 的密码是 123456
  • -d 使用镜像包名称,可以通过 Docker images 查看
  • restart=always, 告诉 Docker,这个容器要自动启动
    查看 MySQL 容器是否建立成功并启动:
    image.png
    从 host 上连接上面启动的容器:
ifconfig #查看下docker虚拟出的ip地址  
docker ps -a #查看下容器的运行状态  
mysql -h {ip} -P {port} -u root -p #从host连接docker中的MySql

如:

mysql -h172.17.0.1 -P3007 -u root -p123456

如果要用远程用 Navicat 连接 MySQL,继续往下看:

以下配置允许远程用 honey 用户,通过密码 honey 连接数据库,且只允许操作名为 museum_of_art 的数据库。

创建 honey 用户,密码也为 honey:

create user'honey'@'%'identified by'honey';

查看用户 honey 的权限:

show grants for 'honey'@'%';

创建数据库,honey 用户只有操作 museum_of_art 数据库的权限:

create database museum_of_art;

允许用户 honey 操作 museum_of_art 表:

grant all on museum_of_art.* to'honey'@'%';

刷新权限:

FLUSH PRIVILEGES;

如果开最大权限:

GRANT ALL PRIVILEGES ON *.* TO 'honey'@'localhost' IDENTIFIED BY 'honey';  
GRANT ALL PRIVILEGES ON *.* TO 'honey'@'%' IDENTIFIED BY 'honey';

阿里云服务器如果通过以上设置后远程 Navicat 还是连不上,请继续往下看。

现在如果在公网上用 Navicat 是链接不上的。

原因如下

首先需要登陆阿里云后台,添加阿里云安全组策略 具体位置 -> 网络和安全 -> 安全组 -> 配置规则
image.png
可以选择多配置需要的端口。

下面我们需要配置阿里云防火墙

查看下防火墙的状态:

systemctl status firewalld

关闭防火墙:

systemctl stop firewalld

其实这样就可以使用了,但是这样很不安全,我们可以将 firewall 服务禁用,应用 iptables 服务(网上大部分启用端口的资料都是基于 iptables 服务)。

安装 iptables

由于没有防火墙会造成不安全,所以给服务器安装一应用更广的防火墙 iptables,首先要禁用 firewall,通过 yum 安装 iptables:

systemctil disable firewalld  
yum install -y iptables-services

启动 iptables

systemctl start iptables

启动后可以通过 systemctl status iptables 查看状态。

更改 iptables 规则

将 iptables 文件备份下:

cp -a /etc/sysconfig/iptables /etc/sysconfig/iptables.bak

设置 INPUT 方向所有的请求都拒绝

iptables -P INPUT DROP

放开所需端口

iptables -I INPUT -p tcp --dport 3307 -m state --state NEW -j ACCEPT

保存规则

iptables-save > /etc/sysconfig/iptables

设置为开机启动并且重启

systemctl enable iptables.service  
systemctl reboot

好了,系统到这里我们需要重新去启动 Docker

systemctl start docker #运行Docker守护进程

那么到这里我们外网就可以正常的去使用阿里云上的 MySQL 服务了。

比如用上面几行命令部署 MySQL,把容器内 3306 端口映射到宿主机的 3307 端口。到时候就可以用{阿里云公网 IP:3307 访问数据库},MySQL 部署好后,先手动建库(库名 Solo,字符集使用 utf8mb4,排序规则 utf8mb4generalci)

启动 Solo 容器

然后启动容器

docker run --detach --name solo --network=host 
--env RUNTIME_DB="MYSQL"
--env JDBC_USERNAME="root"
--env JDBC_PASSWORD="password"
--env JDBC_DRIVER="com.mysql.cj.jdbc.Driver"
--env JDBC_URL="jdbc:mysql://47.91.6.217:3307/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC"
 b3log/solo --listen_port=8080
--server_scheme=http --server_host=47.98.192.142
  • --detach 即-d 参数指定后台运行,

  • --name 指定容器名称,

  • --env 指定 Solo 系统运行数据库参数,

  • --listen_port:进程监听端口

  • --server_scheme:最终访问协议,如果反代服务启用了 HTTPS 这里也需要改为 https

  • --server_host:最终访问域名或公网 IP,不要带端口

  • --server_port:最终访问端口,使用浏览器默认的 80 或者 443 的话值留空即可

    使用的镜像是 b3log/solo 最新版,这里比如,47.98.192.142 是我阿里云公网 IP,用 47.98.192.142:8080 访问:
    image.png

  • 阿里云

    阿里云是阿里巴巴集团旗下公司,是全球领先的云计算及人工智能科技公司。提供云服务器、云数据库、云安全等云计算服务,以及大数据、人工智能服务、精准定制基于场景的行业解决方案。

    89 引用 • 345 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...