无法将模块/ mod_proxy_wstunnel.so加载到服务器中

问题描述:

最近我需要将websocket服务器与apache2集成,并且我发现apache2.4已支持带有模块的websocket:mod_proxy_wstunnelhttp://httpd.apache.org/docs/2.4/mod/mod_proxy_wstunnel.html无法将模块/ mod_proxy_wstunnel.so加载到服务器中

我自己编他们,而是遇到了一个问题:

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

  • 环境信息:
  • OS: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. 复制到我的工作区和焦油,比如说/家
    • 外壳>焦油-xjf PHP-7.0.10.tar.bz2
    • 外壳>焦油-xjf的httpd-2.4.23.tar.bz2
  3. 安装GCC:百胜安装gcc
  4. 编译Apache
    • 下来四月:apr-1.5.2.tar.gzapr-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:
      百胜安装的libxml2-devel的
    • 的mkdir在/ usr /本地/ 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/LOC人/ 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

我有谷歌,但不能找到一些有用的信息。

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

因此,检查您的配置,并确保你有一个LoadModule伪指令的mod_proxy以及mod_proxy_wstunnel。

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

+0

谢谢,我的朋友。那是我的错误。 – Does