在phpinfo中有在php -m中没有

先确认CLI模式下是否有

命令行输入php --ri swoole

如果输出了swoole的扩展信息就说明你安装成功了!

99.999%的人在此步成功就可以直接使用swoole了

不需要管php -m或者phpinfo网页打印出来是否有swoole

因为swoole是运行在cli模式下的, 在传统的fpm模式下功能十分有限

fpm模式下任何异步/协程等主要功能都不可以使用, 99.999%的人都不能在fpm模式下得到想要的东西, 却纠结为什么fpm模式下没有扩展信息

先确定你是否真正理解了swoole的运行模式, 再继续追究安装信息问题!

原因

编译安装完swoole后,在php-fpm/apache的phpinfo页面中有,在命令行的php -m中没有。原因可能是cli/php-fpm/apache使用不同的php.ini配置

解决办法

一、确认php.ini的位置

cli命令行下

php -i|grep php.ini

或者

php --ini

php-fpm/apache,查看phpinfo页面找到php.ini的绝对路径。

二、查看对应php.ini是否有extension=swoole.so

cat /path/to/php.ini | grep swoole.so

为什么命令行能看到网页上看不到

仔细看上面的, 说明cli和apache/fpm模式下的ini配置文件是在不同位置的, 需要找到正确的ini文件.



  • drinkthere

    如果swoole.so能够成功编译,但是php -m 和phpinfo()中都没有正常加载出来swoole的话,请检查php和swoole是不是用不同版本gcc编译的

  • CoderKing

    可以用php -c来制定php.ini的位置,如果觉得麻烦可以写一个shell脚本,把php.ini位置写进行,把文件位置传给通过shell传进去就好!

  • nardee

    cli 环境下,可以-c参数手动指定php.ini位置,如 php -c /usr/local/php56/etc/php.ini /path/to/swoole/server.php

  • D。

    是否安装了多个php版本

  • K.

    mamp pro 是真的坑。。。。

  • Bootoin

    php --ri swoole 有信心介绍 但是 php server.php时 会提示Class 'Server' not found