阿里云服务器购买和部署项目图文详解

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 很多小白用户不太了解阿里云服务器购买的流程,已经购买后如何使用阿里云服务器部署项目,那么现在就让我跟大家系统的讲解一下吧。

一、前后端不分离SpringBoot项目部署

1,准备工作

1.1,点击:注册阿里云账号

输入:账户名,登录密码,手机号。


image.png


1.2,域名注册和备案

详细请参考:阿里云域名购买流程和备案流程

1.3,准备服务器

详细请参考:阿里云服务器简介和采购流程

需要开放部分端口:在进入网络与安全-安全组,点击"配置规则",点击"手动添加"

80/80 8080 /8080 888/888 8888/8888

2、宝塔面板相关

2.1、安装CentOS宝塔面板

远程连接个人阿里服务器

进入宝塔官网 www.bt.cn,进行下载:

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

运行命令后,宝塔面板会自动安装,期间你需要输入一个y,如下所示:

Do you want to install Bt-Panel to the /www directory now?(y/n):y

输入y,然后回车即可。

等待,大概2分钟左右,显示“Complete!”,即安装完毕!

注意:下载完成会出现有下面这样一段内容:"(一定要先复制保存下来)"

Complete!
Created symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service → /usr/lib/systemd/system/firewalld.service.
Created symlink /etc/systemd/system/multi-user.target.wants/firewalld.service → /usr/lib/systemd/system/firewalld.service.
success
==================================================================
Congratulations! Installed successfully!
==================================================================
外网面板地址: http://公网IP:8888/335fc27a
内网面板地址: http://172.27.86.45:8888/335fc27a
username: oild6mqk
password: 54922e3f
If you cannot access the panel,
release the following panel port [8888] in the security group
若无法访问面板,请检查防火墙/安全组是否有放行面板[8888]端口
==================================================================
Time consumed: 1 Minute!


Bt-Panel: http://公网ip:8888/随机安全入口
username: 随机用户名
password: 随机登录密码

2.2、面板相关设置

输入 http://公网ip:8888/随机安全入口

输入用户名和密码进行登录

进入首页弹窗推荐你安装相关软件(点击左侧栏中的推荐软件选择版本 点击极速安装进行安装) 需要安装很长一段时间…

点击面板设置:

修改安全入口(不修改临时的就会过期不安全)格式如:/mrkay

修改面板用户:自定义就行用于登录

修改面板密码:自定义就行用于登录

绑定宝塔账号(可绑定可不绑定)

安装软件之前一定要确保你的阿里云服务器中之前没有安装过Mysql、tomcat等系统环境软件,如果安装了一定要卸载干净再进行安装宝塔推荐软件,否则会安装失败,后期相对麻烦。(如果嫌卸载麻烦一种暴力方式:云服务器系统重置  教程见第6章-其他教程)
1、弹窗中推荐的软件可以安装也可以不进行安装,因为后期你可以在软件商店中单独进行安装.
2、弹窗中的极速安装和编译安装区别主要是编译安装的相对稳定但是安装时间也会相对较长.
3、如果"phpMyAdmin"软件的版本是4.4以上安装的php版本最好是70以上也不要太高,因为太低了后期使       用"phpMyAdmin"工具会出现问题;此工具是用来操作MySql的界面化工具,相当于SQLyog工具.
4、面板设置中的 安全入口、面板用户、面板密码 一定需要修改并且记录下来防止忘记
 8888 加入安全组放行  888放行

2.3、面板软件安装及环境配置

上面介绍了推荐软件的安装及面板相关设置之后这里还需要安装一些插件和其他软件以及java环境配置:

宝塔源码一键部署插件安装

Java的JDK环境配置(这里可以采用偷懒方式)

JDK环境是Java项目运行的基础,没有配置JDK环境Java项目是无法运行的。

宝塔面板在我们安装tomcat的时候会默认并自动给我们安装一个JDK并配置环境,tomcat7默认安装jdk7

tomcat8默认安装jdk8,所以我们可以直接安装tomcat即可。

安装完毕远程连接云服务器 键入 java -version 弹出相关信息证明JDK安装及配置完成

2.4、站点相关

