Home  >  Article  >  PHP Framework  >  What to do if swoole compilation fails

What to do if swoole compilation fails

藏色散人
藏色散人Original
2020-04-10 09:06:373092browse

What to do if swoole compilation fails

swooleWhat should I do if the compilation fails?

Problems encountered during the swoole compilation and installation process

"perl: warning: Falling back to the standard locale ("C")." and other prompt errors appear, as follows:

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").

Solution:

Add the following content to the ~/.bashrc file

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

Then execute the following command to make it effective:

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

The root of the problem is Necessary C libraries are missing. Run the following command to solve the problem:

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."

Need to install nghttp2, first install the dependent library

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

Install the nghttp2 service:

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 does not exist

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

Needs to be installed redis and hiredis services.

Install 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

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

The above is the detailed content of What to do if swoole compilation fails. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:Can swoole use port 80?Next article:Can swoole use port 80?