【问题标题】:PHP JSON. Confusing issuePHP JSON。令人困惑的问题
【发布时间】:2011-06-08 01:30:30
【问题描述】:

好的,我正在使用 PHP 5.2 运行 CentOS。我最近添加了 JSON 扩展。运行时

php -i

.. 安装 JSON 后,它说

json

json support => enabled
json version => 1.2.1

但是当我运行 phpinfo 时,它没有显示 JSON 扩展已启用。我已将扩展名添加到 php.ini 文件中,以便加载 json.so 文件。

我对此感到很困惑。这可能是什么原因?

顺便说一句。我将 php 作为 apache 模块运行。

【问题讨论】:

    标签: php linux centos


    【解决方案1】:

    可能您的 PHP cli 使用了不同的 php.ini 文件,该文件加载了 json 扩展名,而 Apache 模块没有。 php -iphpinfo() 提供有关加载的 php.ini 文件的信息。

    对于 PHP cli,可以通过 PHPRC 环境变量或 php -c <file|dir> 指定 php.ini 位置。对于 Apache 模块,您可以使用 Apache 指令PHPINIDir

    【讨论】:

      【解决方案2】:

      从 PHP 5.2 开始,JSON 扩展包含在核心中,您不需要包含任何扩展。如果它说启用了 JSON 支持,它应该可以工作。你真的试过了吗?

      只要 php 不是用 --disable-json 编译的。

      【讨论】:

      • 您会惊讶于发行版从核心中删除扩展的频率。此外,即使它在核心中,它也应该出现在phpinfo 中。它也可以用--enable-json=shared编译。
      【解决方案3】:

      解决了伙计们。我添加了一个更新的存储库,然后运行 百胜更新php 我错误地假设我使用的是 5.2 而实际上它是 5.1

      更新后它工作了。

      【讨论】:

        【解决方案4】:

        补充:

        解决办法是:

        cd /usr/lib/php/modules (or your modules directory where the json.so file is)
        
        strip json.so
        
        apachectl restart
        

        来源:http://fanaticalwebworker.blogspot.com/2010/10/json-with-apache-centos-44-and-php-516.html

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多