# 如何在阿里云服务器部署web项目(小白版,覆盖了每个细节和各种可能遇到的问题 )

一、购买阿里云服务器

阿里云官网:https://www.aliyun.com/?utm_content=se_1007692031
首次注册领取免费天数服务器:https://free.aliyun.com/product/product/ecs/freetrial?userCode=bfol0yvy

# 如何在阿里云服务器部署web项目(小白版,覆盖了每个细节和各种可能遇到的问题 )_第1张图片

二、准备工作

1.Xshell7 Xsheel7下载地址

顾名思义,通过这个可以远程终端连接到云服务器,连接成功,便可以使用远程终端的shell来控制阿里云服务器# 如何在阿里云服务器部署web项目(小白版,覆盖了每个细节和各种可能遇到的问题 )_第2张图片

2. xftp 7 xftp 7下载地址

顾名思义,利用ftp文件传输协议在两个终端之间传输文件

xftp的操作和xshell一样 输入云服务器公网地址建立连接后,便可以让当前主机与云服务器连接 可以在图形界面将当前主机的文件传输到云服务器上
# 如何在阿里云服务器部署web项目(小白版,覆盖了每个细节和各种可能遇到的问题 )_第3张图片

3. jdk和tomcat下载 (linux版本)

链接:https://pan.baidu.com/s/1EnOerP_uT_mm3JpnlAwU5g
提取码:zbfr

4. 开启8080和3306端口

使用某个应用,那么这个应用对应的端口号必须开启才可以使用,tomcat对应的端口是3306,mysql对应的端口号是3306,我们需要在阿里云上查看是否开启了这两个端口,如果没有那便需要手动开启,否侧是不可能成功使用tomcat和mysql的。
具体参考文章最后的附录一

三、在云服务器上配置jdk和tomcat环境

1.在usr目录下创建一个java目录,在java目录下分别创建jdk和tomcat目录

cd /usr
mkdir java
cd java
mkdir jdk
mkdir tomcat

2.使用xftp7将下载好的jdk和tomcat压缩文件分别上传到jdk目录和tomcat目录

# 如何在阿里云服务器部署web项目(小白版,覆盖了每个细节和各种可能遇到的问题 )_第4张图片

3.配置java环境变量

①解压缩(在jdk目录下使用ls查看自己的jdk文件名 将311改成你自己的)

cd jdk
tar -zvxf jdk-8u311-linux-x64.tar.gz

这样显示解压缩成功

②配置java环境变量
我是使用vim文本编辑软件来配置

用vim打开/etc/profile文件

vim /etc/profile

进入之后,输入i进入插入模式,将下面这段内容插入到文件末尾(其他位置也行,路径按自己的修改) 插入完成,按下Esc,输入 :wq! 保存并强制退出。(这里是vim的操作,可查阅资料)

#set java environment
export JAVA_HOME=/usr/java/jdk/jdk1.8.0_311
export JRE_HOME=/usr/java/jdk/jdk1.8.0_311/jre 
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH 
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH

退出后,输入如下命令是配置文件生效

source /etc/profile

到这里,java环境变量配置成功了,输入如下命令检查是否配置成功

java -version

# 如何在阿里云服务器部署web项目(小白版,覆盖了每个细节和各种可能遇到的问题 )_第5张图片

4.配置tomcat环境变量

①解压缩(进入tomcat目录)

tar -zvxf apache-tomcat-8.5.63.tar.gz

这样显示压缩成功

②添加jdk环境

进入解压文件的bin目录

cd apache-tomcat-8.5.63/bin

进入到bin目录下的setclasspath文件

vim setclasspath.sh

将下面一段内容加入到文件的末尾

#set java env
export JAVA_HOME=/usr/java/jdk/jdk1.8.0_311
export JRE_HOME=/usr/java/jdk/jdk1.8.0_311/jre

③启动tomcat服务器
前面已经将tomcat配置完成,现在进入到tomcat的bin目录下,输入下面命令启动tomcat服务器
./shutdown.sh关闭tomcat)

./startup.sh

# 如何在阿里云服务器部署web项目(小白版,覆盖了每个细节和各种可能遇到的问题 )_第6张图片

四、外网访问

现在可以在外网通过 http://公网IP地址:8080 来访问自己的阿里云服务器下的tomcat,出现如下界面,便成功访问到tomcat。如果失败 请前往文章最后的附录一,成功就直接接着往下看!

# 如何在阿里云服务器部署web项目(小白版,覆盖了每个细节和各种可能遇到的问题 )_第7张图片

五、下载和配置mysql

