此前一直在本机上练习Java后端知识,一直没有真正发布过自己的系统到互联网,基于此,趁着五一放假有时间好好学习一下。
1.购买阿里云服务器
-
注册并登录阿里云账号
登录阿里云,首先完成阿里云个人实名认证,本着练习入门的态度,并且首次使用阿里云,不需要有多好的服务器,所以羊毛能薅则薅,在登录到首页时找到免费试用,时限一个月,对于练手熟悉走流程差不多。
- 服务器选择页面,默认就行。
- 进入管理看控制台
点击该记录的管理可以看到公网ip,更多选项可以看到密码,对于首次购买需要设置密码。
- 使用xshell登录服务器
查看剩余信息的指令:free -h
查看存储指令:df -h
查看运行信息指令:top
进入安全组开放需的端口,如mysql端口,80端口和前台端口,后台端口
自动添加需要的默认端口
手动添加需要的后端端口
使用xshell点击新建文件传输当然前提是安装了xftp工具,打开xftp界面。
拖动以传输需要的工具,如jdk,nginx等
2.liunx 指令总结(以安装jdk和docker为例)
2.1安装jdk教程
返回上一级目录指令:
cd ..
解压软件安装包指令:
tar -zxvf xxx
将文件名改名指令:mv xxx yyy,xxx是源文件名,yyy是想改成的文件名
移动文件到某个文件夹/目录指令:mv 文件名 目录名
切换到某个目录下指令:cd /父目录/子目录
查看某个目录下的资源指令: ll /父目录/子目录
编辑某个文件夹下的文件指令:vim /文件夹、文件
编辑模式指令:按字母A键或i键进入编辑模式,在左下角显示insert。ESC退出编辑模式
装jdk需要在 /etc/profile文件尾部添加以下配置:export JAVA_HOME=/usr/local/jdk1.8 export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/ export PATH=$PATH:$JAVA_HOME/bin
输入完成后按esc,然后输入:wq,即退出保存了。
查看编写的配置指令:cat /etc/profile
确认无误后需要刷新下配置, 刷新配置的指令:source /etc/profile
查看安装完的java版本指令:java -version`弹出以下信息则安装完成
2.1安装docker教程
首先删除旧版本的docker指令:
yum erase docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine \
docker-ce
安装所需的软件包,yum-utils 提供了yum-config-manager并且device mapper存储驱动程序需要device-mapper-persistent-data和lvm2因此需要设置仓库
设置仓库指令:sudo yum install -y yum-utils device-mapper-persistent-data lvm2
![]()
使用以下命令来设置稳定的仓库,阿里云仓库:sudo yum-config-manager --add-repo mirrors.aliyun.com/docker-ce/l…安装最新版本的Docker Engine-Community 和containerd:sudo yum install docker-ce docker-ce-cli containerd.io
启动docker指令:
systemctl start docker
验证是否成功docker versionDocker需要用户具有sudo权限,为了避免每次命令都输入sudo,可以把用户加入Docker用户组:sudo usermod -aG docker $USER查看镜像文件docker images设置docker开机自启systemctl enable docker阿里云镜像加速sudo mkdir -p /etc/docker# 安装成功会有此目录,如果没有手动创建一个 将镜像加速写入到daemon.json文件中 sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://ae38hood.mirror.aliyuncs.com"] } EOFsudo systemctl daemon-reload
sudo systemctl restart docker # 重启docker服务
启动docker里的Mysql 并映射端口:docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=q6687015 -d mysql:5.7
进入mysql容器:
docker exec -it d7c21382a6c0 /bin/bash
#d7c21382a6c0为容器id登录mysql` mysql -uroot -pq6687015
使用 ps -a 查看容器id:
docker ps -a
删除容器:
docker rm 容器id
重启mysql容器:
docker restart mysql
可以在navicat把本地的数据库表拷贝到服务器上的mysql数据库当中
3.发布springboot服务
3.1ingboot项目配置文件当中把ip和数据库配置改到服务器一致
3.2 进入到springboot项目根目录对项目打包
在idea终端当中在项目根目录下输入:mvn clean package -DskipTest
3.3可以在本机桌面上测试打包的结果
题外话:部署项目的区别部署普通的spring项目用war包就可以,部署springboot项目用jar包就可以,因为springboot内置tomcat。3.4使用xftp将jar包传送到服务器上后并对jar包授权,指令为chmod 777 springboot-0.0.1-SNAPSHOT.jar
![]()
3.5在服务器上运行springboot项目java -jar springboot-0.0.1-SNAPSHOT.jar![]()
3.6在浏览器上输入项目网址
3.5.每次在终端运行程序时,这个终端就不能再输入别的命令了,这很不爽,我们需要它后台运行。
//需要在前面加入nohup ,后面加入&
nohup java -jar 项目jar包名 &
3.6查看项目否启动指令:ps -ef | grep java出现以下信息代表服务启动,2175是进程号
通过指令
tail f nohup.out查看运行日志,包括springboot异常和报错的信息3.7关闭后台程序①查看端口:netstat -lnp|grep 端口号
②关闭进程:kill -9 进程号
4.发布前端项目
在idea当中vue 根目录下运行指令打包成dist
npm run build
安装anywhere本地静态文件随启随用服务器测试打包的vue项目npm install anywhere -g切换到vue项目根目录下运行anywhere指令会启动服务器并打开页面,页面能打开证明前端项目可用,此时可以发布到服务器上
安装nginx做服务代理 安装依赖和相关库
yum install gcc openssl openssl-devel pcre pcre-devel zlib zlib-devel -y
下载并解压安装包
cd /usr/local //切换到usr/local目录下下载tar包
sudo wget nginx.org/download/ng…
tar -zxvf nginx-1.14.2.tar.gz
删除安装包rm -rf nginx-1.14.2.tar.gz切换到安装包下安装nginxcd nginx-1.14.2./configure --prefix=/usr/local/nginx
最后执行:make && make install
退到上级目录cd ..后删除安装包并进入nginx安装目录
![]()
切换到nginx安装目录的sbin目录下,执行:./nginx---普通启动 cd sbin/
./nginx
![]()
检查Nginx是否启动通过查看进程:ps -ef | grep nginx
![]()
切换到ngix安装目录下再切换到切换到conf 目录下
编辑配置文件,将80端口映射到前端项目的index页面上
替换配置文件的该字段
在前端项目的根目录下运行如下指令给前端项目授权
chmod 777 *
切换到nginx的安装目录下的sbin目录
对nginx进行重启指令:
./nginx -s reload
查看nginx是否启动
ps -ef | grep nginx