• 技术文章 >php框架 >Swoole

    swoole编译失败怎么办

    藏色散人藏色散人2020-04-10 09:06:37原创1083

    swoole编译失败怎么办?

    swoole编译安装过程遇到的问题

    出现“perl: warning: Falling back to the standard locale (“C”).”等提示错误,如下:

    perl: warning: Setting locale failed.
          perl: warning: Please check that your locale settings:
                  LANGUAGE = "en_US.UTF-8",
                  LC_ALL = "",
                  LANG = "AMERICAN_AMERICA.UTF-8"
            are supported and installed on your system.
          perl: warning: Falling back to the standard locale ("C").

    解决办法:

    在~/.bashrc文件中加入如下内容

    export LANGUAGE="en_US.UTF-8"
    export:zh_CN.UTF-8
    export LC_ALL=C

    然后执行如下命令使其生效:

    source /root/.bashrc
    configure: error: C++ preprocessor “/lib/cpp” fails sanity check
    configure: error: in `/wwwroot/swoole-4.2.5':
    configure: error: C++ preprocessor "/lib/cpp" fails sanity check

    问题的根源是缺少必要的C++库。运行如下命令解决:

    yum install glibc-headers
    yum install gcc-c++
    “Enable http2 support, require nghttp2 library” 错误
    /wwwroot/swoole-4.2.5/php_swoole.h:142:2: error: #error "Enable http2 support, require nghttp2 library."
     #error "Enable http2 support, require nghttp2 library."

    需要安装nghttp2,首先安装依赖库

    sudo yum -y groupinstall "Development Tools"
    sudo yum -y install openssl-devel libxml2-devel libev-devel jemalloc-devel python-devel
    wget https://c-ares.haxx.se/download/c-ares-1.12.0.tar.gz -O /tmp/c-ares.tar.gz
    mkdir -p /tmp/c-ares
    tar -zxvf /tmp/c-ares.tar.gz -C /tmp/c-ares --strip-components=1
    cd /tmp/c-ares && ./configure --libdir=/usr/lib64
    make
    sudo make install
    wget http://www.digip.org/jansson/releases/jansson-2.9.tar.gz -O /tmp/jansson.tar.gz
    mkdir -p /tmp/jansson
    tar -zxvf /tmp/jansson.tar.gz -C /tmp/jansson --strip-components=1
    cd /tmp/jansson && ./configure --libdir=/usr/lib64
    make
    make check
    sudo make inst

    安装nghttp2服务:

    wget https://github.com/nghttp2/nghttp2/releases/download/v1.19.0/nghttp2-1.19.0.tar.gz -O /tmp/nghttp2.tar.gz
    mkdir -p /tmp/nghttp2
    tar -zxvf /tmp/nghttp2.tar.gz -C /tmp/nghttp2 --strip-components=1
    cd /tmp/nghttp2 && ./configure --enable-app
    make
    sudo make install

    hiredis 不存在

    /wwwroot/swoole-4.2.5/swoole_redis.c:20:29: fatal error: hiredis/hiredis.h: No such file or directory
     #include <hiredis/hiredis.h>

    需要安装redis和hiredis服务。

    安装redis:

    yum -y install tcl
    wget http://download.redis.io/releases/redis-3.0.7.tar.gz
    tar xzf redis-3.0.7.tar.gz 
    cd redis-3.0.7
    make
    make test
    make install

    安装hiredis:

    wget https://github.com/redis/hiredis/archive/v0.14.0.tar.gz
    tar xzf  v0.14.0.tar.gz
    cd hiredis-0.14.0/
    make
    make install

    以上就是swoole编译失败怎么办的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:swoole
    上一篇:swoole可以用80端口吗 下一篇:swoole不能访问怎么办
    大前端线上培训班

    相关文章推荐

    • redis swoole无法读取怎么办• swoole json不完整怎么办• swoole win下安装不了怎么办• swoole 致命错误是什么意思

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网