【问题标题】:Cannot load modules/mod_proxy_wstunnel.so into server无法将模块/mod_proxy_wstunnel.so 加载到服务器中
【发布时间】:2017-02-05 20:11:09
【问题描述】:

最近需要在apache2上集成一个websocket服务器,发现apache2.4已经支持websocket的模块:mod_proxy_wstunnelhttp://httpd.apache.org/docs/2.4/mod/mod_proxy_wstunnel.html

我自己编译的,但是遇到了问题:

httpd: Syntax error on line 122 of /usr/local/apache2/conf/httpd.conf: Cannot load modules/mod_proxy_wstunnel.so into server: /usr/local/apache2/modules/mod_proxy_wstunnel.so: undefined symbol: ap_proxy_release_connection

  • 环境信息:
  • 操作系统:centos 6.8
  • php:php-7.0.10
  • apache:httpd-2.4.23

我的步骤是:

  1. 下载源代码。
    • php7 github.com/php/php-src/releases/tag/php-7.0.10
    • apache2.4 github.com/apache/httpd/releases/tag/2.4.23
  2. 复制到我的工作区和tar,比如说/home
    • shell> tar -xjf php-7.0.10.tar.bz2
    • shell> tar -xjf httpd-2.4.23.tar.bz2
  3. 安装 gcc : yum install gcc
  4. 编译apache
    • 下四月:apr-1.5.2.tar.gz apr-util-1.5.4.tar.gz
    • 复制到/httpd-2.4.23/srclib
      tar -zvf apr-1.5.2.tar.gztar -zvf apr-util-1.5.4.tar.gz
    • 修改文件名:
      apr-1.5.2apr
      apr-util-1.5.4apr-util
    • 安装pcre
      yum install pcre-devel
    • ./configure --enable-so --enable-http --enable-proxy --enable-proxy-http --with-included-apr --enable-proxy-wstunnel
    • 制作 && 制作安装
    • 设置apache服务器ip:
      外壳>vi /usr/local/apache2/conf/httpd.conf 服务器名称 127.0.0.1
  5. 编译php
    • libxml2:
      yum 安装 libxml2-devel
    • mkdir /usr/local/php7
    • ./configure --prefix=/usr/local/php7 --with-mysqli --enable-mysqlnd --with-mysql-sock=/var/lib/mysql/mysql.sock --with-apxs2= /usr/local/apache2/bin/apxs
    • 制作 && 制作安装
    • cp -v ./php.ini-production /usr/local/php7/lib/php.ini
    • 配置 httpd.conf
      外壳> vi /usr/local/apache2/conf/httpd.conf
      <FilesMatch \.php$> SetHandler application/x-httpd-php </FilesMatch>
  6. enalbe mod_proxy_wstunnel 外壳> vi /usr/local/apache2/conf/httpd.conf
    LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so

以上是我的步骤。然后我尝试启动我的 apache2:

/usr/local/apache2/bin/apachectl start

出现以下错误:

httpd: Syntax error on line 122 of /usr/local/apache2/conf/httpd.conf: Cannot load modules/mod_proxy_wstunnel.so into server: /usr/local/apache2/modules/mod_proxy_wstunnel.so: undefined symbol: ap_proxy_release_connection

我已经 google 了,但找不到有用的信息。

【问题讨论】:

    标签: websocket mod-proxy apache2.4


    【解决方案1】:

    您需要加载 mod_proxy 以及 mod_proxy_wstunnel。如果您在没有 mod_proxy 的情况下加载底层代理模块(http/fcgi/ajp/wstunnel),您将收到此错误。

    所以请检查您的配置并确保您有一个用于 mod_proxy 和 mod_proxy_wstunnel 的 LoadModule 指令。

    您还可以使用apachectl -M 的输出来检查 Apache 正在加载的模块。

    【讨论】:

    • 谢谢,我的朋友。那是我的错误。
    猜你喜欢
    • 2017-02-22
    • 2021-10-04
    • 1970-01-01
    • 2015-05-02
    • 2015-07-15
    • 2016-08-28
    • 2012-07-09
    • 2017-08-01
    • 1970-01-01
    相关资源
    最近更新 更多