![有没有办法在同一个 Apache 服务器或至少同一个端口上使用 Java 和 PHP?](https://linux22.com/image/563888/%E6%9C%89%E6%B2%A1%E6%9C%89%E5%8A%9E%E6%B3%95%E5%9C%A8%E5%90%8C%E4%B8%80%E4%B8%AA%20Apache%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%88%96%E8%87%B3%E5%B0%91%E5%90%8C%E4%B8%80%E4%B8%AA%E7%AB%AF%E5%8F%A3%E4%B8%8A%E4%BD%BF%E7%94%A8%20Java%20%E5%92%8C%20PHP%EF%BC%9F.png)
我对 Java for Web 还很陌生,我的问题是是否可以同时使用 Java 和 PHP?我知道可以同时使用它们,让我们换个说法,有没有办法在同一端口访问它们?
Java使用Tomcat,PHP也可以使用tomcat吗?
答案1
Tomcat 不支持 PHP,并且(除非最近发生了什么事情)没有同时支持 Java 和 PHP 的“混合”应用服务器。但是,您可以安装并配置 Apache 服务器以支持 PHP。这样,您便可以在某个端口上配置 PHP 应用服务器。然后,您可以配置此 Apache 以将某些 URL 模式重定向到 Tomcat 服务器(例如,所有带有前缀 /java/app/* 的 URL 都转到 Tomcat,其他所有 URL 都由 Apache 直接处理)。现在,如果您在 Apache 服务器中部署用 PHP 编写的 Web 应用程序,在 Tomcat 服务器中部署 Java Web 应用程序,它们都将“响应”同一端口。
答案2
作为 Andrei 建议的补充,安装一个标准的 Apache+PHP 组合,监听 [your-ip]:80 和/或 [your-ip]:443,然后安装 Tomcat,监听 localhost:8080。然后只需在常规 Apache 配置中执行以下操作:
<Location /myjavapps>
order deny,allow
allow from all
ProxyPass http://localhost:8080/
ProxyPassReverse http://localhost:8080/
</Location>
答案3
您可以在 apache 配置中使用 mod_jk 或 proxy_pass 与端口 80 上的 tomcat 应用程序进行交互
IE
ProxyPass /servlets ajp://localhost:8009/servlets ProxyPassReverse /servlets ajp://localhost:8009/servlets
这意味着 /servlets - apache 正在向 tomcat 发送请求
PHP 是一个编译模块,定义在您希望它在虚拟主机中的位置