我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

前几篇文章中,苏南大叔和大家描述了php72mac下面的编译事项。事实上,在苏南大叔的某台mac上面,出现了iconv相关错误提示,虽然这个函数不是太常用。但是,有,总是比没有更好的。人生就是这么贪婪....

苏南大叔:mac 系统,如何编译 php72 的 iconv 模块? - php72-iconv
mac 系统,如何编译 php72 的 iconv 模块?(图13-1)

如果大家也遇到了相同的问题,不妨和苏南大叔一起,来探究一下iconv.so文件的编译经历。如果您确认xcode被正确安装了,而且lib目录也正确做好了软连接的情况下(https://newsn.net/say/phpize.html),还是出现iconv的报错问题。那么,您可以继续查看本文内容。

掩耳盗铃的方案

由于默认情况下,iconvphp中的扩展是默认安装的。在php72编译出错的时候,苏南大叔使用了参数--without-iconv,暂时略过了iconv模块的编译。编译的过程,可以参见这篇文章:

./configure的时候,使用参数--without-iconv,略过iconv模块,掩耳盗铃般略过这个问题。

当然,这个参数--without-iconv,是通过下面的方式获得的。

./configure --help | grep iconv

苏南大叔:mac 系统,如何编译 php72 的 iconv 模块? - 000
mac 系统,如何编译 php72 的 iconv 模块?(图13-2)

下载iconv模块

如果要正视这个问题的话,那么

根据经验,编译php的模块出错的时候,我们可能需要先安装第三方依赖。iconv的下载地址如下:

苏南大叔:mac 系统,如何编译 php72 的 iconv 模块? - 021
mac 系统,如何编译 php72 的 iconv 模块?(图13-3)

页面当然有些丑陋,当然,很多开源软件,页面都比较简陋。但是这个iconv的版本号,苏南大叔是觉得有些迷糊啊。大家自己看截图,注意,截至到发稿,iconv的最新版本是1.15

苏南大叔:mac 系统,如何编译 php72 的 iconv 模块? - 021_
mac 系统,如何编译 php72 的 iconv 模块?(图13-4)

iconv第三方软件的编译安装

下载到上述的iconv@1.15之后,苏南大叔需要对它进行编译安装。脚本很简单,命令如下:

./configure --prefix=/usr/local
make
sudo make install

苏南大叔:mac 系统,如何编译 php72 的 iconv 模块? - 022
mac 系统,如何编译 php72 的 iconv 模块?(图13-5)

编译过程,比较容易。

苏南大叔:mac 系统,如何编译 php72 的 iconv 模块? - 023
mac 系统,如何编译 php72 的 iconv 模块?(图13-6)

苏南大叔:mac 系统,如何编译 php72 的 iconv 模块? - 024
mac 系统,如何编译 php72 的 iconv 模块?(图13-7)

苏南大叔:mac 系统,如何编译 php72 的 iconv 模块? - 025
mac 系统,如何编译 php72 的 iconv 模块?(图13-8)

其中,--prefix=/usr/local指的是:默认的安装位置是:/usr/local

编译安装phpiconv扩展

苏南大叔cdphp72的源码目录下:/ext/iconv/。然后执行常规的编译命令即可。

phpize
./configure
make
sudo make install

苏南大叔:mac 系统,如何编译 php72 的 iconv 模块? - 026
mac 系统,如何编译 php72 的 iconv 模块?(图13-9)

苏南大叔:mac 系统,如何编译 php72 的 iconv 模块? - 027
mac 系统,如何编译 php72 的 iconv 模块?(图13-10)

苏南大叔:mac 系统,如何编译 php72 的 iconv 模块? - 028
mac 系统,如何编译 php72 的 iconv 模块?(图13-11)

开启php.ini中的iconv.so

开启的过程非常简单,您可以参照这篇文章,https://newsn.net/say/mac-php-gd-freetype.html 。重启之后,您就可以看到效果了。

苏南大叔:mac 系统,如何编译 php72 的 iconv 模块? - 034
mac 系统,如何编译 php72 的 iconv 模块?(图13-12)

题外话

在编译过程中,还有可能碰到缺少zlib的错误提示,那么下载地址是:http://www.zlib.net/ 。处理过程,也非常简单。如果您需要,可以按照本节内容配置。这里就不做细说了。比较简单。

./configure
make
sudo make install

苏南大叔:mac 系统,如何编译 php72 的 iconv 模块? - 101
mac 系统,如何编译 php72 的 iconv 模块?(图13-13)

结论

苏南大叔的iconv编译过程,主要问题可能就是:iconv的版本问题了。可能是先入为主的缘故,下载到了错误的1.9版本,实际上最新版是1.15。哈哈~~

如果您觉得本篇文章有用,解决了您的类似问题。欢迎打赏、点赞、转载苏南大叔的文章,更多php相关文章,请点击这里查看:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   php    mac