Drush 8 doesn’t work without public_html symlink


I have just updated to Ubuntu 20.04 so have a fresh install of everything.
I have a working Drupal 7 site I’ll call mysite.
I have Drush-launcher installed globally at /usr/local/bin/drush
The file structure of the site is like this:

/var/www/mysite/composer.json (used to install Drush 8.4.1)
/var/www/mysite/vendor/drush/drush/drush (local Drush 8.4.1 binary)
/var/www/mysite/web
/var/www/mysite/public_html (symlink to web)
/var/www/mysite/web/sites (etc)

Drush works with this configuration. drush status returns a full and accurate site description of about 15 lines.

If I remove the public_html link, the Drupal site runs fine but most Drush commands no longer work. drush status returns only the bare minimum of 7 lines as it does when it can’t find the site. drush --version does return the correct version number either way and if I move the Drush 8 directory, all Drush commands return an error as expected (this shows I’m still using the correct binary).

I have several Drupal 8 sites that are configured this exact same way (no public_html directory or link) and they work as expected.

I have searched my ~/.drush directory for any reference to public_html and there are none related to this site. I have cleared the Drush cache. There are no references to public_html in my Apache config for the site. Searching isn’t turning up anything useful.

I could just leave the public_html link in the filesystem but git wants me to add it or ignore which seems kinda silly.

I don’t understand what I might be doing wrong. Anyone have any thoughts? Please let me know if I can provide more information.

Thanks!