How to move Joomla website to VPS

A friend of mine that not seen for years contact me. He had problem with his school website. Headmaster give him order to take care their website that seem to abandoned by current holder. Every time they (school) contact him. No respond and no email. He ask me to see it and if possible solve it immediately.

Update : if you’re in hurry then you can use Fiverr service that will do the job ($5 per site). Click here to see the service.

After ask the website hosting representative we have clues where do we must start.

  1. Create official letter from school about domain ownership.
  2. Scan the letter and send it to hosting company

The process itself is not straightforward as current holder respond to hosting company email and the phone but not respond to us. After a month the progress finally move to right direction. Current holder not paid for hosting fee and that’s the reason for my friend. Contact hosting company and finally they approve account moving and switching.

Since the hosting company suspend the account for its late payment then the website is not accessible anymore and only display ‘account suspended’ message. My friend ask me if I can give him temporary place for their school. I agree to give him a space with exchange. I must do the transfer process myself. I like to see how to transfer joomla based website to vps.

Lets get start!

Backup Joomla Website

Fortunately my friend already download the backup file. Its tar.gz file (backup-11.15.2014_11-29-19_domain.tar.gz ).

Send Joomla backup file to vps

After copying the file to my laptop I initiate transfer using scp.

scp backup-11.15.2014_11-29-19_domain.tar.gz root@ipaddress:/root

the process depend on internet speed and file size. For my case, it took around 1 hour to upload 132MB of file.

Creating New Domain on VPS

I use Easyengine that I use in previous post for host wordpress. Joomla also created with php and utilize mysql. So I choose php+mysql website.

# ee site schooldomainname --mysql

The command will generate all required files including database plus its credentials at /var/www/schooldomainname/ee-config.php

To see database name, database user database password and database host created by easyengine you can use :

cat /var/www/schooldomainname/ee-config.php

Extract Joomla Backup on VPS

I use same VPS that powered by Vultr for WordPress. Time for extract backup file.

# mv backup-11.15.2014_11-29-19_schooldomainname.tar.gz /var/www/schooldomainname/

# cd /var/www/schooldomainname/

# tar xvzf backup-11.15.2014_11-29-19_schooldomainname.tar.gz

# ls
addons     cron          fp              httpfiles  meta  mysql             pds              psql_users.sql    resellerpackages  shell      sslkeys      userdata  vf
bandwidth  digestshadow  has_sslstorage  locale     mm    mysql-timestamps  proftpdpasswd    quota             sds               ssl        suspended    va
counters   dnszones      homedir         logaholic  mma   mysql.sql         psql             resellerconfig    sds2              sslcerts   suspendinfo  vad
cp         domainkeys    homedir_paths   logs       mms   nobodyfiles       psql_grants.sql  resellerfeatures  shadow            ssldomain  userconfig   version

Looks like this backup file created by my friend taken from cpanel backup wizard.

I just need to find out where joomla files and its database located.

Finding Joomla Files + Database

After search for while I can see where is the location of Joomla files. Its in :

homedir/public_html

Database file located in :

mysql

Move Joomla folder to Easyengine public folder

Next step is move joomla folder found from previous step to easyengine folder.

#cd /var/www/schooldomainname

# mv backup-11.15.2014_11-29-19_schooldomainname/homedir/public_html .
# mv tes/backup-11.15.2014_11-29-19_schooldomainname/mysql/schooldomainname.sql .

Edit configuration file of Joomla

The configuration file located in configuration.php . Edit $user, $password and $db .

#nano htdocs/configuration.php

save the file.

Import Joomla Database File

# mysql -udb_user -p db_name < schooldomainname.sql
Enter password:
#

Make Joomla website live

# ee site enable schooldomainame

Thats it. Try to reload it via web browser and everything load fine so far.

My friend happy with the migration process. The load speed is incredible and they can add their content again and if they like it then they can make their own server with Vultr.

Lesson learned :

  1. Never use personal email address as contact, billing etc for school domain. Always use school email address. Beside this touch make everything official also prevent future problem like my friend case.
  2. If possible use the longest period for registering school domain. Yearly renewed domain is not suitable for a school.