关于 报错 undefined symbol: php_json_serializable_ce

 环境:

  lnmp(ubuntu 16.0.4 ;php7)

目的:

  安装phalcon7(相关链接:https://github.com/dreamsxin/cphalcon7网上还有有很多,自行查找

问题:

  安装完毕验证时,执行命令

  # php --ri phalcon7

  报错:

PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/phalcon.so' - /usr/lib/php/20151012/phalcon.so: undefined symbol: php_json_serializable_ce in Unknown on line 0

  红色为重点,原因是json扩展问题

  1、php没有装json扩展 针对这点请自行安装json扩展

  2、phalcon扩展在php加载扩展优先级高于json,故要将phalcon的优先级设置低于json

 

针对问题2的解决方案:

  1、将之前在php.ini中添加的  extension=phalcon.so此扩展删除,包括fpm和cli中的php.ini

  2、不同系统路径不同,我以ubuntu为例:在 /etc/php/7.0/mods-available/ 目录下创建: phalcon.ini 文件,内容为: 

; configuration for php phalcon7 module
; priority=30
extension=phalcon.so

  注:红色 phalcon7 处。因为我是安装的phalcon,若是安装其他扩展请做相应更改

  这里优先级设置为30 因为json的优先级为20 。(json优先级在 vim /etc/php/7.0/cli/conf.d/20-json.ini 或vim /etc/php/7.0/fpm/conf.d/20-json.ini  查看)

  3、在/etc/php/7.0/cli/conf.d/ 及/etc/php/7.0/fpm/conf.d/ 目录下分别创建软连接,命令如下:

ln -s /etc/php/7.0/mods-available/phalcon.ini 30-phalcon.ini

  4、重启nginx和php服务:

sudo service nginx restart
sudo service php7.0-fpm restart

  5再次执行  

  # php --ri phalcon7  

  不再报错

 

总结:

  此方案在php新增扩展时 报错:undefined symbol: php_json_serializable_ce  均适用。网上查有朋友新增mongodb.so或ds.so 时报此错误。均可按照上面方法解决。注意一定要更改cli和fpm两处,如果你的cli和fpm的配置不是共享的话

 

参考文章:

  https://stackoverflow.com/questions/40979377/laravel-homestead-mongo-install-causing-php-error-undefined-symbol-php-json-ser

  http://blog.csdn.net/cheniison/article/details/52351049

  

 

转载于:https://www.cnblogs.com/estadewey/p/8178548.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值