1.下载mysql

linux系统中一般都自带mysql,使用命令下载即可,我是用的阿里云服务器是Ubuntu系统,这里的命令对Ubuntu系统有效,如果你是用的是Centos,那么请到文章最后的附录三查看Centos的mysql配置命令。(可以更换为ubuntu,百度一下,一分钟就可以搞定)

在写作这篇文章的时候,Ubuntu 源仓库中最新的 MySQL 版本号是 MySQL 8.0。想要安装它,运行下面的命令:

sudo apt update
sudo apt install mysql-server

一旦安装完成,MySQL 服务将会自动启动。想要验证 MySQL 服务器正在运行,输入:

sudo systemctl status mysql

# 如何在阿里云服务器部署web项目(小白版,覆盖了每个细节和各种可能遇到的问题 )_第8张图片

2.保护加固mysql

MySQL 安装文件附带了一个名为mysql_secure_installation的脚本,它允许你很容易地提高数据库服务器的安全性。

sudo mysql_secure_installation

# 如何在阿里云服务器部署web项目(小白版,覆盖了每个细节和各种可能遇到的问题 )_第9张图片

3.设置mysql的字符集为utf-8

前面已经把mysql基本配置完成,已经可以使用,但是可能会有中文字符集插入报错问题,所以我们将mysql的字符集统一改成utf-8

输入mysql或者mysql -u root -p登录到mysql,在键入show variables like '%character%';查看mysql默认字符集编码,可以看到还mysql的数据库和服务端尚未设置为utf-8
# 如何在阿里云服务器部署web项目(小白版,覆盖了每个细节和各种可能遇到的问题 )_第10张图片

输入exit退出mysql 输入vim /etc/mysql/my.cnf 在my.cnf配置文件追加如下内容。按下 ESC 并输入:wq!保存并退出(vim操作参考前文)

[client]
default-character-set=utf8

[mysqld]
character_set_server=utf8

退出后重启mysql

service mysql restart

再次登录mysql并查看字符集出现如下界面字符集设置成功
# 如何在阿里云服务器部署web项目(小白版,覆盖了每个细节和各种可能遇到的问题 )_第11张图片

4.将本地数据库上传到服务器

①将本地数据库导出为sql文件
在navicat下,选择你想要导出的数据库 按下鼠标右键 选择转储SQL文件 / 结构和数据 ,之后将导出的数据库sql文件通过XFTP上传到阿里云服务器上,

# 如何在阿里云服务器部署web项目(小白版,覆盖了每个细节和各种可能遇到的问题 )_第12张图片

②在阿里云上,运行该sql文件(source 后面是sql文件存储路径)

source /usr/java/sql/rice.sql

# 如何在阿里云服务器部署web项目(小白版,覆盖了每个细节和各种可能遇到的问题 )_第13张图片
# 如何在阿里云服务器部署web项目(小白版,覆盖了每个细节和各种可能遇到的问题 )_第14张图片

六、将java web项目部署到阿里云上

1.在idea上选择File\Project Structure 然后按如图所示将javaweb项目以war包形式导出(记得修改项目中数据库连接的地址位阿里云服务器ip地址),点击Apply应用
导出后会在out文件夹(非maven项目)或者target文件下(maven项目)看到项目的war包。复制出来通过XFTP上传到云服务器的tomcat文件夹下的webapps下面。tomcat会自动从war包中解析出项目工程目录来。
# 如何在阿里云服务器部署web项目(小白版,覆盖了每个细节和各种可能遇到的问题 )_第15张图片

导出后war包后,需要重新编译一下,选择Bulid\Build ArtFacts 在跳出的界面中选择你刚刚导出的war包进行编译
# 如何在阿里云服务器部署web项目(小白版,覆盖了每个细节和各种可能遇到的问题 )_第16张图片
# 如何在阿里云服务器部署web项目(小白版,覆盖了每个细节和各种可能遇到的问题 )_第17张图片
编译好的程序会打包在out目录下(如果是maven项目,那就是target目录下),找到war包复制下来通过XFTP上传到云服务器的tomcat文件夹下的webapps目录下面。tomcat会在上传后的几秒内自动从war包中解析出项目工程目录来(刷新一下目录即可看到)。
在这里插入图片描述

# 如何在阿里云服务器部署web项目(小白版,覆盖了每个细节和各种可能遇到的问题 )_第18张图片
2.上传好后 重新启动一下tomcat,在这里插入图片描述

3.大功告成
在地址栏输入http://公网ip地址:8080/war包名 便可以访问到我们的项目了
# 如何在阿里云服务器部署web项目(小白版,覆盖了每个细节和各种可能遇到的问题 )_第19张图片