创建站点的目的是为了让我们访问 域名:端口 就能访问我们部署的项目;

进入宝塔面板

点击添加站点

输入已经解析过的域名:端口 如: www.baidu.com:8088 如果不加端口默认使用的是80端口,没有域名可以使用

云服务器的公网ip:端口,如: 127.0.0.1:8088

添加备注(备注要见名知意 一般我们可以设置自己要部署的项目的名字)

ftp 和数据库可以先不进行创建其他保持默认 (如果要创建要和你项目的数据库名保持一致)

2.4.2、站点设置

站点设置主要是对已经添加的站点进行相关配置(这里主要是进行反向代理的配置)

点击已经添加的站点最右侧的设置连接进入设置界面

点击反向代理

点击添加反向代理

代理名称社会为你的项目名称即可

目标URL就是访问公网IP/域名之后会被转发到服务器中可以访问的ip:端口(这里我们使用127.0.0.1:端口即可,端口是80可以省略不写)其他保持默认,点击保存即可.

2.5、数据库相关

2.5.1 创建数据库

创建数据库是为了项目正常运行和效果数据展示做准备:

进入宝面板

点击 数据库–root密码 对root用户的密码进行修改

注意:一般修改为一个你项目中配置文件比较常用的密码就行

点击添加数据库

注意:这里的数据库名要和你项目中数据库名字一样就行(比如你项目中访问的数据库名字的blog 这里就写blog)

用户名一般也设置为你数据库名字就行,密码设置为root密码就行(为了方便记忆)

其他保持默认点击提交.数据库就创建完成

2.5.2 导入数据库表

数据库创建完成,接下来就是向云数据库中导入数据即可,将你window本地中的数据库导出为.sql文件保存到桌面上,进入宝塔面板–数据库–管理,就桌面生成的sql导入即可.

注意事项:

点击数据库管理连接或者PhpMyAdmin 页面打不开,可能原因有:PHP版本过低、PhpMyAdmin中设置的版本和PHP的版本不一致、888端口没有放行;(解决方案更新PHP版本为7.0以后版本、设置PhpMyAdmin版本和PHP版本一致、面板和云服务器都放行888端口、"如果以上方法都没有解决就直接卸载nginx重新安装,因为nginx的配置文件中有对PhpMyAdmin端口等信息的相关记录,当然你也可以选择修改,为了简单我是选择的重新安装nginx")

3、SpringBoot项目打包

3.1、配置文件修改

在打包SpringBoot的项目之前需要先对application.yml/application.properties文件进行修改
具体修改如下:
spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    # 面板中mysql的端口没有修改这里就不需要修改,IP也是用localhost因为此配置文要进行上传,blog要和你面板中创建的数据库名保持一致
    url: jdbc:mysql://localhost:3306/blog?useUnicode=true&characterEncoding=utf-8
    username: root  # 宝塔面板中roo用户,一般为root
    password: ******  # 数据库中你设置的root密码
# 设置application的端口  注意:端口要和你设置站点的端口保持一致
server:
  port: 80

3.2、Maven插件打包项目

使用Maven插件打包项目为jar包
pom文件中引入maven插件
进行打包
//打包成jar包(若改为war包,则将jar改为war)
 <packaging>jar</packaging>
 <build>
    <!--设置jar包名字-->
    <finalName>demo</finalName>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <executable>true</executable>
            </configuration>
        </plugin>
    </plugins>
 </build>

4、宝塔面板上传项目相关

4.1、上传jar和配置文件

使用宝塔面板进行上传jar包和配置文件

进入宝塔面板

点击网站

点击站点的根目录,跳转到根目录文件夹

点击左上角的上传按钮上传jar包

或者

点击文件

在/www里面创建一个文件,我这里是javaweb

然后把你打包好的jar包上传进来

4.2、运行项目

1.查看以放行的端口

firewall-cmd --list-all

2.添加放行端口

firewall-cmd --permanent --add-port=8088(项目端口)/tcp
firewall-cmd --permanent --add-port=8080(Tomcat端口)/tcp
firewall-cmd --permanent --add-port=8888(宝塔web面板端口)/tcp

