2016-09-28 40 views
0

最近我需要將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

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

回答

0

你需要加載的mod_proxy以及mod_proxy_wstunnel。如果您在沒有mod_proxy的情況下加載底層代理模塊(http/fcgi/ajp/wstunnel),則會出現此錯誤。

因此,檢查您的配置,並確保你有一個LoadModule僞指令的mod_proxy以及mod_proxy_wstunnel。

您還可以使用的apachectl -M輸出檢查模塊Apache是​​加載。

+0

謝謝,我的朋友。那是我的錯誤。 – Does