文档章节

php7在FreeBSD系统下静态编译iconv,导致BUS ERROR (core dump)解决

hell0cat
 hell0cat
发布于 2018/10/18 15:21
字数 388
阅读 29
收藏 0

bug页面: https://bugs.php.net/bug.php?id=72198
触发此bug需要很多条件:

  1. FreeBSD系统(10.0以上),Linux系统、MacOS下均无此问题
  2. 静态编译iconv扩展,动态iconv扩展也无此问题
  3. 系统安装了libiconv库(根据php bugs报告页面)
  4. 必须是直接运行在硬件之上的FreeBSD系统(虚拟机下的FreeBSD系统也没有重现出此问题)

这个问题,从2016年出现,到现在依然没有人修复,因为这个bus error需要触发的条件很多,所以官方开发iconv扩展的人应该很难重现这样的bug,导致迟迟无法修复。

我的解决方案是,编译php7.0以上的时候去掉iconv扩展,但很不幸,必须得同时去掉gd扩展,因为gd扩展需要iconv扩展才能运行。 所以编译的时候添加参数:

--without-iconv 

iconv默认是打开的,gd不是,所以编译选项去掉 --with-gd 就可以正常编译了。

编译完成后,安装系统的php72-gd、php72-iconv扩展,

pkg install php72-gd php72-iconv

将目录 /usr/local/lib/php/20170718 内的gd.so和iconv.so拷贝到安装php的路径 php.ini里打开这两个扩展即可:

extension=iconv.so
extension=gd.so

© 著作权归作者所有

hell0cat
粉丝 35
博文 50
码字总数 25177
作品 0
徐汇
程序员
私信 提问
加载中

评论(1)

Pader
Pader
我也碰到这个问题了,一开始是在社区里有一个较老版本的PHP的一个补丁,打上后编译即可。后来升级为 php7 后这个补丁就不能用了,后来是 --without-iconv,然后再单独编译 iconv 扩展,要指定 --with-iconv=/usr/local 编译后,把这个扩展加进来即可。
klish 1.6.4 发布,CISCO 方式的 SHELL

klish (Kommand Line Interface SHell) 是一个在 Unix 系统上实现了 Cisco 方式的命令行接口的框架,可通过XML进行配置。是 clish 的衍生版本。 klish 1.6.4 是一个 bugfix 版本,该版本只对...

oschina
2013/02/18
1K
0
FreeBSD 爆出 Root 权限漏洞

一名安全研究人员发现,FreeBSD操作系统中存在能让限权的用户完全控制整个系统的安全漏洞。 一名叫Przemyslaw Frasunek的波兰安全顾问告诉Register小组:Bug存在于FreeBSD的kqueue通知接口,...

红薯
2009/09/15
478
1
FreeBSD 10.0-BETA4 发布

FreeBSD 10.0 的第四个 Beta 版本发布了,与 Beta3 版本比较的改进内容包括: - Add preliminary support for RTL8106E, RTL8168G, RTL8168GU, RTL8411B, and RTL8168EP. - Enable fingerpri......

红薯
2013/12/04
811
2
FreeBSD 12.0-BETA2 发布,类 Unix 操作系统

FreeBSD 12.0-BETA2 发布了。FreeBSD 12.0 是该项目的一个重要特性版本。发行说明尚未编写,因此目前尚未对所有更改进行全面概述。根据一直依赖对 FreeBSD 12 的关注,一些功能将会包括各种 ...

达尔文
2018/10/28
969
3
BSD 家族,第一部分:FreeBSD 9.1

自从第一次索要FreeBSD 4.4获得4张CD后我就是FreeBSD的粉丝了。那时,我已经在Linux上花了很多时间,但它的不稳定性和不一致性让我离开了它。当我装上FreeBSD后,它感觉就像梦一样。一切都按...

oschina
2013/09/26
1K
1

没有更多内容

加载失败,请刷新页面

加载更多

CSS--列表

一、列表标识项 list-style-type none:去掉标识项 disc:默认实心圆 circle:空心圆 squire:矩形 二、列表项图片 list-style-img: 取值:url(路径) 三、列表项位置 list-style-position:...

wytao1995
今天
6
0
linux 命令-文本比较comm、diff、patch

本文原创首发于公众号:编程三分钟 今天学了三个文本比较的命令分享给大家。 comm comm 命令比较相同的文本 $ cat charabc$ cat chardiffadc 比如,我有两个文件char和chardiff如上,...

编程三分钟
今天
7
0
QML教程

https://blog.csdn.net/qq_40194498/article/category/7580030 https://blog.csdn.net/LaineGates/article/details/50887765...

shzwork
今天
5
0
HA Cluster之5

对于使用heartbeat v2版的CRM配置的集群信息都是保存在一个名为cib.xml的配置文件中,存放在/var/lib/heartbeat/crm/下。CIB:Cluster Information Base,由于xml文件配置不是那么方便,所以...

lhdzw
今天
6
0
玩转Redis-Redis基础数据结构及核心命令

  《玩转Redis》系列文章主要讲述Redis的基础及中高级应用,文章基于Redis5.0.4+。本文主要讲述Redis的数据结构String,《玩转Redis-Redis基础数据结构及核心命令》相关操作命令为方便对比...

zxiaofan666
今天
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部