如何在同一服务器环境下运行PHP和Tomcat?

2024-03-02

不久前在 AskUbuntu 上问过这个问题:https://askubuntu.com/questions/630897/apache-httpd-backed-by-both-tomcat-and-php https://askubuntu.com/questions/630897/apache-httpd-backed-by-both-tomcat-and-php但那里没有答案,所以我决定在这里问。

再一次 - 假设我有可以通过某个域名访问的服务器,例如http://mywebapp.com/ http://mywebapp.com/

我想在该服务器上设置以下内容:

  • 所有请求都像http://mywebapp.com/blog*由处理PHP服务器(具体为 WordPress 博客引擎)
  • all other要求http://mywebapp.com/*由处理Apache Tomcat

我认为这可以通过放置来实现Apache HTTPD双方前面的服务器Tomcat and PHP服务器,但找不到实现此目的的配置。

有人可以提供有关如何实现这一目标的任何提示吗?


您可以使用 mod_jk 来做到这一点:

1) 在 Apache Web 服务器 httpd.conf 中启用模块“mod_jk”。通过删除前导哈希来取消注释此行:

LoadModule jk_module modules/mod_jk.so

如果您使用的是 Linux,请输入:

sudo apt-get install libapache2-mod-jk
sudo a2enmod jk

2) 编辑[TOMCAT_DIR]/conf/server.xml。将“jvmRoute”属性添加到“engine”元素:

<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat">

取消注释 AJP 连接器(http 连接器可能被禁用):

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

3) 在“httpd.conf”旁边创建一个文件“workers.properties”。添加此内容并设置正确的 ip/端口:

worker.list=tomcat

worker.tomcat.type=ajp13
worker.tomcat.host=127.0.0.1
#This is the port from the AJP connector, not HTTP!
worker.tomcat.port=8009
worker.tomcat.lbfactor=10

4) 在 httpd.conf 末尾添加此映射,并将 [PATH_TO_DIR] 替换为绝对路径:

