When using pecl to install a PHP extension, I always got a “fatal error: ‘pcre2.h’ file not found” after PHP has been updated. The update was done using
brew upgrade php. In my case, this happens when I try to install pcov using:
pecl install pcov
The output was:
In file included from /private/tmp/pear/temp/pcov/pcov.c:26: /opt/homebrew/Cellar/php/8.2.2/include/php/ext/pcre/php_pcre.h:23:10: fatal error: 'pcre2.h' file not found #include "pcre2.h" ^~~~~~~~~
To fix the issue, make sure you have
brew install pcre2
After this, create a symlink to the
ln -s /opt/homebrew/Cellar/pcre2/10.42/include/pcre2.h /opt/homebrew/Cellar/php/8.2.2/include/php/ext/pcre/pcre2.h
Make sure, to adjust the versions of pcre2 and php (or any other package where you got the error). In my case it’s PHP version 8.2.2 (see the error message) and pcre2 version 10.42.
After the symlink was created, the installation of pcov finished without errors:
Build process completed successfully Installing '/opt/homebrew/Cellar/php/8.2.2/pecl/20220829/pcov.so' install ok: channel://pecl.php.net/pcov-1.0.11 Extension pcov enabled in php.ini
Foto von Scott Rodgerson auf Unsplash.