如何解决swoole扩展安装失败的问题

  介绍

这篇文章给大家分享的是有关如何解决swoole扩展安装失败的问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

<强> swoole扩展安装失败怎么办? swoole安装报错详解

今天通过pecl安装swoole

pecl  install  swoole

步骤很简单,但是最后安装成功后发现phpinfo()中未显示swoole扩展,执行:

php  -m  |, grep  swoole

发现报错如下:

php警告:php启动:无法加载动态库& # 39;/usr/lib64/php/模块/swoole.so& # 39;——/usr/lib64/php/modules/swoole.所以:未定义符号:在未知> const  mysqlnd_find_charset_nr; MYSQLND_CHARSET *, cset =, mysqlnd_find_charset_nr(客户→connector.character_set);   ,   if  (cset ==, NULL)   {   ,   ,,,swoole_php_fatal_error (E_ERROR,“unknown  mysql 字符集(% s)干净,,客户→connector.character_set);   ,   ,,,RETURN_FALSE;   ,   }

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

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

<强>解决方法:

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

2,在/etc/php.=swoole ini的扩展。所以上面一行添加=mysqlnd延伸。所以

3,重新启动php-fpm

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

PHP警告:PHP启动:无法加载动态库& # 39;/usr/lib64/PHP/模块/swoole.so& # 39;——/usr/lib64/php/modules/swoole.所以:未定义符号:php_sockets_le_socket在未知>感谢各位的阅读!关于“如何解决swoole扩展安装失败的问题”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

如何解决swoole扩展安装失败的问题