The Drupal Upgrade Status Module is a super helpful tool to upgrade modules and themes to the next major release of Drupal.
Typically in development environments like ddev or other, it's no problem to run the tests in the UI, which can be found on /admin/reports/upgrade-status
But testing on regular webservers, this might be an issue, if the PHP binary is not within the executable paths of the webserver (open_basedir). Then you typically see the following error, as apache can not call the "php" binary:
Error: The PHP binary was not found. Scanning is not possible until this is resolved.
To find out, where your php binary is placed, you can use the shell command:
whereis php
and it will return typical places.
As an experimental workaround(!!) to make upgrade_status run, even in such enviroments, you can add the php binary path to the open_basedir.
Typically the open_basedir value in your Plesk PHP configuration is:
{WEBSPACEROOT}{/}{:}{TMP}{/}
or something like that.
If you're for example running php8.1, you can append:
{:}{/}opt{/}plesk{/}php{/}8.1{/}bin{/}
so this results in:
{WEBSPACEROOT}{/}{:}{TMP}{/}{:}{/}opt{/}plesk{/}php{/}8.1{/}bin{/}
Afterwards upgrade_status should be able to run and the error message should be gone.
After you ran upgrade_status, don't forget to revert that change! And only use this hack, of you know, what you're doing!
Perhaps there are better and more secure ways? Then please let me know!
Hopefully this can be fixed in upgrade_status itself in the future.
Related issues: