写在前:要想将我们写好的项目让其他人可以访问,仅仅完成代码是不能直接运行的。这就需要在Linux系统上搭建Java web程序的运行环境。这里以我所做的博客系统为例,进行搭建。
1. 准备依赖
(1)JVM(JDK) 虚拟机
(2)Tomcat 运行在Tomcat上
(3)Mysql数据库
在Linux上是通过命令的方式进行安装的,这里使用最简单的方式 -- 包管理器 进行安装。
Linux会把一些软件包,放到对应的服务器上,通过包管理器这样的程序,来吧这些软件包下载安装。ubuntu -- apt,centos -- yum(这里我使用的是ubuntu)。
1.1 jdk安装
(1)使用 apt 命令来查看服务器上有哪些软件包。(搭配grep使用)
apt list | grep jdk
自己电脑上的jdk和云服务上的jdk一致,这里我使用的是jdk8。
在安装的时候要确保是出于root用户下,如果不是管理员,需要使用 sudo su 切换到管理员。
sudu su
复制:ctrl+insert
粘贴:shift+insert 将选择的版本名字粘贴到后面
输入安装命令
确认
等待
安装成功确认-javac
1.2 tomcat安装
1.2.1 命令安装
输入命令查找tomcat
apt list | grep tomcat
但是这里的tomcat是9版本的,我电脑中使用的是tomcat8.5
tomcat8.5 搭配的是servlet3.1,如果是tomcat9 就需要搭配servlet4.0
1.2.2 手动安装tomcat
(1)将之前电脑上的Tomcat上传到Linux上
A. 需要先安装 lrzsz 这样的软件包
apt install lrzsz
lrzsz包含两个命令:
sz -- 把linux上的文件传到windows上。
rz -- 把windows上的文件传到linux上。
B. 新建目录
将tomcat的拖进目录,一次只能拖动一个文件(打成压缩包)
(2)解压缩
unzip命令:需要在ubuntu上安装unzip。
unzip +包名进行解压缩
查看解压后的文件
可以看到展示出来的文件和windows上是相同的,下面进行启动tomcat -- 进入 bin/ 目录
(3)修改 .sh文件的执行权限
让.sh文件可执行。操作:进入bin目录中
chmod +x *.sh
执行完没有报错,说明执行成功,这时再次查看bin目录下的文件,发现所有的.sh文件都变绿了。
(4)启动tomcat
进入bin目录下 输入命令 sh startup.sh
但是当我输入此命令后系统报错了:
touch: cannot touch '/home/ubuntu/javaproject/apache-tomcat-8.5.97/logs/catalina.out': Permission denied
报错原因:logs目录没有创建修改权限
解决办法:所有人可操作logs文件
进入到tomat的目录中,找到有
logs
文件夹的目录,执行下面命令。意思就是改变logs
文件夹的权限,使tomcat可以有权限访问此文件夹。执行下面的命令:sudo chmod a+rwx -R logs
再次执行,正常启动。
(5)验证成功
使用ps 查看java进程有没有;使用netstat查看8080是否被绑定;访问tomcat欢迎界面。
ps aux | grep tomcat
netstat -anp |grep 8080
补充:关闭某个进程 -- kill 进程id
从浏览器访问欢迎页面:
直接输入ip+端口,很有可能访问失败,原因是没有打开云服务器的防火墙/安全组。
如何打开云服务器的防火墙/安全组
打开云服务器--添加规则
再次打开,就可以正常访问啦~
1.3 mysql安装
通过apt安装
apt list | grep mysql
apt install mysql-server-8.0
输入安装mysql的命令,即可点击完成安装。安装完毕之后mysql的服务器九自动启动了。
查看mysql的运行状态:
service mysql status
2. 程序部署
2.1 构建数据库数据表
将我们创建的数据库表的语句粘贴到终端。
退出mysql ctrl + d
2.2 将程序打包
需要先确认一下配置是否需要进行修改。注意本地的数据库的密码和云服务器中的密码是否相同,没有设置就是无密码。
打成war包,找到pom.xml添加配置。
<packaging>war</packaging>
<build>
<finalName>java109_blog_system</finalName>
</build>
进行打包
2.3 部署程序
将war上传到Linux的tomcat的webapps目录中。通过浏览器来访问页面。
此时可能会遇到登陆不上去的问题,可能原因是没有设置数据库的密码,关于mysql8密码设置的命令:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';
这里我将它设置成了空字符串,最后网页是可以进行访问的。
《我的博客》系统链接:
http://49.232.51.45:8080/java109_blog_system/blog_list.html
账号密码:
以上就是完成了一个简单的程序部署的内容,也是完成了一个很简陋的项目搭建,关于功能并没有进行完善,后续在进行相应的完善~加油加油。