Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP间歇性地无法加载json.so(Ubuntu 12.04 LTS上的PHP5.4.19)_Php_Ubuntu 12.04_Php 5.4 - Fatal编程技术网

PHP间歇性地无法加载json.so(Ubuntu 12.04 LTS上的PHP5.4.19)

PHP间歇性地无法加载json.so(Ubuntu 12.04 LTS上的PHP5.4.19),php,ubuntu-12.04,php-5.4,Php,Ubuntu 12.04,Php 5.4,我使用的是Ubuntu12.04LTS,需要php5.4,所以我使用的是(php5-oldstable)包 phpinfo和CLI都显示启用了JSON: #php -i | grep -i json json json support => enabled json version => 1.2.1 我的应用程序大部分是有效的。但是定期(大约十次刷新一个页面)会出现PHP错误。这只是间歇性的 PHP Startup: Unable to load dynamic library

我使用的是Ubuntu12.04LTS,需要php5.4,所以我使用的是(php5-oldstable)包

phpinfo和CLI都显示启用了JSON:

#php -i | grep -i json
json
json support => enabled
json version => 1.2.1
我的应用程序大部分是有效的。但是定期(大约十次刷新一个页面)会出现PHP错误。这只是间歇性的

 PHP Startup: Unable to load dynamic library '/usr/lib/php5/20100525+lfs/json.so'
 - /usr/lib/php5/20100525+lfs/json.so: cannot open shared object file: 
 No such file or directory "json.so"

如何修复此问题?

既然您说json扩展加载在
phpinfo()
的输出中,那么您可能正在处理一个bug。您是否检查了文件系统中是否存在模块文件

您有以下选项:

  • 使用Apache2.4从源代码编译PHP5.4
  • 升级到相同的版本,将为您提供PHP5.5+Apache2.4
  • 在Ubuntu的PPAs中使用Ondrej并等待它被解决
  • 有关更多信息,请查看

    提交bug是必须的,因为如果它是真实的bug,则必须为所有用户修复。 你可以先选择第二种。所以检查一下,然后决定

    根据您必须使用的机器的不同,它也会有很大的差异。如果它是一个关键的生产服务器,您可能不希望在其上编译更改版本。把这个bug归档,看看包维护人员对此有什么看法


    当你的问题解决后,请在这里写一个回复。我很好奇它是什么,希望是什么D

    既然您说json扩展加载在
    phpinfo()
    的输出中,那么您可能正在处理一个bug。您是否检查了文件系统中是否存在模块文件

    您有以下选项:

  • 使用Apache2.4从源代码编译PHP5.4
  • 升级到相同的版本,将为您提供PHP5.5+Apache2.4
  • 在Ubuntu的PPAs中使用Ondrej并等待它被解决
  • 有关更多信息,请查看

    提交bug是必须的,因为如果它是真实的bug,则必须为所有用户修复。 你可以先选择第二种。所以检查一下,然后决定

    根据您必须使用的机器的不同,它也会有很大的差异。如果它是一个关键的生产服务器,您可能不希望在其上编译更改版本。把这个bug归档,看看包维护人员对此有什么看法


    当你的问题解决后,请在这里写一个回复。我很好奇它是什么,希望是什么D

    一点不能诊断或解决问题(似乎参考PHP 5.5),但可能有助于跟踪其根本原因:

    • 这也解释了一些Linux发行版已选择使用drop-in compatible替代的正式PHP实现。理由是Douglas Crockford的实施在许可证中包含一条非自由条款(“软件应用于善,而非恶”)。另见

    一点不能诊断或解决问题(似乎参考了PHP 5.5),但可能有助于追踪其根本原因:

    • 这也解释了一些Linux发行版已选择使用drop-in compatible替代的正式PHP实现。理由是Douglas Crockford的实施在许可证中包含一条非自由条款(“软件应用于善,而非恶”)。另见

    我认为可能的罪魁祸首(正如我在电子邮件中回答的那样)是您正在从配置文件的某处加载json扩展名

    JSON扩展是在PHP5.4的核心中编译的,因此您不应该手动加载它

    请检查您是否没有:

  • json.ini
    在先前php5.5安装遗留下来的
    /etc/php5/{mods available}
    中的某个地方

  • 您没有从上述脚本加载JSON扩展,例如,没有dl(
    JSON.so

  • 更改主要版本时,确保已停止并启动Apache2(同样适用于
    php5 fpm
    )。这些症状可能表明,在加载的包中有一些以前的PHP的Apache2线程被卡住(在本例中是带有
    json-c
    基于json扩展的PHP5.5)


  • 我认为可能的罪魁祸首(正如我在电子邮件中回答的)是您正在从配置文件的某处加载json扩展名

    JSON扩展是在PHP5.4的核心中编译的,因此您不应该手动加载它

    请检查您是否没有:

  • json.ini
    在先前php5.5安装遗留下来的
    /etc/php5/{mods available}
    中的某个地方

  • 您没有从上述脚本加载JSON扩展,例如,没有dl(
    JSON.so

  • 更改主要版本时,确保已停止并启动Apache2(同样适用于
    php5 fpm
    )。这些症状可能表明,在加载的包中有一些以前的PHP的Apache2线程被卡住(在本例中是带有
    json-c
    基于json扩展的PHP5.5)


  • 我的评论与您的实际问题无关,只是您正在谈论使用
    PHP
    作为
    Apache
    的模块,但随后您使用其
    CLI
    输出来证明JSON库的存在。这两个版本不一定相同(可能是完全不同的版本)。我认为使用
    phpinfo()会更精确
    的输出,以证明JSON库已实际加载。@Mehran谢谢-phpinfo和CLI都显示JSON已启用。我不确定您是否能找到解决方案,我也没有为您提供任何解决方案,但我只想说,您始终可以从源代码编译最新版本的
    Apache
    PHP
    。这样你就可以确保你没有处理别人的错误。这值得花一点时间,特别是因为Apache的2.4版本(目前是稳定的版本)没有任何改进