PHP

解決pecl安裝swoole報錯 error

字號+ 編輯: 种花家 修訂: H波 來源: swoole.com 2023-09-11 我要說兩句(2)

總結了兩個swoole編譯常見報錯。swoole安裝時如果啓用了http2.0支持, 那麽有可能報一個包缺失錯誤。

大多数的报错都是在centos6里面因为gcc版本过低, gcc编译组件没有配置到ld.so.conf文件里,或者php版本过低引起。

安装swoole开启http2.0报错

安装swoole时, 因为现在大多数运维在搭建环境的时候不会涉及到http2.0, 所以不会安装对应的依赖包, 会报出类似以下错误:

/tmp/pear/temp/swoole/php_swoole.h:141:2: error: #error "Enable http2 support, require nghttp2 library."

如何解决呢? 以下是安装代码:

wget https://github.com/nghttp2/nghttp2/releases/download/v1.34.0/nghttp2-1.34.0.tar.gz
tar zxvf nghttp2-1.34.0.tar.gz
cd nghttp2-1.34.0
./configure
make && make install

之后,再重新走一遍swoole安装流程。

centos6 安装多个gcc版本后编译swoole弹出错误提示:

PHP Warning:  PHP Startup: Unable to load dynamic library 'swoole.so' (tried: /usr/local/php/lib/php/extensions/no-debug-non-zts-20180731/swoole.so (/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.18' not found (required by /usr/local/php/lib/php/extensions/no-debug-non-zts-20180731/swoole.so)), /usr/local/php/lib/php/extensions/no-debug-non-zts-20180731/swoole.so.so (/usr/local/php/lib/php/extensions/no-debug-non-zts-20180731/swoole.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0

尝试过降级swoole, 因为安装的是php7.3,所以降级是没用的, 触发别的错误, 比如_zval关键字找不到等等。于是鼓捣ld.so.conf

vim /etc/ld.so.conf

检查这个文件里是不是类似这样的配置项:

include ld.so.conf.d/*.conf
/lib
/usr/lib
/usr/lib64
/usr/local/lib
/usr/local/lib64

如果你不愿意在ld.so.conf引入/usr/local/lib64这个目录?

看看/usr/local/lib64这个目录里有没有libstdc++.so.6.0.18这个文件, 有的话拷贝到/usr/lib64目录里:

cp /usr/local/lib64/libstdc++.so.6.0.18 /usr/lib64

接下来就应该可以了最好也别乱来了, 毕竟这个东西捅咕捅咕就会爆的...

编者按: 前段时间疏于维护, 命令自己没跑通就放上来了, nghttp2-1.30的路径已经403无法下载了, 现在改成1.34版本的下载路径,后面没写的make install也添加上了, 感谢热心的朋友评论纠错!

閲完此文,您的感想如何?
  • 有用

    5

  • 沒用

    1

  • 開心

    1

  • 憤怒

    5

  • 可憐

    1

1.如文章侵犯了您的版權,請發郵件通知本站,該文章將在24小時内刪除;
2.本站標注原創的文章,轉發時煩請注明來源;
3.交流群: PHP+JS聊天群

相關課文
  • mac開發接入微信公衆號接口返回報錯 cURL error 56: SSLRead() return error -9806

  • pecl安裝程序時報錯Array and string offset access syntax with curly braces is no longer supported

  • PHP的換行符是什麽

  • 由於商家傳入的H5交易參數有誤,該筆交易暫時無法完成,請聯系商家解決

我要說說
網上賓友點評
1 樓 IP 116.227.79.44 的嘉賓 normal : 1534233227
按照上面的步骤走了一遍还是报错 /tmp/pear/temp/swoole/php_swoole.h:141:2: error: #error "Enable http2 support, require nghttp2 library."

2 樓 IP 124.192.142.4 的嘉賓 normal : 1541124764
文章有误, 下面应该是make && make install, 改过来