无法将 modules/mod_proxy_wstunnel.so 加载到服务器中
Cannot load modules/mod_proxy_wstunnel.so into server
最近需要在apache2上集成一个websocket服务器,发现apache2.4已经支持websocket模块:mod_proxy_wstunnel
。
http://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
- apache:httpd-2.4.23
我的步骤是:
- 下载源代码。
- php7 github.com/php/php-src/releases/tag/php-7.0.10
- apache2.4 github.com/apache/httpd/releases/tag/2.4.23
- 复制到我的工作区和tar,比如/home
- shell> tar -xjf php-7.0.10.tar.bz2
- shell> tar -xjf httpd-2.4.23.tar.bz2
- 安装 gcc:yum 安装 gcc
- 编译apache
- 4月下旬:
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.2
as apr
apr-util-1.5.4
as apr-util
- 安装 pcre
yum install pcre-devel
./configure --enable-so --enable-http --enable-proxy --enable-proxy-http --with-included-apr --enable-proxy-wstunnel
- 制作 && 安装
- 设置apache服务器ip:
shell> vi /usr/local/apache2/conf/httpd.conf
服务器名称 127.0.0.1
- 编译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-生产/usr/local/php7/lib/php.ini
- 配置httpd.conf
shell> vi /usr/local/apache2/conf/httpd.conf
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
- 启用 mod_proxy_wstunnel
shell> vi /usr/local/apache2/conf/httpd.conf
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
以上是我的步骤。然后我尝试 start 我的 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 它,但找不到有用的信息。
您需要加载 mod_proxy 以及 mod_proxy_wstunnel。如果您在没有 mod_proxy 的情况下加载底层代理模块 (http/fcgi/ajp/wstunnel),您将收到此错误。
因此请检查您的配置并确保您有 LoadModule
指令用于 mod_proxy 以及 mod_proxy_wstunnel。
您还可以使用 apachectl -M
的输出来检查 Apache 正在加载的模块。
最近需要在apache2上集成一个websocket服务器,发现apache2.4已经支持websocket模块:mod_proxy_wstunnel
。
http://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
- apache:httpd-2.4.23
我的步骤是:
- 下载源代码。
- php7 github.com/php/php-src/releases/tag/php-7.0.10
- apache2.4 github.com/apache/httpd/releases/tag/2.4.23
- 复制到我的工作区和tar,比如/home
- shell> tar -xjf php-7.0.10.tar.bz2
- shell> tar -xjf httpd-2.4.23.tar.bz2
- 安装 gcc:yum 安装 gcc
- 编译apache
- 4月下旬:
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.2
asapr
apr-util-1.5.4
asapr-util
- 安装 pcre
yum install pcre-devel
./configure --enable-so --enable-http --enable-proxy --enable-proxy-http --with-included-apr --enable-proxy-wstunnel
- 制作 && 安装
- 设置apache服务器ip:
shell>vi /usr/local/apache2/conf/httpd.conf
服务器名称 127.0.0.1
- 4月下旬:
- 编译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-生产/usr/local/php7/lib/php.ini
- 配置httpd.conf
shell> vi /usr/local/apache2/conf/httpd.conf
<FilesMatch \.php$> SetHandler application/x-httpd-php </FilesMatch>
- libxml2:
- 启用 mod_proxy_wstunnel
shell> vi /usr/local/apache2/conf/httpd.conf
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
以上是我的步骤。然后我尝试 start 我的 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 它,但找不到有用的信息。
您需要加载 mod_proxy 以及 mod_proxy_wstunnel。如果您在没有 mod_proxy 的情况下加载底层代理模块 (http/fcgi/ajp/wstunnel),您将收到此错误。
因此请检查您的配置并确保您有 LoadModule
指令用于 mod_proxy 以及 mod_proxy_wstunnel。
您还可以使用 apachectl -M
的输出来检查 Apache 正在加载的模块。