【Solo】搭建 solo 艰辛之路,纯新手的简单易用教程

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

购买服务器

我这里选的是阿里云的 ecs 服务器,实在是因为阿里云服务太好了。
以下是本人的配置,个人感觉完全够用。
配置.jpg

购买域名

_(:3 」∠)_既然是在阿里云买服务器,最好域名也在阿里云购买,如果域名有在其他地方买过,没关系,可以域名转入,具体流程需要你去问购买域名的客服。

域名备案
如果购买的服务器是大陆的话,就需要备案域名,具体流程过于复杂,还是去看阿里云的流程说明吧~~如果感觉麻烦可以去买海外或者国外的,就不需要备案了,备案时间也蛮久的。

安装 docker、docker-compose

点我跳转安装教程

以防万一我这里也写一下,当然我自己也是按照安装教程一步一步无脑复制黏贴指令的_(:3 」∠)_ 但各位最好还是去原作者那里,感谢教程原作者

一、docker 安装

1,卸载旧版本 docker

全新安装时,无需执行该步骤

$ sudo apt-get remove docker docker-engine docker.io

2,更新系统软件

$ sudo apt-get update

3,安装依赖包

$ sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    software-properties-common

4,添加官方密钥

执行该命令时,如遇到长时间没有响应说明网络连接不到 docker 网站,需要使用代-理进行。

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

显示 OK,表示添加成功.

5,添加仓库

$ sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

6,再次更新软件

经实践,这一步不能够省略,我们需要再次把软件更新到最新,否则下一步有可能会报错。

$ sudo apt-get update

7,安装 docker

如果想指定安装某一版本,可使用 sudo apt-get install docker-ce= 命令,把替换为具体版本即可。

以下命令没有指定版本,默认就会安装最新版

$ sudo apt-get install docker-ce

8,查看 docker 版本

$ docker -v

显示“Docker version 17.09.0-ce, build afdb6d4”字样,表示安装成功。

二、docker-compose 安装

1,下载 docker-compose

$ sudo curl -L https://github.com/docker/compose/releases/download/1.17.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

2,授权

$ sudo chmod +x /usr/local/bin/docker-compose

3,查看版本信息

$ docker-compose --version

显示出版本信息,即安装成功。

安装 solo-in-docker 解决后续环境配置问题

点我跳转项目

不得不说这个真的是解决了我很多问题
只需要下载项目,我自己是把项目解压到 opt 里面,之后修改配置 docker-compose.yml 文件

services:
  mysql:
    container_name: mysql
    image: mysql:5.5.60
    restart: always
    volumes:
      - ./mysql/data:/var/lib/mysql //mysql的数据文件存放地址
      - ./mysql/conf/mysqld.conf:/etc/mysql/mysql.conf.d/mysqld.cnf //mysql的配置文件存放地址
    ports:
      - "6603:3306" //6603代表宿主机端口,3306代编容器的端口
    environment:
      - MYSQL_ROOT_PASSWORD=adminadmin //mysql的root账号密码
  solo:
    container_name: solo
    image: b3log/solo //直接使用最新版本的solo镜像
    restart: always
    ports:
      - "8080:8080" //如果要部署到线上的话,请改为"80:80",同时修改下面的--listen_port=80
    environment: //此处配置solo跟mysql的连接设置,来源为上面启动的mysql容器,如果要用自己的mysql服务,那么请将mysql的servcie去掉
      RUNTIME_DB: "MYSQL"
      JDBC_USERNAME: "root"
      JDBC_PASSWORD: "adminadmin"
      JDBC_DRIVER: "com.mysql.jdbc.Driver"
      JDBC_URL: "jdbc:mysql://mysql:3306/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC" //此处,因为solo跟mysql同为docker容器,所以可以直接使用容器名 + 容器端口来访问
    command: --listen_port=8080 --server_scheme=http --server_host=www.liumapp.com //按照solo官方要求,在solo启动之初,配置solo的域名、端口,如果是本地测试的话,将host改为localhost即可

这是作者提供的配置文件以及备注,我们只需要把 ports: 以及 listen_port=8080 改为 80
还有 server_host= 的域名改为你自己的即可。
这个项目真的帮了我很大忙,再次感谢作者~

最后的最后,附上自己的博客 http://www.bwxyz.top

