需求
macOS上,已经使用了brew安装php5.6和php7.2,需要再给php7.2安装yaml扩展。
但是通过brew无法搜索到yaml扩展,需要自己手动编译。
安装步骤
下载yaml的源码:https://pecl.php.net/package/yaml
wget https://pecl.php.net/get/yaml-2.0.4.tgz
加压缩之后进入目录,因为电脑里面有多个不同的PHP版本。
需要加入的是PHP@7.2版本,brew info php@7.2
找到PHP@7.2的目录
The php.ini and php-fpm.ini file can be found in:
/usr/local/etc/php/7.2/
php@7.2 is keg-only, which means it was not symlinked into /usr/local,
because this is an alternate version of another formula.
To have launchd start php@7.2 now and restart at login:
brew services start php@7.2
Or, if you don't want/need a background service you can just run:
php-fpm
所以,虽然解压缩出来的目录有一个phpize但实际上并不是用这个,而是要用你所要安装到的里面的phpize /usr/local/opt/php@7.2/bin/phpize
。
/usr/local/opt/php@7.2/bin/phpize
# 执行 ./configure 在执行之前需要检查有没有装 libyaml扩展
# 如果没有安装使用 brew install libyaml 安装即可
# 配置
./configure --with-yaml \
--bindir=/usr/local/opt/php@7.2/bin \
--with-php-config=/usr/local/opt/php@7.2/bin/php-config \
--includedir=/usr/local/opt/php@7.2/include
make && make test
make install
安装完毕之后,因为我们直接在配置是时候把目录放进去了,所以他会自动在目录里面生成一个 yaml.so文件。目录为/usr/local/Cellar/php@7.2/7.2.15/pecl/20170718/
更新php.ini
上面也已经提到了 brew显示出了php7.2的配置文件的目录。
所以进入配置文件,加入一条:
extension=/usr/local/Cellar/php@7.2/7.2.15/pecl/20170718/yaml.so
然后重启 php-fpm 即可
brew services restart php@7.2
安装完毕!欢迎老码人交流 coconets@163.com