<IfModule jk_module>

  JkWorkersFile [PATH_TO_DIR]\workers.properties
  JkLogFile [PATH_TO_DIR]\mod_jk.log 
  JkLogLevel INFO 
  JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories 

  SetEnvIf Request_URI "/error/*" no-jk
  SetEnvIf Request_URI "/blog*"   no-jk

  JkMount    /                    tomcat
  JkMount    /*                   tomcat

</IfModule>

5)启动Tomcat并重新启动Httpd。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在同一服务器环境下运行PHP和Tomcat? 的相关文章

  • 大数据使用什么数据结构

    我有一个包含一百万行的 Excel 工作表 每行有 100 列 每行代表一个具有 100 个属性的类的实例 列值是这些属性的值 哪种数据结构最适合在这里使用来存储数百万个数据实例 Thanks 这实际上取决于您需要如何访问这些数据以及您想要
  • 未捕获的异常“Google_IO_Exception”,消息为“HTTP 错误:无法连接”

    我有一个任务 查询 运行一些从 gmail 邮箱检索数据的 php 代码 直到上周五 2015 年 4 月 10 日 它一直工作正常 现在我收到以下错误日志 E 11 58 26 094 2015 04 15 200 3 38 KB 14
  • Kotlin 未解决的参考:CLI 上 gradle 的 println

    放一个printlnkotlin 函数返回之前的语句会崩溃 堆栈跟踪 thufir dur NetBeansProjects kotlin thufir dur NetBeansProjects kotlin gradle clean bu
  • 如何根据运行的 jar 的结果让我的 ant 任务通过或失败?

    我正在运行 CrossCheck 无浏览器 js 单元测试 作为 ant 脚本的一部分 如果 CrossCheck 测试失败 我希望 ant 报告失败 这是 build xml 中的相关部分
  • 如何使用 Hibernate (EntityManager) 或 JPA 调用 Oracle 函数或过程

    我有一个返回 sys refcursor 的 Oracle 函数 当我使用 Hibernate 调用该函数时 出现以下异常 Hibernate call my function org hibernate exception Generic
  • 使用 Guice 优化注册表

    你好 今天思考了一种优化 有一些疑问 语境 我正在使用 Guice 2 进行 Java 开发 在我的网络应用程序中 我有一个转换器注册表 可以即时转换为某种类型 转换器描述如下 public class StringToBoolean im
  • Java Swing For mac 中的 DJ Native Swing 浏览器

    我有一个用 Swing 制作的 Java 应用程序 并且使用了一个 DJ Native Swing 浏览器 当我尝试在 OS X 上使用它时 它抛出了一个NoClassDefFoundError尽管我添加了 swt jar 但始终如此 有人
  • 如何避免 ArrayIndexOutOfBoundsException 或 IndexOutOfBoundsException? [复制]

    这个问题在这里已经有答案了 如果你的问题是我得到了java lang ArrayIndexOutOfBoundsException在我的代码中 我不明白为什么会发生这种情况 这意味着什么以及如何避免它 这应该是最全面的典范 https me
  • 内部存储的安全性如何?

    我需要的 对于 Android 我需要永久保存数据 但也能够编辑 并且显然是读取 它 用户不应访问此数据 它可以包含诸如高分之类的内容 用户不得对其进行编辑 我的问题 我会 并且已经 使用过Internal Storage 但我不确定它实际
  • QuerySyntaxException:无法找到类

    我正在使用 hql 生成 JunctionManagementListDto 类的实际 Java 对象 但我最终在控制台上出现以下异常 org hibernate hql internal ast QuerySyntaxException
  • Docker 和 Eureka 与 Spring Boot 无法注册客户端

    我有一个使用 Spring Boot Docker Compose Eureka 的非常简单的演示 我的服务器在端口 8671 上运行 具有以下应用程序属性 server port 8761 eureka instance prefer i
  • 使用布尔值进行冒泡排序以确定数组是否已排序

    我有以下用于冒泡排序的代码 但它根本不排序 如果我删除布尔值那么它工作正常 我知道 由于我的 a 0 小于所有其他元素 因此没有执行交换 任何人都可以帮助我解决这个问题 package com sample public class Bub
  • Java Swing:需要一个高质量的带有复选框的开发 JTree

    我一直在寻找一个 Tree 实现 其中包含复选框 其中 当您选择一个节点时 树中的所有后继节点都会被自动选择 当您取消选择一个节点时 树中其所有后继节点都会自动取消选择 当已经选择了父节点 并且从其后继之一中删除了选择时 节点颜色将发生变化
  • Resteasy 可以查看 JAX-RS 方法的参数类型吗?

    我们使用 Resteasy 3 0 9 作为 JAX RS Web 服务 最近切换到 3 0 19 我们开始看到很多RESTEASY002142 Multiple resource methods match request警告 例如 我们
  • PHP cURL 在本地工作,在 AWS 服务器上出现错误 77

    最新更新 脚本作为管理员用户通过 SSH shell 作为 php script php 成功运行 当由 nginx 用户运行时 curl 命令无法执行 https 请求 所以我猜测这是nginx用户无法正确使用curl的问题 我已经检查了
  • 将 Apache Camel 执行器指标发送到 Prometheus

    我正在尝试转发 添加 Actuator Camel 指标 actuator camelroutes 将交换 交易数量等指标 发送到 Prometheus Actuator 端点 有没有办法让我配置 Camel 将这些指标添加到 Promet
  • 在 PHP 中模拟 jQuery.ajax 请求

    我必须在 PHP 中模拟 AJAX 请求 就像在 jQuery 中一样 我当前的代码在这里 原始 AJAX 调用 不得修改 ajax type POST url someFile php data data success function
  • Java EE 目录结构

    我对以下教程有疑问 http www mkyong com jsf2 jsf 2 internationalization example http www mkyong com jsf2 jsf 2 internationalizatio
  • 在java中使用多个bufferedImage

    我正在 java 小程序中制作游戏 并且正在尝试优化我的代码以减少闪烁 我已经实现了双缓冲 因此我尝试使用另一个 BufferedImage 来存储不改变的游戏背景元素的图片 这是我的代码的相关部分 public class QuizApp
  • 文件修改时间检查的成本

    对于Linux下包含少量字节的文件 我只需要处理自上次处理以来发生更改的时间 我通过调用 PHP 检查文件是否被更改clearstatcache filemtime 定期 由于整个文件总是很小 因此删除对 filemtime 的调用并通过将

随机推荐

  • 在 AWS Ubuntu 14.04.1 LTS 上安装 Sublime Text 3

    Sublime text 是适用于 Windows 和 Linux 的快速编辑器 http www sublimetext com 我无法使用以下命令在 AWS Ubuntu 14 04 1 LTS 上安装 sublime text 3 s
  • 测量 wifi 到 Iphone/Ipad 的信号强度

    我想从 iOS 设备获取当前的 Wifi 信号强度 Google 搜索仅显示适用于 Android 设备的解决方案 从文献中我了解到 Apple 不允许访问硬件 因此没有人可以通过他们的应用程序以 dbm 形式检索设备的信号强度 它是否正确
  • Spring Batch- ItemWriter - DataIntegrityViolationException - 跳过记录 - 重试 - 不起作用

    我从某个时候就被这个问题困扰了 我正在使用 spring batch 3 0 7 问题是如果org springframework dao DataIntegrityViolationException在 ItemWriter 中的一条记录
  • Python/ Pandas:找到左右最大值

    我有一个 pandas 数据框 第一列中有一个区域 其余部分有 8 年的季度数据 大约有 4400 行 这是一个示例 idx Q12000 Q22000 Q32000 Q42000 Q12001 Q22001 Q32001 Q42001 Q
  • Android LocationServices.checkLocationSettings 误报结果

    目前受影响的设备 Xperia 1 II 小米红米Note 7 Use 为了请求位置更新 我检查位置设置 事先就足够了 如果没有 我会显示一条小文字 表明服务必须 为我的功能启用 如果用户单击它 系统对话框将启用 会提示定位服务 我如何运行
  • 在一列中添加多个值

    我必须按如下所示的方式创建一个表 我们可以这样创作吗 如果是 表名 示例 product id product name category 1 Sample1 1 2 3 2 sample2 4 5 6 其中类别字段包含多个值 我们如何搜索
  • 使用 vector 作为缓冲区,而不在 resize() 上对其进行初始化

    我想用vector
  • Powershell:确定进程是 32 位还是 64 位

    有没有办法确定给定的进程 ID 是 32 位进程还是 64 位进程 我正在使用 Powershell v3 0 尝试这个 Add Type MemberDefinition DllImport kernel32 dll SetLastErr
  • 改造响应保留旧数据并将新数据添加到 editText 搜索的数据中

    我正在使用 editText 搜索从 API 获取数据 第一次搜索时 它按预期工作 但在第二次搜索时 它不会显示唯一的新响应 而是保留旧响应并在其末尾添加新响应 它的行为就像缓存以前的一样 我该如何修复该问题以仅显示最后一个搜索词结果 分段
  • Google 云端硬盘文件列表:500 错误

    对于我们的应用程序 我们使用具有 2 足授权的 Google Drive SDK 我们使用 Drive SDK 很长时间了 但今天我们遇到了 Files list API 的新问题 https developers google com d
  • 用于一对多查找的 Cassandra 数据建模

    考虑存储用户及其联系人的问题 大约有一亿用户 每个用户有几百个联系人 平均联系人大小为 1kb 可能有些用户拥有太多联系人 gt 5000 并且可能有一些联系人比平均 1kb 大得多 例如 10 倍 用户会主动添加联系人 但很少会删除联系人
  • 使用 Ansible 配置 Jenkins 2.0

    我使用 Ansible 来配置我们的服务器 我安装了 Jenkins 2 0 但当我打开 Web UI 时 它变成了启动配置 我如何使用 Ansible 或 shell 或 jenkins cli 来做到这一点 CentOS 7 Ansib
  • 登录时从用户集合中获取用户数据

    我目前正在开发一个在客户端初始化了 firebase 的应用程序 当用户通过 firebase 登录时 我想从 firestore 获取用户的数据 我目前正在这样做onAuthStateChanged侦听器并成功获取用户 我想知道这是否是获
  • 套接字连接超时:规范在哪里?

    我的工作环境是我的局域网 下面的代码示例是用 Java 语言编写的 但我的问题是关于 TCP 而不是编程 我遇到过以下连接超时的情况 2 ms when connection established 当主机处于活动状态但未侦听指定套接字端口
  • emacs lisp 中的 let 和 flet

    我不知道你是否会称其为规范公式 但为了绑定本地函数 GNU 手册建议我使用 flet defun adder with flet x flet f x x 3 f x 然而 我偶然尝试了 在玩了一会儿Scheme之后 下面的表达式 其中我使
  • 将给定字符串转换为具有给定子字符串的回文

    给定字符串 S1 和字符串 S2 将字符串 S1 转换为回文字符串 例如 S2 是该回文字符串的子字符串 S1 上允许的唯一操作是将任何字符替换为任何其他字符 找出所需的最少操作次数 我已经编写了这段代码 可以计算需要使用常规字符串进行多少
  • AngularJS CORS 问题

    我已经搜索了 200 多个网站 也许有点夸张 但也不是很多 来了解如何使用 angularjs 处理 cors 我们有一台运行 Web API 服务器的本地计算机 我们正在开发一个调用 API 获取数据的客户端 当从服务器运行客户端时 我们
  • 计算多维数组中的元素数量

    我有这个代码 loadData function jsonArray var id this attr id for var i in jsonArray id tbody append tr class entry details pag
  • 声音匹配/搜索

    实际上声音匹配 搜索的当前技术水平如何 我目前正在远程参与规划一个 Web 应用程序 该应用程序将包含并公开录制的短音频剪辑 最多 3 5 秒 人名 的数据库 有人提出了是否有可能实现基于用户语音输入的搜索的问题 我的直觉告诉我 从计算和算
  • 如何在同一服务器环境下运行PHP和Tomcat?

    不久前在 AskUbuntu 上问过这个问题 https askubuntu com questions 630897 apache httpd backed by both tomcat and php https askubuntu c