【问题标题】:Coldfusion 2018 on Centos 7 failing to setup Apache connectorCentos 7 上的 Coldfusion 2018 无法设置 Apache 连接器
【发布时间】:2020-02-10 10:35:52
【问题描述】:

我在新服务器上安装了CF2018,已经安装并运行,运行ps aux | ack -i coldfusion可以看到

$ cat /etc/centos-release
CentOS Linux release 7.6.1810 (Core)

$ httpd -v
Server version: Apache/2.4.6 (CentOS)
Server built:   Jul 29 2019 17:18:49

更新

我明显弄坏了一些东西,所以我已经删除了之前的错误,但我仍然遇到连接器问题。

我已经从/etc/httpd/conf 中删除了与mod_jk 相关的所有引用和文件,重新安装了 CF,然后重新运行了连接器。

使用此命令安装成功:

$ sudo ./wsconfig -ws Apache -dir /etc/httpd/conf

我在/opt/coldfusion2018/config/wsconfig/1 设置了目录,但我现在收到这些错误:

$ pwd
/opt/coldfusion2018/config/wsconfig/1

$ tail mod_jk.log
[error] ajp_service::jk_ajp_common.c (3000): (cfusion) connecting to tomcat failed (rc=-3, errors=583, client_errors=0).
[info] jk_open_socket::jk_connect.c (816): connect to ::1:8018 failed (errno=13)
[info] ajp_connect_to_endpoint::jk_ajp_common.c (1140): (cfusion) Failed opening socket to (::1:8018) (errno=13)
[error] ajp_send_request::jk_ajp_common.c (1811): (cfusion) connecting to backend failed. Tomcat is probably not started or is listening on the wrong port (errno=13)
[info] ajp_service::jk_ajp_common.c (2979): (cfusion) sending request to tomcat failed (recoverable), because of error during request sending (attempt=1)
[info] jk_open_socket::jk_connect.c (816): connect to ::1:8018 failed (errno=13)
[info] ajp_connect_to_endpoint::jk_ajp_common.c (1140): (cfusion) Failed opening socket to (::1:8018) (errno=13)
[error] ajp_send_request::jk_ajp_common.c (1811): (cfusion) connecting to backend failed. Tomcat is probably not started or is listening on the wrong port (errno=13)
[info] ajp_service::jk_ajp_common.c (2979): (cfusion) sending request to tomcat failed (recoverable), because of error during request sending (attempt=2)
[error] ajp_service::jk_ajp_common.c (3000): (cfusion) connecting to tomcat failed (rc=-3, errors=584, client_errors=0).

我不知道8018端口是从哪里来的,我以为tomcat默认使用8500

更新 2

如果我最后使用:8500 访问我的网站,我可以进入 CFIDE,所以它的 CF 正在运行并且该端口是可访问的

更新 3

我在我的server.xml 文件中找到了这个,尝试将端口设置为 8009 和 8018,它似乎对 mod_jk.log 中的错误没有影响


    <!-- Define an AJP 1.3 Connector on port 8009 -->
        <!-- begin connector -->
    <Connector port="8009" packetSize="65535" protocol="AJP/1.3"  redirectPort="8451" tomcatAuthentication="false" maxThreads="500" connectionTimeout="60000"/>
    <!-- end connector -->

【问题讨论】:

    标签: apache tomcat coldfusion centos


    【解决方案1】:

    皮特,

    操作系统和网络服务器的版本是什么?

    您是否尝试过像这样显式地传递除 dir 以外的参数:

    sudo ./wsconfig -ws Apache /opt/apache2/conf -bin /opt/apache2/bin/httpd -script /opt/apache2/bin/apachectl -dir -v
    

    ..并且无需运行冷融合过程即可配置连接器。

    【讨论】:

    • 所以我删除了 /etc/httpd/conf 中与 modjk 相关的所有内容,重新安装了 cf 并重新运行了连接器。我现在收到一个错误,我很早就知道tomcat可能在错误的端口上监听。我会更新答案并添加版本号
    • 哦,我才注意到最后一点!将停止 CF,删除并重新添加连接器,然后重新启动它
    • 还是没有运气。很好的提醒......我很傻,不要先停止 CF
    【解决方案2】:

    8018 是连接器用来与 tomcat 通信的默认 AJP 端口。 8500 是您在访问 CF 管理控制台时使用的默认 HTTP 端口。 您最初在配置连接器时报告了错误。是否解决了。 您是否检查了 wsconfig 日志以查看配置连接器是否有错误。

    您最近分享的 modjk 日志摘录只是表明 CF 没有运行,或者至少没有监听默认的 AJP 端口。

    【讨论】:

    • 这篇文章实际上是我最初的错误,在尝试修复它时,我破坏了一些东西并最终在我之前的帖子中得到了错误(在运行 wsconfig 时谈论 apache 路径)。我清除了所有内容并重新开始,此时我又回来了。我可以通过端口 8500 访问我的 CFIDE,并且可以访问通过 apache 提供的简单 HTML 页面。通过 apache 访问 CF 页面时,/config/wsconfig/1/mod_jk.log 中出现错误,现在已在问题中发布。 wsconfig.log 没有任何错误,因为我清除了所有内容并重新开始,一切看起来都很成功
    • not listening on the default AJP port. 所以 CF 正在运行,因为我可以进入管理面板,如何让它监听 AJP 端口?我在设置过程中将所有端口号保留为默认值
    • 好吧,您是否检查过(使用相关的 linux 命令,如 netstat)端口 8018 是否已打开并与 CF 的进程 ID 绑定。如果不是,您能否检查 CF 的 server.xml 中的 AJP 连接器配置。它应该被取消注释并设置为正确的端口号。我在这里假设 CF 和 HTTPD 都是同一主机。
    • server.xml 有这一行,没有注释掉:&lt;Connector port="8018" packetSize="65535" protocol="AJP/1.3" redirectPort="8451" tomcatAuthentication="false" maxThreads="500" connectionTimeout="60000"/&gt;
    • 可以通过以下命令获取CF的进程ID:ps -ef | grep 冷融合。使用输出中的 PID 通过以下命令获取与该进程关联的所有打开端口:netstat -anp | grep 如果 8018 未与 CF 的 PID 一起使用,则存在故障。如果看起来不错,然后尝试通过在 mod_jk.conf(CF 连接器配置文件)中启用详细日志记录来进行更深入的挖掘,方法是将日志级别更改为调试。启用调试日志后,重新启动网络服务器,点击 cfm 页面并再次检查日志文件。
    【解决方案3】:

    问题是 SELinux 阻塞了 8018 端口,我实际上让我的托管服务提供商 Secura 帮我调查这个问题,他们修复了它(基于我从 piyush 的回答中找到的所有信息)

    我必须在 SELinux 中允许端口 8018

    semanage port -a -t http_port_t -p tcp 8018
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-17
      • 2016-01-04
      • 2015-03-01
      • 2020-12-02
      • 1970-01-01
      • 2016-04-13
      • 2016-11-12
      • 1970-01-01
      相关资源
      最近更新 更多