Saturday, June 20, 2015

How To: Cara Migrasi Hosting dari Shared Hosting ke VPS

Sudah lama sebenarnya saya ingin menulis tutorial ini, hanya saja saya berpikir, “siapa pula yang akan membacanya?”. Setelah menulis beberapa tutorial tentang install webserver di VPS Linux, akhirnya mulai ada beberapa orang yang meminta tutorial ini.
Pertama kali saya belajar tentang Linux dan VPS, saya tidak langsung berhasil. Ada banyak trial and error yang saya alami.
Saya tidak begitu saja berhenti, karena semua jawaban dari masalah saya ada di Google. Caranyapaste masalah yang muncul di form pencarian. Saya menghargai usaha google yang terus memberikan hasil terbaik di setiap update algoritmanya.
Saya yakin, pembaca di sini juga mengalami beberapa masalah. Banyak email yang masuk ke saya yang menanyakan masalah A-Z, hanya saja saya tidak bisa membantu begitu saja, selain saya tidak mengetahui akar permasalahannya, saya juga memiliki waktu lain.
Sekarang, saya berusaha tidak membantu dengan cara “memberikan ikan langsung“, tetapi dengan cara “memberi kail pancingan untuk menangkap ikan“.
migrasi server
Sebenarnya, untuk memindahkan website dari shared ke VPS itu sngat mudah. Prinsipnya tetap sama dengan tutorial-tutorial memindahkan website yang pernah saya tulis sebelumnya.
Di sini, saya harapkan pembaca yang mengikuti tutorial ini setidaknya tahu struktur file linux, atau minimal tahu direktori dimana website disimpan.
Hanya saja, jika kamu belum pernah sama sekali menyentuh VPS dan memahami bagaimana semua stack bekerja, akan sangat sulit. Sebagai contoh, ada pembaca yang bertanya kepada saya tentang nginx yang selalu gagal di restart, tetapi ketika saya meminta isi virtualhost dia tidak mengetahui ada dimana file tersebut.

Backup Website di cPanel

Hal yang harus kamu backup di cPanel adalah database dan file-content/asset. Jika memakai WordPress, maka yang harus kamu backup adalah wp-content dan database MySQL.
Khusus untuk wp-content, ada dua cara yang bisa kamu pakai untuk memidahkan wp-content ke VPS. Pertama jika website yang akan kamu pindahkan sedang online (bisa diakses), kamu hanya perlu compress .zip atau .tar.gz nantinya file tersebut akan kita download melalui ssh VPS.
wget http://alamatdomain.com/wp-content.zip
Kedua jika website offline (tidak bisa diakses), ada dua alternatif yang bisa kamu pakai. Pertama kamu memakai SFTP menggunakan software fileZilla untuk mengupload wp-content yang sudah kamu compress. Kedua, mengupload ke Dropbox yang nantinya akan kita download melalui SSH VPS memakai wget.
Pada tutorial ini, meskipun caranya agak “lebay”, saya akan memakai cara mendownload langsung dari website karena paling praktis untuk saat ini.
Oke, website yang akan saya pindahkan dalam contoh ini adalah nadiar.web.id dari HawkHost keDigitalOcean. Pertama saya compress ke .tar.gz wp-content dan file-file penting di root website tersebut.
Compress wp-content dan file penting
Compress wp-content dan file penting

Backup Database

Langkah selanjutnya adalah backup database. Oke, saya akan memakai backup wizard untuk membackup database website. Pastikan kamu mengetahui nama database yang akan kamu backup.
Cara Backup Database di cPanel
Pilih bagian Backup
Backup Database MySQL
Backup Database MySQL
Setelah kita mendapatkan file database.sql.gz selanjutnya adalah memidahkandatabase.sql.gz ke VPS. Ada tiga cara yang bisa kamu pakai, memakai SFTP, jika komputer linux atau mac, kamu bisa memakai fasilitas rsync, atau dengan cara mengupload ke dropbox lalu kita download melalui VPS. Kali ini saya akan mendemokan cara dengan rsync dan memakai dropbox.

Restore ke VPS

