For the sake of not writing a series of books, I am making a number of assumptions here:
- Operating system is Debian (or a Debian derivative that doesn't stray too far).
- Web server is Apache 2.
- Database system is MariaDB.
- We are using git for version control and deployment. (I once heard someone quite forcefully say that you shouldn't use git for deployment. Never worked out why. Certainly doesn't apply since Drupal 7, now that the .git directory is above the web root.)
- We are using Composer for installing/updating and managing dependencies.
- We are doing a lot of our other regular administrative tasks with drush.
- We are not using Docker/DDEV, as drupal.org recommends. I'm old, and I don't hold with any of that newfangled nonsense.