1. 准备环境
先装好这些东西:
- Apache HTTP Server(就是 Apache)
- Tomcat
- 编译器:gcc、make
- Java 开发环境(JDK)
在 Ubuntu/Debian 上你可以这么装:
sudo apt update
sudo apt install build-essential apache2 tomcat9 openjdk-11-jdk
2. 下载并解压源码
安装包下载:https://pan.quark.cn/s/220ddde3d4ce**,假设你已经下载了 tomcat-connectors-1.2.32-src.tar.gz:
tar -xzf tomcat-connectors-1.2.32-src.tar.gz
cd tomcat-connectors-1.2.32-src/native
3. 设置环境变量
要让编译知道 Apache 和 Tomcat 在哪,得设置几个变量:
export APACHE_HOME=/usr/local/apache2 # 或者你 Apache 实际安装路径
export TOMCAT_HOME=/usr/share/tomcat9 # 或者你 Tomcat 的路径
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
注意:路径要根据你自己系统实际情况改。
4. 配置和编译
进入 native 目录后执行:
./configure --with-apxs=/usr/bin/apxs2
make
--with-apxs是指定 apxs 工具的路径,一般在/usr/bin/apxs2或/usr/bin/apxs- 如果提示找不到 apxs,可以装:
sudo apt install apache2-dev
5. 安装模块
编译完会生成一个 .so文件(比如 mod_jk.so),把它复制到 Apache 的模块目录:
sudo cp apache-2.0/mod_jk.so /usr/lib/apache2/modules/
6. 配置 Apache 加载 mod_jk
编辑 Apache 配置文件(比如 /etc/apache2/apache2.conf或新建一个 /etc/apache2/mods-available/jk.load):
LoadModule jk_module modules/mod_jk.so
然后启用模块:
sudo a2enmod jk
7. 配置 workers(告诉 Apache 怎么连 Tomcat)
创建文件 /etc/apache2/workers.properties,内容类似:
worker.list=worker1
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
再创建一个配置文件 /etc/apache2/jk.conf(或加到 apache2.conf 里):
JkWorkersFile /etc/apache2/workers.properties
JkMount /* worker1
8. 重启 Apache 和 Tomcat
sudo systemctl restart apache2
sudo systemctl restart tomcat9
9. 测试
放个 JSP 页面到 Tomcat 的 webapps 目录下,比如 test.jsp:
<%= new java.util.Date() %>
然后通过 Apache 访问:http://你的服务器/test.jsp,如果能显示时间,说明成功了。