Untuk melakukan restore wordpress dari shared ke VPS, Langkahnya masih sama seperti memindahkan WordPress dari cPanel ke Plesk. Hal pertama yang harus kamu lakukan adalah menginstall fresh wordpress di server yang baru atau dalam hal ini di VPS.
Saya tidak akan menjelaskan bagaiamana caranya menginstall wordpress di VPS, kamu bisa membaca secara detail bagaimana install wordpress di VPS di tulisan-tulisan saya sebelumnya:
Pada tutorial ini, saya menginstall fresh wordpress (VPS) di /var/www/nadiar.web.id/htdocs/, maka saya akan menuju lokasi tersebut dan mendownload wp-content dari sana.
cd /var/www/nadiar.web.id/htdocs/
wget http://nadiar.web.id/wp-content.zip

Solusi 1: Upload Database ke VPS dengan Rsync

Rsync, sebenarnya bisa kamu gunakan juga untuk mengupload wp-content. Ingat, Rsync hanya bisa kamu gunakan di mesin linux atau mac. Caranya, masuk ke terminal lalu ketikan:
root bisa kamu ganti dengan user lain yang ada di VPS kamu. Berikut ini adalah contoh teriminal yang saya pakai:

Solusi 2: Upload Database ke VPS dengan Dropbox

Cara selanjutnya adalah mengupload database.sql.gz ke Dropbox, lalu kita download melalui VPS, caranya sama seperti kita mendownload wp-content dari VPS. Tetapi karena ini database, maka harus ada sedikit pengamanan.
Pertama kamu harus ekstract database.tar.gz yang ada pada komputer kamu, lalu compress .zip dengan memakai password.
Sebenarnya, kamu bisa saja mengupload langsung tanpa harus ekstract terlebih dahulu dan memberikan password. Tetapi cara tersebut saya rekomendasikan untuk database berukuran kecil dan kamu harus langsung menghapus database tersebut di dropbox.
Di Dropbox, upload database.zip ke public folder di Dropbox dan copy link download database tersebut. Jika kamu tidak tahu cara upload dan mendapatkan link, baca: Cara menggunakan dropbox.
upload database mysql ke Dropbox
Oke saya sudah mendapatkan link download saya di dropbox. Selanjutnya saya tinggal download file tersebut di VPS saya. Caranya sama seperti kita download wp-content dengan wgetsebelumnya, setelah berhasil lalu kamu tinggal ekstrak dengan perintah unzip database.zip.

Restore wp-content dan Database di VPS

Untuk merestore wp-content, caranya sangat mudah, kamu cukup perlu unzip wp-content.zip yang sudah kita download di VPS sebelumya. Jika unzip tidak bisa ditemukan, install terlebih dahulu zip dan unzip.
Untuk merestore database, ada cara mudah yang bisa kamu lakukan, yaitu memakai phpmyadmin. Caranya sama percis seperti merestore database ke prarell plesk yang sudah saya tulis sebelumnya. Hanya saja, syaratnya kamu harus sudah menginginstall phpmyadmin.
Melalui phpmyadmin, kamu menuju database sql dari wordpress fresh install. Selanjutnya drop semua tabel yang ada di sana, lalu ganti (upload) dengan database yang kita backup semelumnya.
Sekarang, saya akan menunjukan bagaimana caranya merestore database tanpa phpmyadmin, yaitu murni memakai shell. Hal pertama yang kamu lakukan adalah menghapus (drop) semua tabel yang ada pada database wordpress fresh install.
Ganti tanda dalam kurung siku dengan username dan password database kamu, tetapi jangan memakai tanda kurung siku lagi.
Sekarang kita masuk ke mysql lalu merestore database yang kita download sebelumnya. Saya asumsikan bahwa hostnya adalah localhost.
Sekarang kamu bisa melihat isi database dengan perintah show tables; Kamu akan melihat tabel wordpress lama.
Sampai di sini semua sudah berhasil kamu pindahkan, selanjutnya adalah memindahkan DNS. Untuk memindahkan DNS saya sudah pernah menulis itu sebelumnya.
**
Khusus untuk tutorial ini, saya tidak menulis begitu detail. Saya pastikan tutorial ini tidak untuk semua orang, tetapi untuk mereka yang setidaknya sudah terbiasa dengan perintah-perintah dasar linux atau MySQL. Akan tetapi, saya pastikan jika kamu ingin tetap mencoba bisa membuka link-link yang saya berikan, saya sudah mencari website yang memberikan penjelasan sangat mudah dipahami.
https://pabelog.com/cara-migrasi-hosting-dari-shared-hosting-ke-vps/