When I started out writing software, it was simple. You wrote your software and it got deployed elsewhere.
Now, with modern hardware and the complexities of modern software, this simply isn’t of much use anymore. Even if you are developing for one environment, say Android, you need to restrict the version and perhaps the hardware that you support. Web development is an order of magnitude more difficult and it’s critical that there is a clear path from what you write to that being installed on a web server (or client).
Lets work backwards. We have the server on which your software is being deployed. There needs to be another server environment, perhaps a VM on the same machine or another virtualhost for testing. This environment should closely mirror, or even be populated with, data from the live environment. In one system, once the backup of the live data was made, that data was then uploaded to the test server.
You’ll learn what is needed when you deploy from your development environment to this test server, minimizing disruption on updates to the live server.