2021.6.25
大三的课程设计需要用到微信小程序,微信小程序中有可以使用云服务器还是自己的服务器,想了一下还是想尝试一下使用自己的尝试搭建的服务器。于是有了这一篇文章。
在途中遇到了不少的坑,特此记录。可能有些坑并不适用于所有的博友,但我还是希望路过的博友们能够通过这篇文章少走一些弯路。
完整的过程下来可能会比较辛苦,希望第一次部署项目到服务器的博友坚持看完下面的步骤,最后完成自己想要的结果~~
目录
1、准备工作
购买服务器
可以选购任意一个厂商的服务器,我这里购买的是阿里云服务器。
镜像选用CentOS7开放服务器安全组
购买成功后,通过在控制台界面中配置安全组。
开放mysql(3306)端口和tomcat(8080)端口
同时,如果忘记自己配置的密码,也可以通过控制台来就进行修改。
下载需要的资源
分别是:
- jdk-8u291-linux-x64
- mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz
- apache-tomcat-8.5.68.tar.gz
- Xshell 5(用于远程登录)
- Xftp 5(用于远程上传)
这里的三个版本是我平时开发Java程序用的环境,所以就采用了这三个版本,博友们可以自己选择采用自己习惯用的版本。还有mysql也可以用rpm的版本,不过我这里用的是tar包来进行配置。
2、尝试使用XShell和Xftp来远程操作云服务器
连接XShell
根据自己设置的root账号和root密码进行登录。
连接Xftp5,给云服务器上传文件。
根据账号密码进行登录
登录成功后界面如下
接下来返回到Xshell
中给在根目录下创建一个/www/server
的目录。
mkdir -p /www/server
-p参数用于递归创建目录。
接下来,通过Xftp
给这个目录传输我们下好的三个文件。
传输的步骤就略过,结果如图所示。
3、安装JDK并配置环境变量
卸载已经安装过的JDK版本
在安装我们自己的JDK版本之前,要先查看服务器是否已经安装过JDK了。
使用如下命令查询已安装JDK版本:
rpm -qa|grep jdk
q代表query,a代表all,grep 命令用于查找文件里符合条件的字符串,下不注释
我这里已经安装了JDK,所以查询出来是有结果的。
如果查询出来没有结果,那么就是没有安装JDK。这个步骤可以跳过。
如果有,就执行下面的命令,进行卸载
rpm -e --nodeps jdk1.8-1.8.0_291-fcs.x86_64
-e 卸载一个软件包
--nodeps 不检查依赖关系
卸载后,再使用
rpm -qa|grep jdk
java -version
检查一下是否真的把jdk删除了。
安装JDK
在/www/server
的目录下,使用一下命令
rpm -ivh jdk-8u291-linux-x64.rpm
-i install安装
-v verbose提示
-h hash 显示进度条
配置Java环境变量
安装结束后,就需要去配置java的环境变量。
首先查看一下,我们java安装之后存在的文件路径
使用命令,
cd /usr/java
查询看到
可以知道这里的我们JDK路径是/usr/java/jdk1.8.0_291-amd64
可以写出以下的配置语句
JAVA_HOME=/usr/java/jdk1.8.0_291-amd64
CLASSPATH=%JAVA_HOME%/lib
PATH=$JAVAHOME/bin
export PATH CLASSPATH JAVA_HOME
接下来,通过下面的命令进入profile文件的文本编辑模式,
vim /etc/profile
将上面的配置语句全部粘贴在文本的最后。
按ESC后:wq保存。
然后使用
source /etc/profile
使刚配置的profile生效,然后通过在命令行中敲
java -version
查看Java是否已经配置完成。
至此,java已经配置完成。
4、安装Tomcat并且启动服务
安装Tomcat
首先回到我们的/www/server
目录下,通过tar指令来对tar包进行解压。
tar -zxvf apache-tomcat-8.5.68.tar.gz
-z tar 包是被 gzip 压缩过的,所以解压时需要用 gunzip 解压
-x 从 tar 包中把文件提取出来
-v 显示详细信息
-f f后面必须跟上要处理的文件名
解压后,获得一个文件apache-tomcat-8.5.68
,这个文件名太长了,不好记忆,我们将其重命名为tomcat
mv apache-tomcat-8.5.68 tomcat
启动Tomcat服务
查看CentOS7的防火墙状态
systemctl status firewalld
如果防火墙是关闭状态,请启动防火墙,因为只有启动防火墙后才能开放端口。
systemctl start firewalld
启动后的防火墙应该是这个状态:
执行以下命令,开放Tomcat需要的8080端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent
# 命令解释
–zone 作用域
–add-port=80/tcp 添加端口,格式为:端口/通讯协议
–permanent 永久生效,没有此参数重启后失效
执行此命令结束后,关闭防火墙。
systemctl stop firewalld
回到/www/server/tomcat
的目录下,进入/bin
目录,使用
./startup.sh
启动Tomcat服务,此时,Tomcat服务已经部署成功。
我们使用我们自己的本机电脑,使用浏览器访问公网IP:8080,就能看到我们熟悉无比的Tomcat界面。
到此为止,Tomcat就已经部署完毕了。
5、安装Mysql并且启动Mysql服务连接
加油,你已经完成一半了
解压mysql
首先,对安装的tar包进行解压。(这里不用tar包解压的方式也可以,网上有很多基于yum的mysql安装)。
tar -zxvf mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz
可以跟之前一样获得一个mysql-5.7.29-linux-glibc2.12-x86_64
的文件,同样地,名字太长了,先对他进行一个重命名
mv mysql-5.7.29-linux-glibc2.12-x86_64 mysql
改名为mysql
文件夹。
创建mysql的用户和用户组
添加mysql的用户组
groupadd mysql
添加名字叫mysql的用户名,并且把它归入到mysql用户组里
useradd -r -g mysql mysql
在根目录下,创建Mysql的安装目录(mysql的文件都保存在这个目录下)
mkdir -p /data/mysql
将这个目录的用户权限修改为mysql用户组中的mysql用户
chown mysql:mysql -R /data/mysql
修改后,通过命令ll
查询,可以查看到权限已经修改了。
编写mysql的配置文件
接下来需要写一个配置文件,从mysql5.7开始,my.cnf这个文件不再自动创建,因此我们要自己手动创建出来。
配置不对的话,后面初始化不全,会拿不到默认密码。
所以最好还是跟着我这里的配置写
vim /etc/my.cnf
将下面的配置代码复制粘贴到my.cnf文件上。
[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/www/server/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
#character config
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true
具体这些配置的参数是什么意思,博友们有兴趣可以自己去找。这里主要重点是basedir
、datadir
、log-error
、pid-file
这四个属性都是要配套我们之前的路径来写,如果博友们的路径和我的不一样,记得修改。
按ESC,:wq,保存好。
数据库初始化
接着就是数据库初始化。
回到mysql的bin目录下,这篇文章中,mysql的路径是:
/www/server/mysql/bin
,所以
cd /www/server/mysql/bin
进入bin后,使用下面的命令初始化mysql。
记得使用sudo来运行哦
./mysqld --defaults-file=/etc/my.cnf --basedir=/www/server/mysql/ --datadir=/data/mysql/ --user=mysql --initialize
命令解释:
--defaults-file=/etc/my.cnf 刚才写的配置文件
--basedir=/www/server/mysql/ 我们解压mysql的文件包路径
--datadir=/data/mysql/ 我们自己创建的专门用来放mysql数据的文件夹
--user=mysql 我们创建的名字叫mysql的用户
--initialize 初始化
运行完成之后,MySQL中会自动刚创建一个root账号,并且会在日志文件中产生出一个root账号的密码, 如果没有在这个阶段查看到密码的同学可能需要百度一下如何在忘记密码的情况下登录root账号。
我们通过以下命令,查看mysql的日志
cat /data/mysql/mysql.err
这里每个人随机的密码都是不一样的。
启动Mysql服务
先将mysql.server放置到/etc/init.d/mysql中
查找服务的位置
find / mysql.server
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
这一步的目的是让service命令可以识别mysql服务
service mysql start
接着我们就可以启动mysql服务了。
查看mysql父进程信息的命令如下:
ps -ef|grep mysql
命令解释
-e 显示所有进程。
-f 全格式。
更改Root密码
cd /www/server/mysql/bin
回到mysql的bin目录下,然后执行
./mysql -u root -p
根据刚才的密码来登录root账号
登录成功后,重置密码
SET PASSWORD = PASSWORD('你喜欢的密码');
修改密码为永不过期
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
刷新数据库配置
FLUSH PRIVILEGES;
访问mysql库
use mysql;
使root能被任何host访问(这个是为了我们能够远程登录mysql而做的一步)
update user set host = '%' where user = 'root';
再次刷新
FLUSH PRIVILEGES;
在防火墙中开放3306端口
跟tomcat一样,为了能够通过公网IP就能够远程访问到mysql,我们也要开放mysql的端口。操作和开放tomcat的操作基本没有太多区别。
首先确认一下防火墙的状态,如果防火墙状态是关闭的,请打开防火墙。
systemctl status firewalld
systemctl start firewalld
开放3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
配置立即生效
firewall-cmd --reload
通过SQLyog远程连接mysql
如果之前的步骤都已经顺利完成,那么就可以尝试一下用目前市面上流行的mysql图形化管理工具来远程连接一下部署好的mysql。
在windows中启动SQLyog,新建连接。
这个图应该很清楚了,点击测试连接。
出现连接成功!至此mysql就已经部署成功了。
接下来就可以用sqlyog远程对数据库进行操作了。
6、项目部署上线
恭喜你,已经到最后一步了!
接下来的操作其实才是我们最希望得到的结果。而且也非常非常的简单。
- 首先,将你的项目打包成war包。
- 其次,将war包通过
Xftp 5
传输到云服务器的/www/server/tomcat/webapps/
目录下 - 根据tomcat的web.xml的配置,webapps目录下的war包都会自动解压。(如何不会自动解压,请配置wab.xml文件)
然后你就可以通过公网IP:8080/项目名来访问你的项目啦,如图,
好!结束!
其实这里如何打包成war包也是有个超级大坑,导致我花了一晚上的时间去找其他人写的博客资料,这里由于篇幅问题,就放到另一篇文章上去讲,不会将项目打包成war包的博友们可以去看一下。
文章地址为:
IntelliJ IDEA 2020.3 将Web项目(SSM项目)打包成war包的步骤(包含解决访问404的方法)