Erik Landvall Erik Landvall - 1 year ago 356
YAML Question

PECL yaml in PHP7

Having some issues with pecl yaml in PHP7 (see below for error log). What I can see on: is that there's some RC's for 2.0 that is suppose to cover the issue... I'm currently running the command:

pecl install yaml && echo "" > /usr/local/etc/php/conf.d/ext-yaml.ini.

But guess this won't install the RC version. How do I install the RC? is there a parameter to supply maybe..?

I could google the following solution (not tested):

pear config-set preferred_state beta

But I guess that this will set a global beta state for all extensions. I only want to install this extension as beta..

Error log

running: make
/bin/bash /tmp/pear/temp/pear-build-defaultuserPVGidl/yaml-1.2.0/libtool --mode=compile cc -I. -I/tmp/pear/temp/yaml -DPHP_ATOM_INC -I/tmp/pear/temp/pear-build-defaultuserPVGidl/yaml-1.2.0/include -I/tmp/pear/temp/pear-build-defaultuserPVGidl/yaml-1.2.0/main -I/tmp/pear/temp/yaml -I/usr/local/include/php -I/usr/local/include/php/main -I/usr/local/include/php/TSRM -I/usr/local/include/php/Zend -I/usr/local/include/php/ext -I/usr/local/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /tmp/pear/temp/yaml/yaml.c -o yaml.lo
mkdir .libs
cc -I. -I/tmp/pear/temp/yaml -DPHP_ATOM_INC -I/tmp/pear/temp/pear-build-defaultuserPVGidl/yaml-1.2.0/include -I/tmp/pear/temp/pear-build-defaultuserPVGidl/yaml-1.2.0/main -I/tmp/pear/temp/yaml -I/usr/local/include/php -I/usr/local/include/php/main -I/usr/local/include/php/TSRM -I/usr/local/include/php/Zend -I/usr/local/include/php/ext -I/usr/local/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /tmp/pear/temp/yaml/yaml.c -fPIC -DPIC -o .libs/yaml.o
In file included from /tmp/pear/temp/yaml/yaml.c:35:0:
/tmp/pear/temp/yaml/php_yaml.h:56:40: fatal error: ext/standard/php_smart_str.h: No such file or directory
#include <ext/standard/php_smart_str.h>
compilation terminated.
Makefile:195: recipe for target 'yaml.lo' failed
make: *** [yaml.lo] Error 1
ERROR: `make' failed

Answer Source

So after some additional googling I found how to install by searching for how to install beta packages, instead of RC's as I first was looking for.. face-palm the correct command would be:

pecl install yaml-beta && echo "" > /usr/local/etc/php/conf.d/ext-yaml.ini
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download