如何在 Mac OS X 上安装 mod_jk

Posted

技术标签:

【中文标题】如何在 Mac OS X 上安装 mod_jk【英文标题】:How to install mod_jk on Mac OS X 【发布时间】:2012-07-27 12:02:34 【问题描述】:

我正在寻找在 Mac OS X 10.7 Lion 或更高版本上安装 mod_jk 的正确方法。目标是在 Apache HTTPD 之后测试 Tomcat。

到目前为止,我发现安装 mod_jk 的唯一方法是下载源代码,然后在控制台中配置它并进行 make 和 make install。

这不是很正确,因为我需要自己管理 mod_jk 的安装和配置。例如,我可以稍后在需要时忘记删除 mod_jk。无论如何,我认为应该有更友好的方式来安装 mod_jk,比如某种 DMG 包。

我还发现 mod_jk 在 OS X Server 中可用。实际上它在我的开发机器上,但仅适用于服务器。

<IfDefine MACOSXSERVER>
...
#LoadModule jk_module libexec/apache2/mod_jk.so
...
</IfDefine MACOSXSERVER>

对于不安装 OS X Server 或任何其他方式的开发人员,可能有一个 mod_jk 软件包。

更新

    mod_proxy_ajp 是另一种选择。主要优点:它与 Apache 和 Mac OS X 捆绑在一起 我现在在我的配置中测试了mod_proxy_ajp,可以说它更好——因为不需要额外的配置。 mod_proxy_ajp 在 Mac 上开箱即用,我相信也许在 linux-server 上也是如此。您也不需要使用额外的 workers.properties 文件。

这是我的配置的样子:

<VirtualHost *:80>
    ServerAdmin me@me.com
    DocumentRoot "/Users/me/Sites/projekt"
    ServerName projekt.local

    <Directory "/Users/me/Sites/projekt">
        Options Indexes FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>

    <Proxy *>
      AddDefaultCharset Off
      Order deny,allow
      Allow from all
    </Proxy>

    ProxyPass /coolapp ajp://localhost:8009/coolapp
    ProxyPassReverse /coolapp ajp://localhost:8009/coolapp

    ErrorLog "/private/var/log/apache2/projekt.local-error_log"
    CustomLog "/private/var/log/apache2/projekt.local-access_log" common    
</VirtualHost>

以上配置的 Tomcat 和 AJP 连接器只是您所需要的。太棒了!

参考:

    在 OS X 上安装 mod_jk - http://www.bartbusschots.ie/blog/?p=1347 比较 mod_jk 与 mod_proxy_ajp apache to tomcat: mod_jk vs mod_proxy How to configure mod_proxy_ajp with Tomcat ?

请提出建议。

【问题讨论】:

你指的是什么“配置文件”?您显示的文本是否以&lt;VirtualHost *:80&gt; 开头进入httpd.conf 或其他位置? @murray - 我的配置进入 /etc/apache2/extra/httpd-vhosts.conf。但是您也可以在适当的时候在其他地方进行管理,例如在用户配置中 - /etc/apache2/users/... 我自己决定这个 httpd-vhosts.conf 更适合我的安装。 我不明白“/coolapp”指的是什么。这与DocumentRoot 设置有什么关系? LoadModule 中的 httpd.conf 中的 mod_proxy_ajp 行的语法是什么?也就是LoadModule xxx modules/mod_proxy_ajp.so中的“xxx”是什么? 要回答我关于LoadModule 语法的问题,似乎可行的是:LoadModule proxy_ajp_module modules/mod_proxy_ajp.so 【参考方案1】:

您可以试一试mod_proxy_ajp。它像 mod_jk 一样执行 AJP13 和负载平衡,但随 Mac OS X 一起提供。

【讨论】:

酷 - 我不知道 - 会检查。如何比较它们? 看起来有区别 - ***.com/questions/1081918/… 太棒了 - 它开箱即用,更易于配置,例如不需要额外的workers.properties 文件。谢谢@菲利普。看起来像是来自 Seaside 社区的真正 Philippe Marschall 的回答 - 很酷。 谢谢,我在 Mac 上的 mod_jk 上也失败了。但这开箱即用。 似乎 High Sierra mod_proxy_ajp 有问题。一些发布到服务器的 XML 数据包含一个前导特殊字符,这会导致 Tomcat 中的 XML 解析器失败。我需要切换到 HomeBrew httpd 来解决这个问题。

以上是关于如何在 Mac OS X 上安装 mod_jk的主要内容,如果未能解决你的问题,请参考以下文章

如何在Mac OS X上安装 Ruby运行环境

如何在Mac OS X Yosemite上安装 jdk 1.6 开发环境

如何在Mac OS X上部署开发环境

如何构建本机 Mac OS X 安装程序(在非 Mac 平台上)?

如何在 OS X 上安装 Rancher

如何在 Mac OS X 上安装特定的 JDK?