3.重启防火墙(每次添加都需重启)

firewall-cmd --reload

4.查看防火墙是否开启

systemctl status firewalld
Active 为开启状态

5.关闭防火墙

systemctl stop firewalld
inactive 成功关闭

6.运行项目

远程连接阿里云服务器使用cd命令进入到jar包所在根目录 或者 在宝塔文件里面点击终端执行命令

java -jar 包名字.jar

这个启动的话你关闭终端就不能继续访问了

7.使用 screen 工具进行解决

1.安装screen 执行命令----> yum install screen
2.进入/www/javaweb目录下执行
    利用screen-让jar包在后台运行
        screen java -jar demo-login.jar(你的jar包)

8.其他相关命令

查询端口,后面的端口号 /8089

netstat -nlp|grep 8089

[root@iZwz9g1c3fleimiwiop1hlZ ~]# netstat -nlp|grep 8888
tcp   0   0 0.0.0.0:8888   0.0.0.0:*   LISTEN   42416/python

停止端口,后面的是 pid/python

kill -9 [PID]

查询jar包:

ps aux|grep medicine.jar

输入上面的命令找到pid

杀死指定会话进程 执行命令----> kill -9 [进程号]

自动清理死去的进程 执行命令----> screen -wipe

5、项目遇到问题解决及优化

5.1、项目运行报错及解决

解决80端口占用问题:

netstat -lnp|grep 80   # 查看占用80端口的进程信息,主要看PID   
kill -9 [PID]          # 根据PID杀死进程

第二种优化解决方式:

