swoole編譯安裝過程遇到的問題
阿新 • • 發佈:2018-12-19
- 出現“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 LANG=en_US: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 install
安裝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服務