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

前几篇文章中,苏南大叔和大家描述了php72在mac下面的编译事项。事实上,在苏南大叔的某台mac上面,出现了iconv的相关错误提示,虽然这个函数不是太常用。但是,有,总是比没有更好的。人生就是这么贪婪....如果大家也遇到了相同的问题,不妨和苏南大叔一起,来探究一下iconv.so文件的编译经历。如果您确认xcode正确安装了,而且lib目录也正确做好了软连接的情况下(https://newsn.net/say/phpize-howto.html),还是出现iconv的报错问题。那么,您可以继续查看本文内容。

掩耳盗铃的方案

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

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

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

./configure --help | grep iconv

mac系统,编译php72的iconv模块 - 000

下载iconv模块

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

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

mac系统,编译php72的iconv模块 - 021

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

mac系统,编译php72的iconv模块 - 021_

iconv第三方软件的编译安装

下载到上述的iconv1.15之后,我们需要对它进行编译安装。脚本很简单,命令如下:

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

mac系统,编译php72的iconv模块 - 022

编译过程,比较容易。

mac系统,编译php72的iconv模块 - 023

mac系统,编译php72的iconv模块 - 024

mac系统,编译php72的iconv模块 - 025

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

编译安装php的iconv扩展

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

phpize
./configure
make
sudo make install

mac系统,编译php72的iconv模块 - 026

mac系统,编译php72的iconv模块 - 027

mac系统,编译php72的iconv模块 - 028

开启php.ini中的iconv.so

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

mac系统,编译php72的iconv模块 - 034

题外话

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

./configure
make
sudo make install

mac系统,编译php72的iconv模块 - 101

结论

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

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

本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。