## 第一种方式存在弊端:当我们解决了端口占用问题之后再次点击数据库--管理(或者PhpMyAdmin)发现又出现了之前的问题2.5.2中提到的页面不存在问题
## 优化解决
1,查看占用80端口的进程
netstat -lnp|grep 80
ps [pid]
#查看详细信息占用80端口是Nginx的master也就是说是Nginx默认使用的端口是80端口,如果我们杀死了Nginx进程那么PhpMyAdmin就没办法访问,如果让Nginx占用80端口使用80端口的项目就没法正常运行和访问.
2,修改Nginx的默认端口
 2.1 宝塔面板中点击软件商店--已安装  找到Nginx点击设置--点击配置修改  我们发现在配置的最后一行有
 include /www/server/panel/vhost/nginx/*.conf; 这样一句话  (这句是引入Nginx的conf配置文件) 而这些配置文件就是记录的我们宝塔面板中使用到Nginx的相关配置.
 2.2 根据目录(/www/server/panel/vhost/nginx)找到相关的配置文件,打开编辑,修改所有80端口为其他没有占用的端口并放行,并在宝塔和云服务器安全组中放行该端口,面板中重启Nginx或者重新加载配置即可。
 ## 上面2.2的步骤有点麻烦;我们还可以直接进行粗暴的优化处理:(不推荐)
 2.2 我们在2.1步骤中找到include /www/server/panel/vhost/nginx/*.conf;将此句直接注释掉变为
 "#include /www/server/panel/vhost/nginx/*.conf;"之后重启Nginx/重新加载配置即可.简单粗暴但是不推荐。(配置文件的定义都有自己的作用,注释掉之后该站点反向代理也将将失效,为了达到效果损失太多)
3,再次启动项目成功,访问PhpMyAdmin都能正常访问.

5.2、端口放行

28085     是项目的端口号,
3306      是Mysql端口号,
8888    是宝塔面板端口号
443     是HTTPS端口号,
80      是http端口号,
3389    是windows远程服务端口号,便于windows系统远程连接服务器
22      是ssh端口号。

二. 部署前后端分离Springboot+Vue

前置准备:

你要在阿里云服务器安装 mysql,jdk,tomcat,nginx这里不多说,直接部署

准备一个springboot+vue项目

1.1、配置数据库

在自己windows本机上开发完后,通过navicat等工具,直接给sql打包

image.png

选择结构和数据,获得相应的.sql文件后用通过navicat等工具,远程连接阿里云服务器,我这里是直接把之前的sql放到去上

image.png

1.2、Springboot打包

先去,改application.yml文件,连之前上传到服务器的数据库

image.png

再去,改pom.xml文件,改成jar包,设置jar名字,jar包名字可以默认不设置

image.png

上面文改好了就直接,打包成jar包,就不用多说了,直接package,

image.png

在target目录下找到jar包传到服务器上,我是传到/www/javaweb下

image.png

1.3、前端Vue打包

先去改一下vue.config.js文件

image.pngimage.png


由于是vue写的,直接在控制台终端 npm run bulid即可,然后改一下dist里面的static文件路径


image.png

再把dist文件夹通过xftp传到服务器上,我是传到/www/wwwroot/dist上的

image.png

1.4、后端部署

进入到你jar包的位置:cd /www/javaweb/

启动:screen java -jar demo.jar(你的jar包)

1.5、前端部署

1.5.1、配置Nginx文件

首先到服务器上,进行安全组配置!十分重要!具体位置如下:

进去后配置规则,点击快速添加,添加80端口

然后利用xftp进入到nginx,放config文件的地方修改config文件

image.png

打开xshell 进入到:

cd /www/server/nginx/sbin

输入命令启动:

./nginx

查看是否启动:

ps -ef | grep nginx

image.png

关闭命令:./nginx -s stop 或者 kill -9 进程id

到这里你的springboot+vue已经部署完成了

注意:这里直接放问域名可能显示不了页面要加 /index.html 如下:

游览器输入:域名或者IP/index.html

image.png

完成!!!!!!

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
相关文章
|
16天前
|
监控 安全 Linux
RHEL 环境下 Subversion 服务器部署与配置
【10月更文挑战第18天】在RHEL环境下部署Subversion服务器需依次完成安装Subversion、创建版本库、配置服务器、启动服务、客户端连接及备份维护等步骤。确保遵循安全最佳实践,保障数据安全。
|
7天前
|
关系型数据库 MySQL Linux
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
81 2
|
7天前
|
NoSQL Linux PHP
|
8天前
|
弹性计算 数据库连接 Nacos
阿里云ECS服务器在docker中部署nacos
docker pull nacos 失败,docker部署nacos遇到的问题,nacos数据库连接,nacos端口映射
44 1
|
12天前
|
弹性计算 开发框架 .NET
阿里云服务器购买教程及云服务器地域、实例、操作系统、带宽等参数选择指南
对于初次购买阿里云服务器的用户来说,想使用阿里云服务器搭建网站或者运行APP、小程序等项目,第一步就是要先购买阿里云服务器,下面小编以图文形式给大家介绍一下阿里云服务器的购买流程,以及购买过程中如何云服务器地域、实例、带宽等关键配置和选择这些参数的一些注意事项,以供参考。
|
13天前
|
监控 网络安全 调度
Quartz.Net整合NetCore3.1,部署到IIS服务器上后台定时Job不被调度的解决方案
解决Quartz.NET在.NET Core 3.1应用中部署到IIS服务器上不被调度的问题,通常需要综合考虑应用配置、IIS设置、日志分析等多个方面。采用上述策略,结合细致的测试和监控,可以有效地提高定时任务的稳定性和可靠性。在实施任何更改后,务必进行充分的测试,以验证问题是否得到解决,并监控生产环境的表现,确保长期稳定性。
27 1
|
14天前
|
域名解析 网络协议 CDN
阿里云服务器购买后如何解析域名,三步操作即可解析绑定
阿里云服务器购买后如何解析域名,三步操作即可解析绑定
|
17天前
|
安全 Linux 数据安全/隐私保护
RHEL 环境下 Subversion 服务器部署与配置
【10月更文挑战第17天】在RHEL环境下部署Subversion服务器包括安装Subversion、创建和配置版本库、启动服务器、客户端连接以及备份与恢复等步骤。通过这些步骤,可确保服务器的安全性和稳定性,满足版本控制需求。
|
14天前
|
存储 网络协议 Linux
AWS实操-EC2-创建购买linux(centos)EC2服务器
AWS实操-EC2-创建购买linux(centos)EC2服务器
|
14天前
|
安全 网络协议 网络安全
如何购买阿里云购买DDoS高防服务器?
如何购买阿里云购买DDoS高防服务器?