This answer will assume that you are familiar with command line, if not I'm sure there are plugins that work although I have had much better luck doing things without them. I can update my answer if a plugin is necessary.
Step 1: Dump out your wordpress database. To do this use the following command:
mysqldump -h hostname -u username -p wordpress > blog.sql
Where blog is your Wordpress site's database (it can differ but this is what it is usually called).
Step 2: Copy your Wordpress site. You may need to play with this but it will be similar to the following:
rsync -av /var/www/wordpress /path/to/new/site
wget may also work, so that may be an option as well, it is up to you as to which one to use.
Make sure www-data has the correct permissions:
chown -R www-data\: /wp-contenet
Step 3: Read the database in to your new Wordpress Location.
mysqldump -h hostname -u username -p wordpress < blog.sql
Step 4: Edit wp-config.php to reflect the new and correct settings.
Note: You may need to run some SQL commands to get everything to show up correctly on the new site.