老师的要求是“在云服务器上部署网页或JavaWeb应用”,这样老师就可以通过url方便地看作业
按照老师给的教程,一共分四步:
- 申请云服务器
- 建议安装ubuntu18.04 LTS X64版本(有条件的可以选择windows Server系列)
- 在linux中安装jdk,tomcat以及mysql,并测试成功。
- 上传一个网页或web应用到远程服务器
第一步,买了华为云Flexus应用服务器L进行配置;第二步,买云服务器的时候就可以选择安装Ubuntu18.04;那么问题就在于第三步和第四步了。
前期准备
首先光安装了系统并不足够,要确定系统能正常用
1.使用华为云的CloudShell
设置密码
开机,点远程登录
注意里说要开放安全组的22端口
在控制台,点弹性公网IP
点安全组
然后出现一个列表,找到云服务器实例关联的规则
点一键开放常用端口就有22了
另外tomcat需要开放8080端口,一键开放常用端口没有8080,就手动开一下
在入方向规则界面点添加规则:
列表里出现这一条就成功了
安全组设置好后,再去点远程登陆,输入密码以后出现这个界面就成功拥有一个安装Ubuntu18.04系统的线上电脑了;这个界面是Linux终端,可以敲Linux命令进去
2.开启root账户(可不做)
输入命令
sudo passwd
之后设置root账户的账号密码
(其实进来就已经是root账号了,所以可不做)
3.下载最新的软件列表
(在root账户下)输入命令
apt-get update
4.安装ubuntu软件包更新,下载最新的软件包,替换过时软件
apt-get upgrade
安装jdk mysql tomcat
开始第三步了,也就是安装jdk→mysql→tomcat
1.安装JDK11
输入命令
apt install default-jdk
ubuntu18.04默认java环境就是openjdk11,可直接装
java -version
查看JDK版本
出来这个结果就是JDK装好了
2.安装MySQL5.7
apt-get install mysql-server mysql-client
mysql -u root -p
然后输入mysql的root密码,设复杂一点
进到这个界面证明安装好了,输入exit就可以回去
3.安装Tomcat9.0.85
首先要拿到安装包 apache-tomcat-9.0.85.tar.gz
https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.85/bin/apache-tomcat-9.0.85.tar.gz
tomcat官网的archive(归档)页面可以找到
接下来的事情依据Linux系统下安装部署Tomcat 服务器【玩转华为云】-云社区-华为云的5.2小节进行
把这个文件上传到ubuntu的 /usr/local/ 文件夹
文件在左边的文件夹现身就上传成功,不放心的话cd /usr/local/然后ls -l看看文件大小够不够,我第一次传的时候传输出错只传了1M过去,然后解压出错
那个11809177就是文件大小(字节为单位)
cd /usr/local/
tar zxvf apache-tomcat-9.0.85.tar.gz
解压安装包
这样就解压成功了
右键重命名一下apache-tomcat-9.0.85文件夹,改名叫tomcat
之后
cd /usr/local/tomcat/bin/
就可以飞到tomcat的bin文件夹下。在这个文件夹按ls,可以看见一个叫做startup.sh的文件
此时输入
./startup.sh
启动tomcat
看到Tomcat started.,确认tomcat成功启动的第一个测试就成了
第二个测试是 安全组的入方向规则开放8080端口后(必须条件) 在浏览器地址栏输入 公网ip:8080 然后回车访问该url;所谓公网ip就是
如果出现这个界面,你的Tomcat就正式安装成功了
终于到第四步了……
部署网页和Web应用到云服务器
1.部署静态网页
建议在本机(一般是windows)安一个Tomcat服务器,作为部署测试用(用idea搞javaweb开发一般都会有的)
上图是Tomcat软件的根目录。为了启动tomcat服务器,接下来进入bin文件夹
双击Tomcat9.exe开启Tomcat服务器
跳出来的命令行窗口不要关掉,关掉这个窗口等于关掉Tomcat
访问方式是浏览器地址栏(也就是url)输入 localhost:8080
出现这个界面就开好了,这里访问的是本机的tomcat服务器。如果没有出现,一般是8080端口被占用,解决方式自行搜索
Tomcat根目录里有个叫webapps的文件夹,就是用来发布静态网页或web应用的
平常里面应该只有这三个文件夹,不用去管它;在webapps这个文件夹里开一个自己的文件夹,比如test(名字随便起),在这个自己的文件夹里放.html文件(网页文件),比如放一个helloworld.html,在tomcat服务器启动的前提下,在地址栏输入 localhost:8080/test/helloworld.html,就能访问到这个网页了
在云服务器上是完全同理的……只不过把localhost换成公网ip
在云服务器的/usr/local/tomcat/webapps这个文件夹里做和本机一模一样的操作,只要把url的localhost换成公网ip,访问的就是云服务器上的存的网页;想访问哪个网页(html文件),就把webapps当作根目录,在 公网ip:8080 后面拼接那个文件的路径,就可以访问到了。
另外,在这个文件夹里可以设置一个index.html文件,如果访问的路径是/自定义文件夹名,那默认就会打开这个index.html文件
另外,云服务器是不需要关机的。为了让任何人都能随时访问服务器上的网页,服务器(包括电脑本体也就是OS+tomcat程序)要一直开着机。
2.部署web应用
本质上就是学会打包.war文件;这方面我也不太懂可以找其他教程
使用idea ultimate 2020.1
创建project java Enterprise 勾web application 然后idea会自动创建web应用目录结构
project structure Artifacts(工件) +号 选Web Application:Archive 点OK
在idea配置Tomcat服务器,就在运行按钮旁边的小三角,很简单的
写好web应用后,点菜单栏的Build,点Build Artifact,出现这个界面,点:war
打包好的.war文件就会出现在项目根目录/out/artifacts/这个文件夹下;这个文件相当于把整个web项目打包成了一个文件
把.war文件上传到webapps文件夹里,然后就web应用部署好了不用管了
启动状态的tomcat会自动解压上传到这里的.war文件,然后在idea里运行是什么样的部署到云服务器上就是什么样的
我不知道怎么命名工件,所以url显得比较诡异……
end
因为这个部署过程比较复杂就记录一下,保证可行性但原理基本上都不清楚,所以中间肯定有很多没有用的步骤
补充:用那个bin文件夹Tomcat9.exe启动的方法会和idea开起来的Tomcat打架(抢8080端口),后启动的那个会出bug,这时候关掉一个就好了
关掉Tomcat9.exe启动的Tomcat,首先关掉命令行窗口;然后双击shutdown.bat。如果idea那边还是说8080端口冲突开不起来也不用怕,重启电脑就好