如何解决php脚本段错误的问题

互联网 20-9-12

php脚本段错误的解决办法:1、升级PHP版本;2、删除“/etc/pki/nssdb/pkcs11.txt”和“/etc/pki/nssdb/cert9.db”文件即可。

推荐:《PHP视频教程》

PHP使用file_get_contents或curl请求https的域名均会发生segment fault的错误。

问题PHP代码如下,执行该PHP命令会发生segment fault:

var_dump(file_get_contents("https://www.baidu.com"));

解决方案:

1. 升级你的PHP版本,在5.4环境下,未能重现改问题(以上执行代码是PHP5.2)

2. Sadly, this has not been the case. Removing /etc/pki/nssdb/pkcs11.txt and /etc/pki/nssdb/cert9.db seem to be the key, here. :-((Centos bugs上提供的解决方案,实践后 可行,但是删掉了不久后会重新出现)

但是为什么会发生段错误呢?

PHP版本:

PHP 5.2.14 (cli) (built: Jul  3 2016 23:56:15) Copyright (c) 1997-2010 The PHP Group Zend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies     with eAccelerator v1.0-dev, Copyright (c) 2004-2012 eAccelerator, by eAccelerator

Linux系统信息:

LSB Version:    :core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch Distributor ID: CentOS Description:    CentOS release 6.3 (Final) Release:        6.3 Codename:       Final

通过查看内核日志和gdb记录,可以发现问题出现在libsqlite上

内核日志:

tail -f /var/log/messages kernel: php[26564]: segfault at 8048 ip 00007f7a72fede9c sp 00007fffec90edf0 error 4 in libsqlite3.so.0.8.6[7f7a72fd1000+8c000]

gdb记录:

Program received signal SIGSEGV, Segmentation fault. 0x00007fffe9651e9c in sqlite3_file_control () from /usr/lib64/libsqlite3.so.0

在Centos的bug列表中,能够找到关于这个bug的说明:

https://bugs.centos.org/view.php?id=7399 https://www.mankier.com/5/cert9.db

以上就是如何解决php脚本段错误的问题的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: 段错误
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:php动态修改网页title的方法

相关资讯