欢迎来到这里!

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

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

    新手不用 docker 可能更简单些

    1 回复
  • (:3 」∠) 只要能出效果,我就满足了。之前看过很多教程,都卡在环境配置这块

  • Wit13

    我也是新手,但是弄 docker,就是卡在这里,我现在用的是放在 tomcat 的 webapps 下的那种方法

    1 回复
  • 大佬啊。。我这个方法也试过,但一直出现 nginx 默认页面_(:3 」∠)_ 我看了好几个零基础教程,硬是整不出来

    1 回复
  • 使用 docker 碰到啥问题?

    1 回复
  • _(:3 」∠)_可以参考 https://hacpai.com/article/1554369181979 我之前发的帖子
    可能是配置出了问题,或者说不知道怎么配置。
    可能程序员一看就懂吧,但我没有了解过这块,完全看不懂。。只能乖乖按别人发的零基础教程来搞。我是一个设计工作者,最多就会点 html、css、js

    1 回复
  • 我看你最后说已经配置好了呀 😂

    1 回复
  • 大佬你说的是我现在发的这个帖子还是之前那个?现在这个帖子是已经搭建完成的了。只是想给跟我一样对这块是小白的人看_(:3 」∠)_

    1 回复
  • 哦,明白了。不过我强烈建议用 docker 搭建,不然以后升级版本很麻烦啊,有空的话还是折腾一下吧 😄

    2 回复
  • _(:3 」∠)_这个不是用 docker 搭建的吗?需要安装 docker、docker-compose,而且我看项目配置文件里面是自动获取最新版本的 solo。
    当然最后还是要谢谢大佬,每次有问题大佬都会出现~

  • Wit13

    请问博主有 docker 搭建 solo 的教程吗??

    1 回复
  • https://hacpai.com/article/1511246224528 你看看可不可以 这个我试了 失败 当然可能是我自己的问题

  • liumapp

    我就是 solo-in-docker 的作者,很开心这个项目能够帮助大家搭建 solo,另外补充几点:

    1. docker-compose 只是一个 docker 容器的编排工具,本质还是 docker 容器在运行
    2. 每一次命令 docker-compose 启动的时候,都会自动拉取最新 solo 的镜像,所以自动更新非常简单
    3. 数据备份问题,docker 容器死亡的时候,容器内数据会自动清除,除非我们使用 volumes 构建映射关系,这里我只将最重要的 mysql 数据库文件映射在 mysql/data 目录下
  • yuweijun520

    好尴尬,想进博主博客看看,然后发现 403 了

    2 回复
  • 我在搞事情,并不是网站坏了 😂 想试试能不能用宝塔弄 solo,这样以后弄其他东西就方便很多了

    1 回复
  • yuweijun520

    原来如此~~

  • she2323223

    我觉得搭建起来并不难,难的是自己突发奇想的一些搭建,比如我之前没弄过 nginx 却想用 nginx 做个反向代理,又看见域名前面浏览器给我打了个叉,我又生成证书,证书安上了又 TM 说我不安全,我又弄了个安全的,回头一看搜楼又因为 https 加载不了样式文件,又一顿折腾,到后来不管过程的说啊,整起来了,我也就可以欣慰的在博客里写小黄段子了 😂

    1 回复
  • (:3 」∠) 我现在试图用宝塔来搭建 想一个 ecs 多个网站但是都分在子域名里面的操作

  • she2323223

    什么 404 500 什么的对于一个程序员来说都不尴尬,尴尬的是什么?等了好长时间以后你再点进去还是 404 这就尴尬了。😂

    1 回复
  • trollface 可我不是程序员~~额 我现在遇到了点问题 用了宝塔后 一键搭建 solo 的用不了了 也就是又要自己重新弄 但。。整不出来_(:3 」∠)_我在考虑要不要重装回来 不搞宝塔了
    大佬有啥教程么 想最后试一试 用了宝塔后 安装软件不是问题了 但可能问题就出现在配置上

  • a1664670118

    我按照博主的教程走完,发现提示数据库未创建,不知道是哪里出了问题。

    1 回复
  • 数据库需要手动在 MySQL 创建。

    1 回复
  • a1664670118

    好的,正在尝试。

请输入回帖内容 ...