1. Disable all your plugin and change template to default wordpress.
2. Logon to SSH using your favorite SSH Client.
3. Download your favorite blog by using the following line :
me@einsamsoldat.net [~/public_html]#wget http://wordpress.org/latest.zip
4. After step 3 is done, backup your wordpress database and wordpress files (assuming your blog created in subfolder blog) :
me@einsamsoldat.net [~/public_html]#cd blog
me@einsamsoldat.net [~/public_html/blog]#mysqldump -umydb_user -ppassword > mydb.sql
me@einsamsoldat.net [~/public_html/blog]#cd ..
me@einsamsoldat.net [~/public_html]#tar -czvf backup_blog.tar.gz blog/
5. Once step 4 is done, means you have done backup your current blog. Its time for upgrade. Remember the file we downloaded using wget from step 3. It is time to extract the file :
me@einsamsoldat.net [~/public_html]#tar -xzvf latest.tar.gz
6. New files being extracted, it is really time to upgrade.
me@einsamsoldat.net [~/public_html]#cd blog
me@einsamsoldat.net [~/public_html/blog]#cp wp-config.php wp-config.bak
me@einsamsoldat.net [~/public_html/blog]#rsync -avz ../wordpress/wp-includes/* wp-includes/
me@einsamsoldat.net [~/public_html/blog]#rsync -avz ../wordpress/wp-admin/* wp-admin/
me@einsamsoldat.net [~/public_html/blog]#rsync -avz ../wordpress/*.php ./
me@einsamsoldat.net [~/public_html/blog]#cp wp-config.bak wp-config.php
7. Done ? Not really, the replacement of vital files is done but you will need to visit your site to finish the database upgrade. In my case, I need to go http://www.einsamsoldat.net/blog/wp-admin . Click “Upgrade” button.
8. Congrats, you have successfully upgraded your wordpress manually.
*Note : This step is derived from the original wordpress upgrade codex.