When running PHP with extensions like imagick, sometimes the extension needs a rebuild after `brew upgrade`.
Otherwise, it will throw a warning:
```
Warning: Version warning: Imagick was compiled against ImageMagick version 1809 but version 1810 is loaded. Imagick will run but may behave surprisingly in Unknown on line 0
```
This warning is also printed, within the shell executions in Valet.
But we use the output of those PHP CLI invocations.
With those warnings being printed out, the parsing on the output fails and Valet cannot be used until the pecl extension is rebuilt.
With this patch, all CLI PHP invocations use ` -d error_reporting=1`.
This suppresses warnings, but will still report errors.
It makes valet more robust in case a system package update causes warnings.
Change how the php-memory-limits.ini is managed because when changed between PHP versions all the configuration added previously is overrided and it a waste of time if you work with several PHP versions during the day
While my PR #1514 fixed recreating the FPM configs, it introduced a different issue:
Due to the use of `utilizedPhpVersions()`, the code now also configured the FPM config for the alias `php` version.
This caused it to invoke the configure function with an empty version string and thus overwriting the FPM config for (in my case) the php@8.4 config templated with `valet.sock` instead of the correct `valet84.sock`.
The nginx sites that were configured to proxy their requests to the `valet84.sock` then failed because it did not exist anymore.
We fixed this by always including the actual linked PHP version via the `linkedPhp` function. This returns `php8.4` instead of `php`.
`php` is an alias anyway and this also removes another unnecessary service restart call. Previously, this would also try to restart the `php` service via brew which was already restarted through the restart of `php@8.4`, which is an alias in brew.
This also fixes an issue with the previous PR, to correctly symlink `valet.sock` again to the linked PHP version, which we oversaw.
This previously only reapplied the configuration for the linked version.
Because it is recommended to run valet install again after a brew upgrade, it is necessary to update all utilized PHP versions.
On brew upgrades, some versions received the default www.conf again. This would leave the user with a broken setup until they either call `valet use php@X.X` for all the versions or isolate a site again with the version.
This commit fixes the behavior by rerunning the configuration step on all php versions. This is more consistent, because in the next line all utilized PHP versions are also restarted.