七、项目上线
1、服务器环境配置
- 首先你要拥有一台服务器,阿里云、腾讯云、华为云都可以(我的是腾讯云的)
- 然后登录到你的服务器中
ssh ubuntu@xxx.xxx.xxx.xxx
若你已经登录过然后又重置了虚拟机要执行以下命令:ssh-keygen -R "你的远程服务器ip地址"
- 然后
sudo su -
,输入你的密码,然后创建acs
用户,并分配给用户acs权限
adduser acs # 创建用户acs
usermod -aG sudo acs # 给用户acs分配sudo权限
- 然后返回
AC Terminal
去配置免密登录,就是先进入到.ssh(没有就自己创建),然后生成秘钥ssh-keygen
,打开家目录下的.ssh/config(没有就自己创建),输入你想免密登录的服务器的信息,然后ssh-copy-id ServerName
,输入完密码后,就可以通过ssh ServerName
,直接登录到你的那台服务器上了
Host myserver1
HostName IP地址或域名
User 用户名
- 可以将
AC Terminal
中的祖传代码拷贝过去scp .bashrc .vimrc .tmux.conf server_name: # server_name需要换成自己配置的别名
- 然后登录到自己的服务器中,安装tmux和docker,打开tmux然后安装docker,然后参考docker安装
sudo apt-get update
sudo apt-get install tmux
- 然后将当前用户添加到docker用户组,为了避免每次使用docker命令都需要加上sudo权限,可以将当前用户加入安装中自动创建的docker用户组
sudo usermod -aG docker $USER
执行完此操作后,需要退出服务器,再重新登录回来,才可以省去sudo权限。
- 回到
AC Terminal
中的/var/lib/acwing/docker/images中将django_lesson_1_0.tar
scp到你的服务器中scp django_lesson_1_0.tar springboot_server:
- 然后配置一下本地的免密登录,打开
git bash here
,来到家目录中然后还是没有.ssh自己创建,然后进去后,生成秘钥ssh-keygen
,vim config
然后输入
Host myserver1
HostName IP地址或域名
User 用户名
然后ssh-copy-id ServerName,输入完密码后,就可以通过ssh ServerName,直接登录到你的那台服务器上,若你已经登录过然后又重置了虚拟机要执行以下命令:ssh-keygen -R "你的远程服务器ip地址"
- 然后从
AC Terminal
中登录到你的服务器上解压django_lesson_1_0.tar
,查看镜像是否解压完成docker images
docker load -i django_lesson_1_0.tar
- 然后创建容器
docker run -p 20000:22 -p 443:443 -p 80:80 -p 3000:3000 -p 3001:3001 -p 3002:3002 │ -itd --name kob_server django_lesson:1.0
,通过2000端口登录容器,后面的就是各种服务的端口,然后给这个容器起一个名字kob_server
最后加上镜像名字和版本号 -
然后进入到你的容器里面
docker attach kob_server
,然后在容器里面创建一套刚才的用户见上方操作
,创建好新的acs用户后Ctrl+P Ctrl+q
将容器挂起(这样容器不会关闭),然后进入云平台去放开20000端口
-
回到
AC Terminal
中配置免密登录,然后ssh-copy-id ServerName
上,ssh ServerName
到你的容器中,然后在本地配置免密登录步骤相同
,然后把祖传代码传到容器里面scp .tmux.conf .bashrc .vimrc springboot:
Host springboot
HostName ip
User acs
Port 20000
- 然后安装、配置mysql
更新一下: sudo apt-get update
安装: sudo apt-get install mysql-server
启动: sudo service mysql start
登录mysql: sudo mysql -u root
设置root密码:ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'yourpasswd';
- 然后创建数据库:
create databaseskob;
use kob;
创建表:m将以下sql语句复制到一个sql文件夹里面,然后通过命令在数据库中执行以下命令这个脚本就可了source /home/acs/create_table.sql
create table kob.bot
(
id int auto_increment
primary key,
user_id int not null,
title varchar(100) null,
description varchar(300) null,
content varchar(10000) null,
createtime datetime null,
modifytime datetime null
);
create table kob.record
(
id int auto_increment
primary key,
a_id int null,
a_sx int null,
a_sy int null,
b_id int null,
b_sx int null,
b_sy int null,
a_steps varchar(1000) null,
b_steps varchar(1000) null,
map varchar(1000) null,
loser varchar(10) null,
createtime datetime null
);
create table kob.user
(
id int auto_increment
primary key,
username varchar(100) null,
password varchar(100) null,
photo varchar(1000) null,
rating int default 1500 null
);
16. 然后安装java8,sudo apt-get install openjdk-8-jdk
2、打包后端
- 修改一下后端
然后把前端那个botdiamante替换成新的,大题意思就是换了一个接口,为了部署到服务器调用函数的参数需要那个读文件的方式 - 然后把那个前后端的排行榜的分页换成10
- 然后加一个显示你在那里,要不然分不清自己是那条蛇
- 修改一下api,下面的每一个都修改一下
- 然后打包后端,给三个子项目的pom.xml中加都加上
<packaging>jar</packaging>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<!--这里写上main方法所在类的路径-->
<configuration>
<mainClass>这里要修改成main方法的路径</mainClass>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
- 然后maven打包,这里我遇到了一个问题,参考这个
- 然后将生成的三个jar包传到服务器上
- 然后在创建几个文件夹,然后把三个jar包放进去
- 然后开三个分屏把项目分别启动,命令如下:
java -jar jar包名字
- 然后创建以下内容
- 然后启动nginx,sudo /etc/init.d/nginx start
- 打开y总分配的域名
3、打包前端
- 将前端里面所有的12.0.0.1换成https://app****.acapp.acwing.com.cn/api/
websocket那个ws要变成wss然后后面吗不要加api那个
- 然后打包前端项目,通过vue的脚手架打包将生成的dist文件上传到服务器中
- 将dist中的文件复制出来