最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

swoole扩展安装失败怎么办

来源:动视网 责编:小采 时间:2020-11-03 18:19:14
文档

swoole扩展安装失败怎么办

swoole扩展安装失败怎么办:swoole扩展安装失败怎么办?swoole安装报错详解推荐学习: swoole教程今天通过pecl安装 swoolepecl install swoole步骤很简单,但是最后安装成功后发现phpinfo()中未显示swoole扩展,执行:php -m | grep swoole发现报错如下:PHP W
推荐度:
导读swoole扩展安装失败怎么办:swoole扩展安装失败怎么办?swoole安装报错详解推荐学习: swoole教程今天通过pecl安装 swoolepecl install swoole步骤很简单,但是最后安装成功后发现phpinfo()中未显示swoole扩展,执行:php -m | grep swoole发现报错如下:PHP W


仔细看报错发现这条报错是由swoole.so报出来的,说明在加载swoole.so的时候报的找不到 mysqlnd_find_charset_nr ,这是一个以 mysqlnd 打头的一个关键字,而 mysqlnd 又是 PHP 的一个扩展,通过阅读 swoole/swoole.mysql.c 的源码我们发现有如下一段:

const MYSQLND_CHARSET* cset = mysqlnd_find_charset_nr(client->connector.character_set);
 
if (cset == NULL)
{
 
 swoole_php_fatal_error(E_ERROR, "unknown mysql charset[%s].", client->connector.character_set);
 
 RETURN_FALSE;
 
}

从上面的源码我们可以看出,原来 swoole 是需要依赖 msyqlnd 这个扩展的,我们发现 phpinfo() 里面 msyqlnd 扩展是存在的为什么还会报这个错呢。

最后发现 PHP默认加载的扩展都在 /usr/lib64/php/modules/ 这个目录里在,这里面的 .so 文件是默认加载的,关于这些扩展的配置不是在 /etc/php.ini 中,而是在 /etc/php.d/ 这个目录中,这个目录当中的所有的 .ini 文件是在 /etc/php.ini 加载完成后再加载的,而我们的 extension=swoole.so 的配置是写在 /etc/php.ini 的文件末尾,所以是先加载了 swoole.so 然后再加载 mysqlnd.so,这就导致了 swoole 找不到 mysqlnd_find_charset_nr 。

解决方法:

1、将/etc/php.d/ 目录中的mysqlnd.ini文件删除

2、在 /etc/php.ini 的 extension=swoole.so 上面一行添加 extension=mysqlnd.so

3、重新启动 php-fpm

这样可以解决问题了,同样可能还会遇到以下报错:

PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/swoole.so' - /usr/lib64/php/modules/swoole.so: undefined symbol: php_sockets_le_socket in Unknown on line 0

解决的方法也是类似的:

1、将/etc/php.d/ 目录中的sockets.ini文件删除

2、在 /etc/php.ini 的 extension=swoole.so 上面一行添加 extension=sockets.so

3、重新启动 php-fpm

文档

swoole扩展安装失败怎么办

swoole扩展安装失败怎么办:swoole扩展安装失败怎么办?swoole安装报错详解推荐学习: swoole教程今天通过pecl安装 swoolepecl install swoole步骤很简单,但是最后安装成功后发现phpinfo()中未显示swoole扩展,执行:php -m | grep swoole发现报错如下:PHP W
推荐度:
标签: 失败 安装 错误
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top