[Bug]: PHP version update downloads but does not install it
Platform
Windows
Operating system version
Windows 11 24/H2
System architecture
Intel (x86)
Herd Version
1.19.1
PHP Version
No response
Bug description
When I try to update to latest PHP version (e.g. previously it was 8.3, now it is 8.4.3) it starts downloading the version, states it got downloaded but then stops and does nothing (on the log side). On the GUI side, it just fills up the progress bar and stops there, but if I move out of the PHP tab and get back, it lists again the same 8.4 listed for an update again.
I've noticed that it happens when there is already some prior version of PHP from the same branch (e.g. 8.4.1 to 8.4.3). If I go and manually remove the 8.4.X branch from (C:\Users_username_.config\herd\bin) and update, it starts working again and completes the update.
I am attaching the update process log PRIOR and AFTER removing the folder manually. Not sure why, all permissions are set and as it is seen it only happens when an earlier version of PHP with the same minor branch is already installed.
Steps to reproduce
Get an earlier version of PHP 8.4.X and place it inside the folder. Try to run the update of PHP to get the latest (8.4.6) as of today
Relevant log output
PRIOR TO MANUALLY REMOVING THE PHP 8.4 FOLDER CONTAINING AN EARLIER VERSION OF 8.4.X VERSION:
------------------------------------------------------------------------------------------------
[2025-05-04 12:04:48.738] [info] Downloading PHP 8.4 (8.4.6) from https://download.herdphp.com/8.4/php84-win.zip to C:\Users\Admin\AppData\Local\Temp\php-8.4.zip
[2025-05-04 12:04:48.862] [info] Downloading https://download.herdphp.com/8.4/php84-win.zip to C:\Users\Admin\AppData\Local\Temp\php-8.4.zip
[2025-05-04 12:04:48.862] [info] Total length: 33776109
[2025-05-04 12:04:53.912] [info] Download complete
[2025-05-04 12:05:33.887] [info] log-pid.f35c5ac9-89db-422e-9314-d697da405f1f
[2025-05-04 12:05:33.888] [info] ReverbBroadcast - STDOUT: Pruning Stale Connections ..........................................................................................
[2025-05-04 12:05:33.889] [info] log-pid.f35c5ac9-89db-422e-9314-d697da405f1f
[2025-05-04 12:05:33.889] [info] ReverbBroadcast - STDOUT: Pinging Inactive Connections .......................................................................................
AFTER MANUALLY REMOVING THE PHP 8.4 FOLDER CONTAINING AN EARLIER VERSION OF 8.4.X VERSION AND RESTARTING THE UPDATE:
-----------------------------------------------------------------------------------------------------------------------
[2025-05-04 12:05:44.284] [info] Downloading PHP 8.4 (8.4.6) from https://download.herdphp.com/8.4/php84-win.zip to C:\Users\Admin\AppData\Local\Temp\php-8.4.zip
[2025-05-04 12:05:44.357] [info] Downloading https://download.herdphp.com/8.4/php84-win.zip to C:\Users\Admin\AppData\Local\Temp\php-8.4.zip
[2025-05-04 12:05:44.357] [info] Total length: 33776109
[2025-05-04 12:05:49.949] [info] Download complete
[2025-05-04 12:06:14.453] [info] Stopping all services...
[2025-05-04 12:06:14.454] [info] Stopping NGINX with PID 38828
[2025-05-04 12:06:14.675] [info] Stopped NGINX
[2025-05-04 12:06:14.676] [info] Notifying windows of service update: Dumps - inactive
[2025-05-04 12:06:14.683] [info] Stopping PHP-8.3 with PID 12144
[2025-05-04 12:06:14.871] [info] Stopped PHP-8.3
[2025-05-04 12:06:14.872] [info] Stopping MySQL with PID 43668
[2025-05-04 12:06:15.049] [info] Stopped MySQL
[2025-05-04 12:06:15.050] [info] Stopping ReverbBroadcast with PID 28440
[2025-05-04 12:06:15.245] [info] Stopped ReverbBroadcast
[2025-05-04 12:06:15.245] [info] Stopping PHP-8.3 (Debug) with PID 20792
[2025-05-04 12:06:15.428] [info] Stopped PHP-8.3 (Debug)
[2025-05-04 12:06:15.740] [info] Trying to stop MeliSearch
[2025-05-04 12:06:15.895] [info] Trying to stop MinIO-Storage
[2025-05-04 12:06:16.053] [info] Trying to stop MySQL
[2025-05-04 12:06:16.206] [info] Trying to stop RedisCache
[2025-05-04 12:06:16.360] [info] Trying to stop RedisQueue
[2025-05-04 12:06:16.509] [info] Trying to stop ReverbBroadcast
[2025-05-04 12:06:16.660] [info] [Mails] stopped inactive
[2025-05-04 12:06:16.660] [info] Notifying windows of service update: Mail - inactive
[2025-05-04 12:06:16.665] [error] (node:33980) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 change listeners added to [EventEmitter]. Use emitter.setMaxListeners() to increase limit
[2025-05-04 12:06:16.666] [info] NGINX exited
[2025-05-04 12:06:16.667] [info] Deleted PID file C:\Users\Admin\.config\herd\.pid\nginx.pid
[2025-05-04 12:06:16.667] [info] Notifying windows of service update: NGINX - inactive
[2025-05-04 12:06:16.668] [info] PHP-8.3 exited
[2025-05-04 12:06:16.668] [info] Deleted PID file C:\Users\Admin\.config\herd\.pid\php-8_3.pid
[2025-05-04 12:06:16.669] [info] Notifying windows of service update: PHP-8.3 - inactive
[2025-05-04 12:06:16.669] [info] MySQL exited
[2025-05-04 12:06:16.670] [info] Deleted PID file C:\Users\Admin\.config\herd\.pid\b2c8ffe3-ab23-4e4a-8ac9-646083e4e53e.pid
[2025-05-04 12:06:16.670] [info] Notifying windows of service update: MySQL - inactive
[2025-05-04 12:06:16.670] [info] ReverbBroadcast exited
[2025-05-04 12:06:16.671] [info] Deleted PID file C:\Users\Admin\.config\herd\.pid\f35c5ac9-89db-422e-9314-d697da405f1f.pid
[2025-05-04 12:06:16.671] [info] Notifying windows of service update: ReverbBroadcast - inactive
[2025-05-04 12:06:16.672] [info] PHP-8.3 (Debug) exited
[2025-05-04 12:06:16.672] [info] Deleted PID file C:\Users\Admin\.config\herd\.pid\php-8_3 (debug).pid
[2025-05-04 12:06:16.672] [info] Notifying windows of service update: PHP-8.3 (Debug) - inactive
[2025-05-04 12:06:16.678] [info] PHP-8.3 (Debug) exited with code 1 - PID: 20792
[2025-05-04 12:06:16.679] [info] Notifying windows of service update: PHP-8.3 (Debug) - inactive
[2025-05-04 12:06:16.684] [info] ReverbBroadcast exited with code 1 - PID: 28440
[2025-05-04 12:06:16.684] [info] Notifying windows of service update: ReverbBroadcast - inactive
[2025-05-04 12:06:16.685] [info] MySQL exited with code 1 - PID: 43668
[2025-05-04 12:06:16.685] [info] Notifying windows of service update: MySQL - inactive
[2025-05-04 12:06:16.685] [info] PHP-8.3 exited with code 1 - PID: 12144
[2025-05-04 12:06:16.686] [info] Notifying windows of service update: PHP-8.3 - inactive
[2025-05-04 12:06:16.686] [info] NGINX exited with code 1 - PID: 38828
[2025-05-04 12:06:16.686] [info] Notifying windows of service update: NGINX - inactive
[2025-05-04 12:06:16.707] [info] log-pid.b2c8ffe3-ab23-4e4a-8ac9-646083e4e53e
[2025-05-04 12:06:16.707] [info] log-pid.b2c8ffe3-ab23-4e4a-8ac9-646083e4e53e
[2025-05-04 12:06:16.708] [info] log-pid.b2c8ffe3-ab23-4e4a-8ac9-646083e4e53e
[2025-05-04 12:06:16.708] [info] log-pid.b2c8ffe3-ab23-4e4a-8ac9-646083e4e53e
[2025-05-04 12:06:16.708] [info] log-pid.b2c8ffe3-ab23-4e4a-8ac9-646083e4e53e
[2025-05-04 12:06:16.709] [info] log-pid.b2c8ffe3-ab23-4e4a-8ac9-646083e4e53e
Seems like it does not work even with 8.4.7 version to update, so I had to manually go to .config/Herd/bin and remove php84 folder which changed the button in PHP tab from update to Install and I get it perfectly correct to install. Not a fix, but a workaround but still it takes 10 seconds to do so not a biggie either. Just remember, that if you are using 8.4 PHP with your local server, before updating you should stop all services, rename the folder to .php84 and restart services to install PHP the usual way. At least if you fail to install, you have your previous version to work with ;)
Hmm..we try to stop all running PHP CGI services when attempting to update, as Windows otherwise throws file permission errors. Maybe this is not working for you. I just tried this again on my Windows VMs and my Windows machine and I was able to update without an issue.
Could you still have any php.exe CLI processes running when you try and update? Maybe this is preventing the update from working properly.