centos,如何源码编译安装 php72 的 yaml 扩展?
发布于 作者:苏南大叔 来源:程序如此灵动~
苏南大叔在本篇文章中,将要给大家带来的centos下面编译yaml的pecl组件的相关经验。这个yaml的扩展编译安装,和以往的php扩展安装有所不同,它需要两个部分的安装才能完成。

大家请跟随苏南大叔进入本文的正题。本文测试环境:yaml@2.0.2,centos@7,php72。
准备源码
yaml作为php的pecl扩展,其源码当然要到pecl网站上面寻找。在下面的网址上,苏南大叔下载最新的2.0.2源码包。

我们还需要准备一个叫做libyaml的源码包,这个libyaml是安装php的yaml扩展的前置条件,苏南大叔到下面这个网址可以下载到最新版本,在这里苏南大叔下载到的libyaml的最新版是0.1.7 。

苏南大叔把两个源码放到一起,如下图所示。

看起来是有些令人疑惑,两者名字一致,只是版本号不同。但是我们需要知道:两者是完全不同的东西,只是恰巧重名了而已,谁让它们是亲戚关系呢?
181118更新,最新版的yaml0.2.1和yaml2.0.3搭配,成功编译yaml扩展。

编译libyaml
当然你也可以选择先编译pecl的yaml,不过最后make的时候,会报错给你,提示需要libyaml。所以,我们还是先编译libyaml吧,我们先进入libyaml的源码目录(就是版本号比较小的0.1.7这个),然后执行如下命令即可。
cd yaml-0.1.7 #确定进入即可
chmod 777 -R ./ #不一定需要
./configure
make
make install这里有一个小插曲,就是执行configure命令的时候,可能会提示权限不足,我们给相关源码赋予了777权限,然后继续。下面是相关截图。



编译yaml的pecl扩展
这次的主角是yaml-2.0.2,我们的测试环境是centos上的宝塔面板里面的php71,所以可以参考苏南大叔以前的tidy扩展编译相关经验。
如果你的libyaml已经顺便编译并安装了,那么yaml的相关pecl扩展的安装,也应该非常顺利。命令如下:
cd yaml-2.0.2
chmod 777 -R ./
/www/server/php/72/bin/phpize
./configure --with-php-config=/www/server/php/72/bin/php-config
make && make install注意上述代码中的72字样,您操作的时候,可能这个72已经变成了73或者75等等更高的php版本,请根据您自己的实际情况,修改为正确的命令行代码即可。
相关截图如下:

在php.ini中启用yaml.so扩展
启用的办法,非常简单。修改php.ini即可。重启php-fpm服务后,就可以看到phpinfo中的相关变化了。
extension=yaml.so;

yaml这个php扩展,是用于php处理yaml格式文件的。相比较xml格式来说,这个yaml格式并不常见,但是在markdown日益普及的今天,yaml格式还是需要引起大家的重视,因为markdown的扩展属性都是用这种yaml处理,写在md文档的顶端。
总结
苏南大叔安装了这个php扩展后,就会使用相关函数处理yaml格式的文件,所以,大家可以继续关注苏南大叔的yaml相关文章。