首先来说,Boss丢给我了一个阿里云的ECS云服务器,还有一个半成品的网站源码,要我弄上去。

我本来自信满满的认为,和写博客一样,无非就是上传到服务器。。

结果拿到文件我就懵掉了。。这都是些什么东西啊。。。java项目么???

What the hell?

纠结了好几天后,终于,Boss公司的一个人告诉了我,这个东西是使用Springboot框架开发的

行吧,果然还是我见识太少了

至于云服务器,我没用过这种的,不过大体上应该也差不多,boss给我的是装了windows server的实例,我想用linux来着。。。

反正也没有其他项目,直接删了重来好了。

Boss,如果你不给我验证码我没法弄啊hhhhhhhh(又是摸鱼的下午)

Boss终于主动联系我了,我给自己建了一个最高等级的raw账号,hhhh删库跑路也没问题的那种权限。

终于改成Ubuntu了,虽然不是太熟悉,但是至少比winser强多了。

安装maven

1、更新apt

1
sudo apt update

2、安装```maven``

1
sudo apt install maven

3、通过运行mvn -version命令验证安装:

1
mvn -version

安装Tomcat

安装java

这里其实还需要更新apt索引,但是鉴于刚刚跟新完就不更新了

使用apt安装Java Development Kit软件包:

1
sudo apt install default-jdk

安装Tomcat

创建Tomcat用户

出于安全考虑,Tomcat应该作为非特权用户运行(即不是root用户)。 我们将创建一个将运行Tomcat服务的新用户和组。

首先,创建一个新的tomcat组:

1
sudo groupadd tomcat

接下来,创建一个新的tomcat用户。

我们将使这个用户成为tomcat组的成员,主目录为/opt/tomcat(我们将安装Tomcat),shell为/bin/false(因此没有人可以登录该帐户):

1
sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat

现在我们已经设置了tomcat用户,让我们下载并安装Tomcat。

安装Tomcat

下载二进制文件

安装Tomcat 9的最佳方法是下载最新的二进制版本,然后手动配置它。

Tomcat 9下载页面上找到最新版本的Tomcat 9。 在撰写本文时,最新版本为9.0.38 ,但如果可用,则应使用更高版本的稳定版本。 在Binary Distributions部分下,然后在Core列表下,将链接复制到“tar.gz”。

如:http://mirror.easyname.ch/apache/tomcat/tomcat-9/v9.0.38/bin/apache-tomcat-9.0.38.tar.gz

接下来,切换到服务器上的/tmp目录。

1
cd /tmp
1
curl -O http://mirror.easyname.ch/apache/tomcat/tomcat-9/v9.0.38/bin/apache-tomcat-9.0.38.tar.gz

我们将Tomcat安装到/opt/tomcat目录。 创建目录,然后使用以下命令将存档解压缩到它:

1
2
sudo mkdir /opt/tomcat
sudo tar xzvf apache-tomcat-9*tar.gz -C /opt/tomcat --strip-components=1

接下来,我们可以为我们的安装设置适当的用户权限。

更新权限

我们设置的tomcat用户需要能够访问Tomcat安装。 我们现在就把它搞定。

切换到我们解压缩Tomcat安装的目录:

1
cd /opt/tomcat

授予tomcat组对整个安装目录的所有权:

1
sudo chgrp -R tomcat /opt/tomcat

接下来,让tomcat组对conf目录及其所有内容进行读访问,并执行对目录本身的访问:

1
2
sudo chmod -R g+r conf
sudo chmod g+x conf

使tomcat用户成为webapps , work , temp和logs目录的所有者:

1
sudo chown -R tomcat webapps/ work/ temp/ logs/

现在已经设置了适当的权限,我们可以创建一个systemd服务文件来管理Tomcat进程。

创建systemd服务文件

我们希望能够将Tomcat作为服务运行,因此我们将设置systemd服务文件。

Tomcat需要知道Java的安装位置。 此路径通常称为“JAVA_HOME”。 查找该位置的最简单方法是运行此命令:

1
sudo update-java-alternatives -l

我这里输出是

1
java-1.11.0-openjdk-amd64      1111       /usr/lib/jvm/java-1.11.0-openjdk-amd64

您的JAVA_HOME是最后一列的输出(以红色突出显示)。 鉴于上面的示例,此服务器的正确JAVA_HOME将是:/usr/lib/jvm/java-1.11.0-openjdk-amd64

有了这条信息,我们就可以创建systemd服务文件了。 键入以下命令,在/etc/systemd/system目录中打开名为tomcat.service的文件:

1
sudo nano /etc/systemd/system/tomcat.service

将以下内容粘贴到您的服务文件中。 如有必要,修改JAVA_HOME的值以匹配您在系统上找到的值。 您可能还想修改CATALINA_OPTS中指定的内存分配设置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
[Unit]
Description=Apache Tomcat Web Application Container
After=network.target

[Service]
Type=forking

Environment=JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'

ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh

User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target

注:
其中Environment=JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64中,路径需要根据自己的java安装位置进行修改。

完成后,保存并关闭文件。

接下来,重新加载systemd守护程序,以便它知道我们的服务文件:

1
sudo systemctl daemon-reload

键入以下命令启动Tomcat服务:

1
sudo systemctl start tomcat

键入以下内容,仔细检查它是否正常启动:

1
sudo systemctl status tomcat

调整防火墙并测试Tomcat服务器

现在Tomcat服务已启动,我们可以测试以确保默认页面可用。

在我们这样做之前,我们需要调整防火墙以允许我们的请求到达服务。 如果您遵循先决条件,则当前将启用ufw防火墙。

Tomcat使用端口8080接受传统请求。 输入以下内容允许到该端口的流量:

1
sudo ufw allow 8080

修改防火墙后,您可以通过在Web浏览器中访问您的域或IP地址,然后访问:8080来访问默认启动页面:

1
http://server_domain_or_IP:8080

除了其他信息之外,您还将看到默认的Tomcat启动页面。 但是,例如,如果单击Manager App的链接,则将拒绝您访问。 我们接下来可以配置该访问。

如果您能够成功访问Tomcat,现在是启用服务文件的好时机,以便Tomcat在启动时自动启动:

1
sudo systemctl enable tomcat

2020-9-22 21:54:29,我发现我远程访问不过去。。具体原因也没排查出来。。我要疯掉了。。今天就到这里好了,明天去公司重新安装一下环境。


时间:2020-9-23 16:29:20

我今天又折腾一天这个配置。我快哭了。。刚刚终于弄好了

我打算记录一下。

最终,我选用了这篇内容[^1]作为安装的过程,其实大体上差不多。。

大概的步骤如下:

  • 首先安装java-JDK
  • 下载Tomcat包
  • 创建一个专门的用户来安装Tomcat
  • 解压Tomcat包到/opt/tomcat/目录下。
  • 配置/etc/systemd/system/tomcat.service文件
  • 命令sudo systemctl daemon-reload通知 systemd 一个新的单元文件存在
  • 命令sudo systemctl start tomcat来启动 Tomcat 服务

基本上正常的安装就是这些步骤。

但是,无论我在服务器上怎样重新配置,都无法使用ip访问。。

于是在找资料的过程中,我发现有些内容让我误以为Tomcat无法通过外网访问了。

于是我打开了自己的Vmware,启动了Ubuntu,按照这一套方法安装。。

结果是非常的Amazing啊。。竟然在本机也无法访问。。

于是继续在网上查找。。。。。

经过海量的查找,我终于找到了一个切入点^2——查看日志文件

于是使用命令nano /opt/tomcat/apa*/logs/ca*.log打开日志文件。

根据里边的内容,我发现原来是端口号冲突导致的。

那么换一个端口号8081试一试^3。。

配置/opt/tomcat/apa*/conf/server.xml文件中的端口,找一个不冲突的改一下

然后重启服务。。。

访问172.0.0.1:8081。。。

然而,还是不行。

就在我抓狂之际,头脑中一道闪电划过。

既然172.0.0.1不行,那我可以试一试localhost

结果。。他就能访问了

看到那个界面,我的眼角湿润了

。。。。。。。

于是,按照这个思路,我重新配置了服务器上的环境。。同样的步骤

配置完成后,访问ip:8081

竟然还是访问不了。。

又是各种查找资料,但是这次我已经确认过端口号、日志文件,都没有出现任何问题。。

于是我找到了这样一篇文章^4

根据里边的步骤一路做下来,我发现我的配置没有任何问题。

但是在第四步检查远程访问的ip地址是否正确的时候,我突然惊奇的发现,我这里的ip地址是172.20.51.5,竟然是一个内网的ip地址。。

于是我突发奇想,没有外网ip,但是阿里云控制台上确实有公网ip

难道是这部分出现了问题???

于是我找到了这样一篇文章^5,抱着试一试的心里。。我按照这个文章的步骤,把8081开放到公网ip下

尝试访问ip:8081。。。

结果那个页面终于出现了。。。

阿里云我可谢谢你默认关闭端口哦

明天再弄吧。。我今天可能已经傻掉了

还是今天。。我想了一下,这篇文章就到这里结束吧,明天开始的内容如果有需要我会记录在一篇新的文章中。

这边是下一篇文章的传送门,如果你感兴趣的话可以去看一看呢:传送门へ

参考

如何在Ubuntu 18.04上安装Apache Maven:https://www.myfreax.com/how-to-install-apache-maven-on-ubuntu-18-04/

如何在Ubuntu 18.04上安装Apache Tomcat 9:https://www.howtoing.com/install-tomcat-9-ubuntu-1804

ubuntu安装jdk1.8:https://www.cnblogs.com/kaishirenshi/p/10973613.html

[^1]: 如何在Ubuntu 20.04上安装Tomcat9:https://zhuanlan.zhihu.com/p/143981355