美文网首页
php扩展在全局变量中不存在但是打印phpinfo却存在?

php扩展在全局变量中不存在但是打印phpinfo却存在?

作者: 胡乱唱歌ing | 来源:发表于2018-11-29 10:51 被阅读0次

    说明:我本地装的php集成环境MAMP PRO

    最近遇到一个比较奇怪的问题,在本地搭建了PHP运行环境,并且安装了相应的PHP扩展 并且在测试页面中通过打印phpinfo能看到所安装的扩展是正常的,但是php -m | grep swoole 没有显示swoole 已经配好了php环境变量


    5CCE9A15-4782-47BA-AF44-0E1D23EAF981.png

    装好了php,php一些常用的扩展后就开始配置php系统环境变量,因为我用的mac book pro 所以配置命令如下

    $ echo "export PATH="/Applications/MAMP/bin/php/php7.1.22/bin:$PATH"" >> .bash_profile
    $ source ~/.bash_profile
    

    查看环境变量是否OK

    $  php -v 
        PHP 7.1.22 (cli) (built: Oct  9 2018 14:54:55) ( NTS )
        Copyright (c) 1997-2018 The PHP Group
        Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
    

    以为一切OK的我想试试swoole的性能是否真有官网说的那么厉害于是就准备了一段测试脚本 https://wiki.swoole.com/wiki/page/326.html
    测试脚本

    $http = new Swoole\Http\Server("127.0.0.1", 9501);
    $http->on('request', function ($request, $response) {
        $response->end("<h1>Hello Swoole. #".rand(1000, 9999)."</h1>");
    });
    $http->start();
    

    终端执行

    $ php test.php #开始swoole的http服务
    $ lsof -i:9501 #查看swoole的http服务是否开启
    

    然后奇怪的是swoole的http服务并没有起来 ????
    然后查看php错误日志 惊奇!

     PHP Fatal error:  Uncaught Error: Class 'swoole_http_server' not found 
    

    确定浏览器打印的phpinfo 是有swoole扩展的,而且终端的php跟界面的php是同一个版本的php 百思不解 然后我在终端

    $ php -m | grep swoole
    

    结果很意外 终端里面找不到swoole 扩展!!! 可是浏览器里打印有的啊 而且是同一个PHP版本??奇怪了
    然后在终端执行 php -i 这个是在终端打印phpinfo

    $  php -i
    

    然后对比这个
    终端打印phpinfo

    include_path => .:/Applications/MAMP/bin/php/php7.1.22/lib/php => .:/Applications/MAMP/bin/php/php7.1.22/lib/php
    

    浏览器打印phpinfo


    phpinfo.png

    是同一个PHP没错了 。。。
    然后再对比php.ini引用路径

    终端的:


    image.png

    浏览器的


    image.png

    终于找到原因了 两个地方引用的php.ini不一样 于是在终端引用的php.ini同样加上extension = swoole.so即可

    $ php -m | grep swoole
       swoole
    

    相关文章

      网友评论

          本文标题:php扩展在全局变量中不存在但是打印phpinfo却存在?

          本文链接:https://www.haomeiwen.com/subject/aasxcqtx.html