A WordPress site is essentially a front end to a database. Every WP site has a file usually called wp_config. That file lists the database host, its name, the user name and password besides other information that for now can be ignored. Hence if you can access the web server through SSH, you can always backup the database. For MySQL or Mariadb, there is an application called mysqldump which exports the current snapshot of the database. Obviously that means that the database cannot be modified while mysqldump is running. One way to do it is to remove access to the website during the period the dump is created. Secondly, the website can be backed up recursively using any archiving software like tar or zip.
Let us say we know have wp.zip and wp.sql containing the WP source code and the sql dump. We then need to migrate to another site say www.acme.xyz. You are given the root directory of your new website in some physical or virtual machine. You also need the admin to create a new empty database that we will call AcmeXYZ for the purpose of this discussion. You will also be provided with a user name and password for the database that you will guard.
You will import wp.sql into the new AcmeXYZ database. Then you will restore wp.zip into the given directory after ensuring that it is empty. You then need to edit wp-config file and change the values of WP_HOME, WP_SITEURL, DB_NAME, DB_USER, DB_PASSWORD and DB_HOST to suit local conditions.
In most cases that should suffice.