【附录一 开启8080端口】

如果tomcat访问失败,并且tomcat和java环境配置都正确,那么访问不成功的原因可能是,你的阿里云服务器没有开启8080端口,那你当然无法访问。(比如22端口没有开启,那么你就无法远程终端连接)

可以使用netstat -anp |more查看当前云服务器上开放的端口 查看8080端口是否开放
# 如何在阿里云服务器部署web项目(小白版,覆盖了每个细节和各种可能遇到的问题 )_第20张图片

如果没有看到8080端口,那么这就是你访问不了tomcat的原因了,下面我们就来在阿里云上开启一下8080端口

切换到阿里云网页,按如图所示进入到安全组配置(界面不一样是因为你用的新版界面,切换到旧版就行,在右上角的选项)
# 如何在阿里云服务器部署web项目(小白版,覆盖了每个细节和各种可能遇到的问题 )_第21张图片

点击配置规则
在这里插入图片描述

点击添加安全组,按如图所示添加8080端口,点击确定
# 如何在阿里云服务器部署web项目(小白版,覆盖了每个细节和各种可能遇到的问题 )_第22张图片

mysql对应的3306端口和8080操作一样 把8080/8080改为3306/3306即可

【附录二 在navicat上连接到阿里云上的mysql 】

如果每次对mysql的操作都需要在命令界面操作,那就太麻烦了,使用图形化界面无疑会方便很多,所以我们现在来用navicat链接到阿里云服务器的mysql

1.在navicat建立连接如下

# 如何在阿里云服务器部署web项目(小白版,覆盖了每个细节和各种可能遇到的问题 )_第23张图片

2.这样一般是连接不上的,可能会出现如下错误,需要对端口和用户权限进行设置

# 如何在阿里云服务器部署web项目(小白版,覆盖了每个细节和各种可能遇到的问题 )_第24张图片

①.设置3306端口对所有主机开放

通过查询3306端口状态可以看到 3306端口仅仅对ip地址为127.0.0.1主机开放,也就是只能本地主机访问,其他所有主机都访问不了3306端口
在这里插入图片描述

使用如下命令进入mysqld.cnf文件,将127.0.0.1所在的一行删掉或者注释掉

vi /etc/mysql/mysql.conf.d/mysqld.cnf

# 如何在阿里云服务器部署web项目(小白版,覆盖了每个细节和各种可能遇到的问题 )_第25张图片
重启mysql再次查看3306端口状态 可以看到3306端口已经对所有主机开放

在这里插入图片描述

②设置mysql 远程访问权限

# 如何在阿里云服务器部署web项目(小白版,覆盖了每个细节和各种可能遇到的问题 )_第26张图片
当我们开放了3306端口对远程连接的主机访问权限后,还是无法使用navicat连接到阿里云的服务器
这是因为我们使用的是root用户连接阿里云mysql,mysql默认让它的使用用户只能在本地访问mysql服务器,远程无法访问,所以我们还需要设置远程主机能通过root用户访问到mysql服务器。

mysql的用户是保存在 mysql下载后自带的mysql数据库的user表中,通过查询此表,可以看到root用户对应的host是localhost也就是本地主机,所以无法远程主机无法通过root访问mysql

# 如何在阿里云服务器部署web项目(小白版,覆盖了每个细节和各种可能遇到的问题 )_第27张图片

修改root的访问权限(下面的命令三选一即可),让root用户在所有主机都可以登录连接到mysql服务器

//改表法
update user set `host` = '%'  where `user` = 'root' ;

//授权法
grant all privileges on *.* to 'root'@'%' with grant option;  
//授权法(设置访问密码)
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '输入你设置的root密码' WITH GRANT OPTION;

刷新系统权限,让修改内容生效

flush privileges;

3.在navicat再次连接阿里云的mysql

# 如何在阿里云服务器部署web项目(小白版,覆盖了每个细节和各种可能遇到的问题 )_第28张图片

如果还是失败,那就是密码不匹配,查看或修改一下mysql的密码即可,因为mysql8.0以上使用加密算法对密码加密,所以我就直接修改了密码

修改root用户密码,还是在mysql数据库下的user表中

//先将密码置空
 update user set authentication_string='' where user='root';
 //修改密码
 alter user 'root'@'localhost' identified with mysql_native_password by '输入新密码';

【附录三 在Centos系统上安装mysql】

参考这篇博客:在Centos系统上安装mysql

你可能感兴趣的:(阿里云,服务器,java,tomcat)