有人知道在 Ubuntu 18.04 上设置 Apache2 和 Tomcat8.5 的良好指南吗?(包括 Apache Tomcat 连接器:mod_jk)
答案1
网上有很多指南介绍如何完成这些任务,但似乎很多指南都省略了一两个步骤,导致人们在类似这个网站上提出问题。话虽如此,DigitalOcean 还是为常见软件包提供了一些更好的指南。
话虽如此,AskUbuntu 并不是一个让人丢弃链接然后离开的网站。链接失效是真实存在的,应尽可能避免。因此,考虑到这一点,让我们安装一些软件。
Ubuntu Server 18.04 上的 Apache2
以下是在最新的 Ubuntu 18.04 上安装 Apache 的方法:
- 连接到机器
- 更新
apt
:sudo apt update
- 安装Apache:
sudo apt install apache2
- 首先列出应用程序
ufw
需要注意的事项,以允许 Apache 通过防火墙:
这会给你类似这样的结果:sudo ufw app list
允许 Apache:Available applications: Apache Apache Full Apache Secure OpenSSH
确认状态:sudo ufw allow 'Apache'
你应该看到类似这样的内容:sudo ufw status
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Apache ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Apache (v6) ALLOW Anywhere (v6)
- 在浏览器中输入服务器的 IP 地址,测试 Web 服务器是否正常工作。您应该会看到一个带有 Ubuntu 徽标和一些配置信息的 Apache 常用页面。
来源:数字海洋
安装 Tomcat 8.5
Tomcat 8.5 是 Ubuntu 16.04 可用的版本,Tomcat 9 是 18.04 可用的版本。也就是说,如果您确实必须在 18.04 服务器上安装 8.5,您可以这样做。
(可选步骤 - 仅在安装 Apache 后断开与服务器的连接时执行)
- 连接到机器
- 更新
apt
sudo apt update
现在让我们安装 Tomcat 8.5:
- 安装 Java 开发工具包:
sudo apt-get install default-jdk
- 创建供 Tomcat 使用的组和用户:
sudo groupadd tomcat sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
- 从以下网址下载 Tomcat 8.5Apache Tomcat 网站。截至撰写本文时,8.5.65 是最新版本。您可以通过以下方式下载
curl
:curl -O https://downloads.apache.org/tomcat/tomcat-8/v8.5.65/bin/apache-tomcat-8.5.65.tar.gz
- Tomcat 将被保存到
/opt/tomcat
目录中,因此让我们进行设置:sudo mkdir /opt/tomcat sudo tar xzvf apache-tomcat-8*tar.gz -C /opt/tomcat --strip-components=1
- 现在让我们正确设置权限:
cd /opt/tomcat sudo chgrp -R tomcat /opt/tomcat sudo chmod -R g+r conf sudo chmod g+x conf sudo chown -R tomcat webapps/ work/ temp/ logs/
- 接下来我们需要获取 Java 的当前位置:
你会看到类似这样的内容:sudo update-java-alternatives -l
需要该路径java-1.8.0-openjdk-amd64 1081 /usr/lib/jvm/java-1.8.0-openjdk-amd64
JAVA_HOME
,它将在下一步中设置。 .service
使用您选择的编辑器为 Tomcat 创建一个 systemd文件:
将以下内容粘贴到文件中:sudo vi /etc/systemd/system/tomcat.service
记得改为[Unit] Description=Apache Tomcat Web Application Container After=network.target [Service] Type=forking Environment=JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64/jre 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
JAVA_HOME
上一步的路径,并保留/jre
在路径的末尾。完成后,保存并关闭文件。- 重新加载 systemd 守护进程:
sudo systemctl daemon-reload
- 启动 Tomcat:
确认其正常工作:sudo systemctl start tomcat
sudo systemctl status tomcat
- 允许 Tomcat 通过防火墙:
然后使用以下方法测试安装sudo ufw allow 8080
http://server_domain_or_IP:8080
- 将 Tomcat 设置为开机自动启动:
sudo systemctl enable tomcat
- 现在配置管理界面。打开配置 XML 文件并设置合适的登录名和密码:
你会看到类似这样的内容:sudo vi /opt/tomcat/conf/tomcat-users.xml
保存文件。<tomcat-users ...> <user username="crazyTown" password="superSecretPassword!123" roles="manager-gui,admin-gui"/> </tomcat-users>
- 重新启动 Tomcat:
sudo service tomcat restart
- 在浏览器中再次测试 Web 界面。
来源:数字海洋
Apache 的 mod_jk
这是最后一步。
(可选步骤 - 仅在安装 Apache 后断开与服务器的连接时执行)
连接到机器
更新
apt
sudo apt update
安装
mod_jk
:sudo apt install libapache2-mod-jk
在 Tomcat 上启用重定向端口:
sudo vi /opt/tomcat/server.xml
取消注释如下行:
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
为 Apache创建一个
workers.properties
文件:sudo vi /etc/apache2/workers.properties
将以下内容粘贴到新文件中:
# Define one worker using AJP13 worker.list=worker1 # Set the properties worker.worker1.type=ajp13 worker.worker1.host=localhost worker.worker1.port=8009
指示 Apache 使用该文件:
sudo vi /etc/apache2/mods-available/jk.conf
找到
JkWorkersFile
属性并将其设置为刚刚创建的文件:JkWorkersFile /etc/apache2/workers.properties
最后,确保 Apache 传递到 Tomcat:
sudo vi /etc/apache2/sites-enabled/000-default.conf
然后将其添加到您的
<VirtualHost *:80>
配置中:JkMount /api worker1
重新启动 Tomcat 和 Apache:
sudo service tomcat restart sudo service apache2 restart
来源:我在 Evernote 中无尽的配置笔记......
这应该为您提供了让这三个软件协同工作所需的一切。这是在运行 Ubuntu Server 18.04.5 LTS 的 VirtualBox VM 中测试的。