思维导图

项目上线

云服务器

选的阿里云,系统是ubentu20.04,ecs和轻量级服务器都无所谓。

配置mysql

  • sudo apt-get update
  • 安装mysql sudo apt-get install mysql-server
  • 启动 sudo service mysql. start
  • 登录 sudo mysql -u root
  • 设置root用户的密码 ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'yourpasswd';
  • 创建数据库

然后利用IDEA或者别的数据库管理软件,将本地数据库项目的SQL脚本(DDL)复制到剪贴板。在服务器上直接输命令或者创建脚本然后运行脚本,就能复制本地数据库到云端上去了。

安装oracle-19(巨坑)

可以参考这篇博客

  1. 前往官网下载jdk

    1. 本地下好后scp到服务器上
    2. 服务器上用wget命令下载
  2. 解压缩到指定目录。以我为例是/usr/lib/jvm。然后输入命令 sudo tar -zxvf xxxx.tar.gz -C /usr/lib/jvm

  3. 配置环境变量。注意ubentu是~/.bashrc,貌似centos是~/.bash_profile

    1
    2
    3
    4
    5
    # jdk19
    export JAVA_HOME=/usr/lib/jvm/jdk-19.0.2  ## 这里要注意目录要换成自己解压的jdk 目录
    CLASSPATH=.:$JAVA_HOME/lib.tools.jar
    PATH=$JAVA_HOME/bin:$PATH
    export JAVA_HOME CLASSPATH PATH
  4. 使修改生效 source ~/.bashrc

  5. 系统注册此jdk。我看很多博客没有这行命令,我不知道他们是怎么跑起来的,我试了很多次这行命令必须加上。sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/"your-jdk-package"/bin/java 300

  6. 回到Home目录,输入 java -version检查安装是否成功。

如果我们在服务器上安装了多个java版本,可以使用update-alternatives系统更改默认版本。

sudo update-alternatives --config java

服务器安全组设置

开放20000端口用户ssh登录,443端口用于https,80端口用于http。

后端

没啥要干的,主要修改下api地址,用于适配acwing给我提供的nginx配置。

  • 前缀加上api
  • localhost换成域名
  • 配置网关

打包代码

在三个服务的pom.xml上写入以下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<packaging>jar</packaging>

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<!--这里写上main方法所在类的路径-->
<configuration>
<mainClass>com.example.backend.BackendApplication</mainClass>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<testFailureIgnore>true</testFailureIgnore>
</configuration>
</plugin>

</plugins>
</build>

然后打开IDE右侧maven,点开backendcloud/生命周期,先clean在package。

如果过程中没报错的话,应该就能在目录下看到三个可执行jar包。将这三个jar包scp到服务器上即可。

在服务端上运行

将之前传来的三个jar包放到 kob/backendcloud下,输入命令:

1
2
3
java -jar backend-0.0.1-SNAPSHOT.jar
java -jar matchingsystem-0.0.1-SNAPSHOT.jar
java -jar botrunningsystem-0.0.1-SNAPSHOT.jar

不出意外的话就可以看到后端在服务器上跑起来了。

前端

  • http://127.0.0.1:3000替换为 https://appxxxx.acapp.acwing.com.cn/api
  • vs://127.0.0.1:3000替换为wss://appxxxx.acapp.acwing.con.cn

打包代码

  • 打开vue脚手架,点击build。如果不报错目录下会生成dist文件夹
  • 通过scp将dist文件夹上传到服务器 scp -r dist/ kobserver:kob/web/
  • mv dist/* .

配置nginx

这里真的巨坑。首先和之前的django项目一样,nginx相关的配置文件只能用acterminal来复制粘贴,否则会多出来很多莫名其妙的东西

  • 创建文件夹/etc/nginx/cert
  • acapp.keyacapp.pem这两个文件复制到该文件中去
  • 覆盖/etc/nginx种的nginx.conf文件
    • 若用户名不是acs,需要把nginx.conf中的acs全部改成自己的用户名
  • 启动nginx命令 sudo /etc/init.d/nginx start
    • 若报错可以在 var/log/nginx/error.log查看日志
    • 修改nginx配置文件后要 sudo /etc/init.d/nginx reload再start

此时在浏览器输入你的域名,即可验证是否成功。