PHP间歇性地无法加载json.so(Ubuntu 12.04 LTS上的PHP5.4.19)
我使用的是Ubuntu12.04LTS,需要php5.4,所以我使用的是(php5-oldstable)包 phpinfo和CLI都显示启用了JSON: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
#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。您是否检查了文件系统中是否存在模块文件
您有以下选项:
当你的问题解决后,请在这里写一个回复。我很好奇它是什么,希望是什么D既然您说json扩展加载在
phpinfo()
的输出中,那么您可能正在处理一个bug。您是否检查了文件系统中是否存在模块文件
您有以下选项:
当你的问题解决后,请在这里写一个回复。我很好奇它是什么,希望是什么D一点不能诊断或解决问题(似乎参考PHP 5.5),但可能有助于跟踪其根本原因:
- 这也解释了一些Linux发行版已选择使用drop-in compatible替代的正式PHP实现。理由是Douglas Crockford的实施在许可证中包含一条非自由条款(“软件应用于善,而非恶”)。另见
- 这也解释了一些Linux发行版已选择使用drop-in compatible替代的正式PHP实现。理由是Douglas Crockford的实施在许可证中包含一条非自由条款(“软件应用于善,而非恶”)。另见
json.ini
在先前php5.5安装遗留下来的/etc/php5/{mods available}
中的某个地方JSON.so
)php5 fpm
)。这些症状可能表明,在加载的包中有一些以前的PHP的Apache2线程被卡住(在本例中是带有json-c
基于json扩展的PHP5.5)我认为可能的罪魁祸首(正如我在电子邮件中回答的)是您正在从配置文件的某处加载json扩展名 JSON扩展是在PHP5.4的核心中编译的,因此您不应该手动加载它 请检查您是否没有:
json.ini
在先前php5.5安装遗留下来的/etc/php5/{mods available}
中的某个地方JSON.so
)php5 fpm
)。这些症状可能表明,在加载的包中有一些以前的PHP的Apache2线程被卡住(在本例中是带有json-c
基于json扩展的PHP5.5)我的评论与您的实际问题无关,只是您正在谈论使用
PHP
作为Apache
的模块,但随后您使用其CLI
输出来证明JSON库的存在。这两个版本不一定相同(可能是完全不同的版本)。我认为使用phpinfo()会更精确
的输出,以证明JSON库已实际加载。@Mehran谢谢-phpinfo和CLI都显示JSON已启用。我不确定您是否能找到解决方案,我也没有为您提供任何解决方案,但我只想说,您始终可以从源代码编译最新版本的Apache
和PHP
。这样你就可以确保你没有处理别人的错误。这值得花一点时间,特别是因为Apache的2.4版本(目前是稳定的版本)没有任何改进