无法将modules / mod_proxy_wstunnel.so加载到服务器

时间:2016-09-28 03:17:22

标签: websocket mod-proxy apache2.4

最近我需要将websocket服务器与apache2集成,我发现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

  • 环境信息:
  • OS:centos 6.8
  • php:php-7.0.10
  • 阿帕奇:的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
    • 壳> tar -xjf php-7.0.10.tar.bz2
    • 壳> tar -xjf httpd-2.4.23.tar.bz2
  3. 安装gcc:yum install gcc
  4. 编译apache
    • down apr: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.gz tar -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
    • make&& make install
    • 设置apache服务器ip:
      外壳> vi /usr/local/apache2/conf/httpd.conf ServerName 127.0.0.1
  5. 编译php
    • libxml2:
      yum install 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 /本地/ apache2的/ bin中/ apxs的
    • make&& make install
    • 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 外壳&GT; vi /usr/local/apache2/conf/httpd.conf
    LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
  7. 以上是我的步骤。然后我尝试启动我的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

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

1 个答案:

答案 0 :(得分:1)

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

请检查您的配置,确保您对mod_proxy以及mod_proxy_wstunnel有LoadModule指令。

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