Step 1 : 购买VPS
这里采用的是Vultr提供的VPS服务器。这里是链接:Vultr官方网站
选择的是 $5/month 的版本,可以用支付宝/微信付款,按照网站向导初始化服务器即可。
Step 2 : 用XShell连接服务器
1.安装XShell
2.创建新连接
使用服务器的IP地址,端口22,以及VPS提供商给定的用户名、密码
3.连接服务器
如果需要修改密码,可以使用命令:
passwd
Step 3 : 安装JDK
1.建立Java的目录&下载JDK
首先在/usr/local下建立java文件夹并直接更换到java目录以便后续下载。
cd /usr/local
mkdir java
cd ./java
由于本机与服务器之间互传文件如果太大的话容易产生错误或传输失败,所以在这里我选择的是直接让服务器下载JDK压缩包,命令如下:
wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" https://download.oracle.com/otn-pub/java/jdk/8u191-b12/2787e4a523244c269598db4e85c51e0c/jdk-8u191-linux-x64.tar.gz
用到的是wget命令,这里从“https”开始是压缩包的链接,可以以此为模板,直接更换链接来下载不同的文件。
2.解压缩JDK包
tar -zxvf jdk-8u191-linux-x64.tar.gz
3.配置环境变量
使用vim编辑配置文件。
vim /etc/profile
//在这里我遇到了找不到vim命令的错误,是vim事先没有安装,安装vim的命令如下:
用centos 的主机的時候, 用 vim 时出现 -bash: vim: command not found. 只能使用 vi. 那么如何安裝 vim 呢?
输入 rpm -qa|grep vim 命令, 如果 vim 已经正确安装,会返回下面的三行代码:
vim-minimal-7.0.109-6.el5
vim-common-7.0.109-7.2.el5
vim-enhanced-7.0.109-7.2.el5
如果少了其中的某一条,比如 vim-enhanced 的,就用如下命令来安装:
yum -y install vim-enhanced
如果上面的三条都沒有返回, 可以直接用
yum -y install vim*
原文:https://blog.csdn.net/qq_41661003/article/details/83107023
在打开的文件末尾加入以下四行(也可以在前三行前面都加上export,这样四行变成三行)。
JAVA_HOME=/usr/local/java/jdk1.8.0_191
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH
使配置文件生效。
source /etc/profile
查看JAVA是否安装成功。
java -version
Step 4 : 安装Apache Tomcat
下载和安装的基本步骤和上面Java的差不多。
1.创建目录
cd /usr/local
mkdir tomcat
cd ./tomcat
2.下载压缩包&解压缩
wget --no-check-certificate --no-cookies http://mirrors.shu.edu.cn/apache/tomcat/tomcat-8/v8.5.37/bin/apache-tomcat-8.5.37.tar.gz
tar -zxvf apache-tomcat-8.5.37.tar.gz
3.配置环境变量
vim /etc/profile
在打开的文件末尾加入:
export TOMCAT_HOME=/usr/local/tomcat/apache-tomcat-8.5.37
export CATALINA_HOME=/usr/local/tomcat/apache-tomcat-8.5.37
更新配置文件。
source /etc/profile
4.运行tomcat服务
$TOMCAT_HOME/bin/startup.sh
如果需要重启tomcat服务可以先运行$TOMCAT_HOME/bin/shutdown.sh来终止服务,然后再重新开启。
5.访问localhost来查看tomcat是否安装成功
curl localhost:8080
curl用来访问网页html源代码,运行上面的命令后如果返回一个html内容则证明tomcat安装成功。
参考文章:Linux命令行访问网页
如果遇到找不到curl命令可以百度一下如何安装curl(正常来讲系统都是自带curl的)。
Step 5 : 配置 Apache Tomcat 以实现使用外部浏览器访问到服务器
1.配置防火墙
在CentOS 7或RHEL 7或Fedora中防火墙由firewalld来管理,为了方便起见,我们在此转换为由iptables管理。
执行下面的命令:
systemctl stop firewalld
systemctl mask firewalld
安装iptables服务:
yum install iptables-services
设置开机启动:
systemctl enable iptables
systemctl stop iptables
systemctl start iptables
systemctl restart iptables
systemctl reload iptables
保存设置:
service iptables save
到这里我们就将防火墙转换为由iptables来管理了,如果想学习Firewalld相关命令,可以参考:解决CentOS7关闭/开启防火墙出现Unit iptables.service failed to load: No such file or directory.
2.开放 80 & 8080 端口
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 8080 -j ACCEPT
保存配置并重启服务
service iptables save
service iptables restart
3.对server.xml进行配置
vim $TOMCAT_HOME/conf/server.xml
将下方<Host>标签中的localhost修改为服务器IP地址以测试。
用外部浏览器访问http://ip:8080/,如果成功打开Tomcat界面,则证明这一步成功。
Step 6 : 挂载Web应用
1.把项目放在相应的目录中
本文采用的目录是/data/local/wwwroot/项目名
这里涉及到linux与win或win与win之间的文件互传。win与win之间可以参考下面的文章:
win与linux之间的文件传输可以采用rz命令或者WinSCP:
传输之后将文件解压缩到对应的目录中即可。
2.再次对server.xml进行配置,将域名与服务器中的项目目录绑定
参考文章:Linux 服务器配置网站以及绑定域名
vim $TOMCAT_HOME/conf/server.xml
在对应位置添加下面的条目:
<Host name="www.ncmmsc2019.org" appBase="/data/wwwroot/ncmmsc2019" unpackWARs="true" autoDeploy="true">
<Context path="" docBase="/data/wwwroot/ncmmsc2019" debug="0" reloadable="false" crossContext="true"/>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t "%r" %s %b" />
</Host>
appBase:顾名思义,就是程序基地的意思,也是是存放应用程序的路径,类似于tomcat默认的webapps,当自定义host标签时,这个值是可以自定义的绝对路径。
aotuDeploy:是否设置程序自动装载。
name:你的主机名,根据需要任意命名。
unpachWARs:是否自动解压war包。true值时,appdase下打成war包的项目会在tomcat启动时自动解压。
Context:配置上下文,也就是对应主机下的具体子项目。docBase指定项目的位置,可以是相对appBase的路径,也可以是绝对路径。如果使用相对appBase路径的位置,则直接写应用文件夹名字即可, 否则应该写绝对位置,如:/data/wwwroot/项目
参考文章:如何理解tomcat的server.xml中host、context的标签配置
笔者一开始将Context内容省略了,如下图。这导致了网页无法访问,Context的作用上面已经解释清楚了,没有它服务器就找不到index.html文件了。
3.修改默认端口
上面添加了<Host>条目后,保存修改重启tomcat,此时使用我们配置的域名进行访问,会发现还是访问失败,其实是因为端口没有改变,还是8080,如果要访问项目需要通过域名:端口的形式进行访问(形如:www.test.com:8080)。
还是修改server.xml配置文件,找到第一个出现的Connector配置节,将port="8080" 改成port="80",因为80端口是HTTP传输协议的默认端口,浏览器会默认缺省80端口,因此只需输入域名即可,不用输入[:80]。
参考文章:Linux安装Tomcat,域名解析,轻松使用域名访问项目
查看端口占用情况:
netstat -ntlp
参考文章:linux查看端口占用情况
正常情况下80端口应该被名为java的进程(tomcat)占用,如果被其他进程占用(例如httpd),可以重启服务器并重新开启Tomcat服务来解决,另外可以参考:
1)端口映射方法 CentOS7+Tomcat 生产系统部署
2)互换端口方法 80端口被Apache的httpd.exe所占用
Step 7 : 域名解析配置
这里用到的域名在阿里云托管,我们登陆阿里云的域名控制台。
点击解析,进入引导。
输入服务器的IP即可。
Step 8 : 查看结果
访问项目域名,成功访问,web应用挂载成功。
如果希望不输入前面的www.也能正常访问,那么可以重复Step 6 ,将不带前缀的地址也加入server.xml中。
过程总结
用户访问域名--->>
阿里云DNS服务器解析域名--->>
找到服务器的IP地址及端口(默认80)--->>
服务器找到监听该端口的进程来响应客户请求--->>
Tomcat根据server.xml找到项目地址--->>
返回给用户
额外的参考:域名能PING通,但访问不了的解决办法[linux系统](这篇文章建议安装httpd,笔者在病急乱投医中安装了httpd,但是否安装httpd在本文的架构中好像无关紧要...)