composer update -vvv
```
报错提示需要yaml扩展## 解决办法
给php加上 yaml扩展,开发所用的系统 mac,php存在两个版本,brew 安装的php@7.4以及系统自带的php 7.3.11.## 整个过程1. 查看PHP版本
```shell
admin@macbook ~ % brew info php@7.4
php@7.4: stable 7.4.21 (bottled) [keg-only]
General-purpose scripting language
https://www.php.net/
/usr/local/Cellar/php@7.4/7.4.21 (497 files, 72.4MB)Poured from bottle on 2021-07-08 at 19:03:48
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/php@7.4.rb
License: PHP-3.01
==> Dependencies
Build: httpd ✘, pkg-config ✘
Required: apr ✔, apr-util ✔, argon2 ✔, aspell ✔, autoconf ✔, curl ✔, freetds ✔, gd ✔, gettext ✔, glib ✔, gmp ✔, icu4c ✔, krb5 ✔, libffi ✔, libpq ✔, libsodium ✔, libzip ✔, oniguruma ✔, openldap ✔, openssl@1.1 ✔, pcre2 ✔, sqlite ✔, tidy-html5 ✔, unixodbc ✔
==> Caveats
To enable PHP in Apache add the following to httpd.conf and restart Apache:LoadModule php7_module /usr/local/opt/php@7.4/lib/httpd/modules/libphp7.so<FilesMatch \.php$>SetHandler application/x-httpd-php</FilesMatch>Finally, check DirectoryIndex includes index.phpDirectoryIndex index.php index.htmlThe php.ini and php-fpm.ini file can be found in:/usr/local/etc/php/7.4/php@7.4 is keg-only, which means it was not symlinked into /usr/local,
because this is an alternate version of another formula.If you need to have php@7.4 first in your PATH, run:echo 'export PATH="/usr/local/opt/php@7.4/bin:$PATH"' >> ~/.zshrcecho 'export PATH="/usr/local/opt/php@7.4/sbin:$PATH"' >> ~/.zshrcFor compilers to find php@7.4 you may need to set:export LDFLAGS="-L/usr/local/opt/php@7.4/lib"export CPPFLAGS="-I/usr/local/opt/php@7.4/include"To have launchd start php@7.4 now and restart at login:brew services start php@7.4
Or, if you don't want/need a background service you can just run:php-fpm
==> Analytics
install: 28,696 (30 days), 89,291 (90 days), 203,224 (365 days)
install-on-request: 28,467 (30 days), 88,709 (90 days), 202,147 (365 days)
build-error: 0 (30 days)```启动php@7.4并替代默认的php 执行文件```shell
admin@macbook ~ % brew services start php@7.4
admin@macbook ~ % echo 'export PATH="/usr/local/opt/php@7.4/sbin:$PATH"' >> ~/.zshrc
admin@macbook ~ % echo 'export PATH="/usr/local/opt/php@7.4/bin:$PATH"' >> ~/.zshrc
admin@macbook ~ % source ~/.zshrc
admin@macbook ~ % php -v
PHP 7.4.21 (cli) (built: Jul 1 2021 23:23:25) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologieswith Zend OPcache v7.4.21, Copyright (c), by Zend Technologiesadmin@macbook bin % php --ini
Configuration File (php.ini) Path: /usr/local/etc/php/7.4
Loaded Configuration File: /usr/local/etc/php/7.4/php.ini
Scan for additional .ini files in: /usr/local/etc/php/7.4/conf.d
Additional .ini files parsed: /usr/local/etc/php/7.4/conf.d/ext-opcache.ini```修改 php-config 将pecl改为lib,不然目录不正确```shelladmin@macbook bin % sudo vim php-configadmin@macbook bin % ./pecl install yaml
pecl/yaml is already installed and is the same as the released version 2.2.1
install failed
```安装报错提示已经安装,强制安装
```shelladmin@macbook bin % ./pecl install -f yaml
Please provide the prefix of libyaml installation [autodetect] : Build process completed successfully
Installing '/usr/local/Cellar/php@7.4/7.4.21/lib/20190902/yaml.so'
install ok: channel://pecl.php.net/yaml-2.2.1
Extension yaml enabled in php.ini
```检查,发现目录没有相对正确,改为绝对目录
```shelladmin@macbook bin % php -m | grep yaml
PHP Warning: PHP Startup: Unable to load dynamic library 'yaml.so' (tried: /usr/local/lib/php/pecl/20190902/yaml.so (dlopen(/usr/local/lib/php/pecl/20190902/yaml.so, 9): image not found), /usr/local/lib/php/pecl/20190902/yaml.so.so (dlopen(/usr/local/lib/php/pecl/20190902/yaml.so.so, 9): image not found)) in Unknown on line 0
Warning: PHP Startup: Unable to load dynamic library 'yaml.so' (tried: /usr/local/lib/php/pecl/20190902/yaml.so (dlopen(/usr/local/lib/php/pecl/20190902/yaml.so, 9): image not found), /usr/local/lib/php/pecl/20190902/yaml.so.so (dlopen(/usr/local/lib/php/pecl/20190902/yaml.so.so, 9): image not found)) in Unknown on line 0admin@macbook bin % vim /usr/local/etc/php/7.4/php.iniextension="/usr/local/Cellar/php@7.4/7.4.21/lib/20190902/yaml.so"
```引入成功
```
admin@macbook bin % php -m | grep yaml
yaml```