Cara Pindah Hosting Antar VPS Dengan ‘rsync’ (Webuzo, VestaCP, non Panel)

Pertanyaan:

VPS saya yang sekarang sering down, harga nya pun mahal banget. Saya mau pindah VPS aja ke provider yang lebih bagus. Tapi saya ngga tau VPS yang bagus itu apa, lalu ngga ngerti cara pindah antar VPS yang paling mudah seperti apa. Bisa dibantu?

Jawaban:

Tutorial yang akan saya sampaikan di bawah ini berlaku untuk VPS dengan panel apa pun atau tanpa panel. Mau yang tanpa panel, mau dengan panel Webuzo, VestaCP, cPanel, dll.. akan berhasil dipindah. Selama kamu teliti.

Untuk VPS yang bagus itu tergantung penilaian masing-masing. Namun VPS favorit saya adalah Vultr. Alasannya pernah saya bahas di postingan sebelumnya.

Lanjut ya…

Saya akan ibaratkan VPS lama dengan sebutan VPS A dan VPS baru dengan sebutan VPS B.

Persiapan

Sebelumnya, kita harus catat dulu rincian VPS yang kita punya, semuanya kita catat di Notepad agar lebih mudah.

Saya anggap web kamu yang akan dipindah berbasis wordpress. Rincian database di wordpress ada pada file wp-config.php.

Silahkan buka file itu lalu perhatikan rincian baris mengenai database, yang seperti ini:


// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'db_domain');

/** MySQL database username */
define('DB_USER', 'u_domain);

/** MySQL database password */
define('DB_PASSWORD', 'domain1234');

/** MySQL hostname */
define('DB_HOST', 'localhost');

Selain itu saya sarankan kamu untuk setting VPS B sama persis dengan VPS A. Misal di VPS A, kamu make Webuzo, di VPS B juga sama, dll.

Baik, mari kita lanjut.

Ini catatan saya di Notepad, catatan di bawah ini fiktif, namun bisa mewakili.

VPS A (Lama)

  1. IP Address: 11.22.33.44
  2. Username VPS A: root
  3. Password VPS A: abcdefg
  4. Lokasi public_html: /var/www/html/example.com
  5. MySQL username: u_domain
  6. MySQL database: db_domain
  7. Password MySQL: domain1234

VPS B (Baru)

  1. IP Address: 55.66.77.88
  2. Username VPS B: root
  3. Password VPS B: abcdefg
  4. Lokasi public_html: /var/www/html/example.com
  5. MySQL username: u_domain
  6. MySQL database: db_domain
  7. Password MySQL: domain1234

Lihat catatan di atas! Yang berbeda hanya IP address saja. Mengapa? Karena saya atur VPS B agar sama persis dengan VPS A, mulai dari password SSH, lokasi public_html, dan juga rincian mysql (username, password, database).

Tujuannya agar tidak membuat saya bingung.

Saran saya, kamu harus melakukan hal yang sama. Setup VPS B sama persis dengan VPS A. Kalo pake Webuzo di VPS A, kamu pun harus menginstall dan menyetingnya di VPS B, mulai dari menambahkan domain, database, samakan setiap detailnya dengan benar.

Setelah kamu catat semua rincian di atas, maka kita membutuhkan suatu software untuk perpindahan ini, namanya adalah rsync.

Rsync Si Software Ajaib

rsync adalah software yang mampu men-sinkron-kan 2 buah direktori. Bisa di satu VPS, bisa antar VPS.

Kalau kamu belum punya rsync di VPS kamu, tinggal install aja. Install di kedua VPS (Lama & Baru).

Perintahnya kalau di Debian / Ubuntu adalah

apt-get install rsync

Atau kalo kamu pake distro CentOS, maka perintahnya adalah

yum install rsync

Setelah terinstall, kita akan mem-backup MySQL database & file.

Backup MySQL Database & File Web

1. Backup Database

Setelah dipastikan kita sudah mendapat rincian database, kita TIDAK akan menggunakan PhpMyAdmin untuk mem-backup database karena penggunaan PhpMyAdmin cukup lama: harus login dulu, masukan username, password, pilih database, export, dll.

Lama bukan?

Jadi kita akan mem-backup nya dari melalui SSH client dengan 1 perintah saja.

Coba kamu lihat kembali rinician situs kamu. Punya saya adalah

1. Lokasi public_html: /var/www/html/example.com
2. MySQL username: u_domain
3. MySQL database: db_domain
4. Password MySQL: domain1234

PENTING!

Lihat nomor 1! Lokasi public_html saya ada di /var/www/html/example.com

Itu karena saya ngga pake panel apa pun

Kalo pake Webuzo atau mungkin VestaCP, maka:

  1. Kalo kamu menggunakan Webuzo, maka lokasi nya ada di /home/hardinal/public_html/example.com dengan hardinal adalah username Webuzo.
  2. Kalo kamu pake VestaCP, maka lokasinya ada di /home/hardinal/web/businesslegions.com/public_html dengan hardinal adalah username VestaCP.

Langkah pertama, login dulu ke VPS A.

Lalu masuk dulu ke direktori public_html situs kamu berada. Masukan perintah berikut dengan diikuti tombol Enter di keyboard laptop / komputer kamu.

cd /var/www/html/example.com

Selanjutnya backup database situs kamu, perintah backup adalah (sesuaikan dengan punya kamu!):

mysqldump -u u_domain -p db_domain > db-situs-example.sql

Kamu akan diminta password mysql, punya saya password-nya domain1234. Masukan password + Enter, selesai.

Perintah backup di atas, akan menghasilkan file bernama db-situs-example.sql. File ini disimpan di direktori /var/www/html/example.com.

Setelah berhasil nge-backup, maka kita akan transfer isi public_html web kita menggunakan rsync.

Ada 2 pilihan pake rsync ini, tergantung kita mau yang mana. Pilihannya adalah:

  1. Login ke VPS A, kirim isi public_html dari VPS A ke VPS B
  2. Login ke VPS B, tarik isi public_html dari VPS A ke VPS B

Hasilnya sama persis tidak ada perbedaan, yang berbeda hanya pada perintahnya aja.

2. Cara Menggunakan rsync

Ini adalah langkah yang perlu kamu perhatikan dan dalami baik-baik, jika salah maka file akan gagal dipindahkan. Kita coba dulu dengan pilihan 1 (Login VPS A, kirim file dari A ke B).

Berhubung kita sedang login di VPS A, maka kita bisa langsung mengirim file dan folder situs kita.

Penulisan perintah rsync adalah sbb:

rsync -av /lokasi/direktori/situs/yang/kamu/simpan/ username@IP_VPS_B:/lokasi/direktori/situs/akan/disimpan/

Sekarang tinggal kamu sesuaikan aja dengan rincian yang kamu punya, kalau saya menjadi seperti ini.

rsync -av /var/www/html/example.com/ root@55.66.77.88:/var/www/html/example.com/

Saya bagi-bagi perintah di atas menjadi 4 bagian A, B, C, D.

A: rsync -av

B: /var/www/html/example.com/

C: root@55.66.77.88:

D: /var/www/html/example.com/

Kalo diterjemahkan ke bahasa manusia, arti perintah rsync di atas seperti ini:

A: Hai rsync, tolong kamu pindahin semua isi file dan folder yang ada di dalam folder

B: /var/www/html/example.com/.

C: Tolong kamu pindahin isi tersebut ke VPS B. VPS B itu lokasinya ada di jalan 55.66.77.88. Kalo udah nyampe VPS B, kamu ngga bisa masuk gitu aja, perlu username sama password, nih usernamenya: root dan ini passwordnya: abcdefg.

D: Jangan lupa ya, isi folder itu harus kamu simpen di tempat yang sama, yaitu di /var/www/html/example.com/. Kalo ngga ada tempat seperti itu, bikin dulu aja. Ga mau tau pokok nya harus sama persis!

Kalo disambungin, menjadi:

Hai rsync, tolong kamu pindahin semua isi file dan folder yang ada di dalam folder /var/www/html/example.com/. Tolong kamu pindahin isi tersebut ke VPS B. VPS B itu lokasinya ada di jalan 55.66.77.88. Kalo udah nyampe VPS B, kamu ngga bisa masuk gitu aja, perlu username sama password, nih usernamenya: root dan ini passwordnya: abcdefg. Jangan lupa ya, isi folder itu harus kamu simpen di tempat yang sama, yaitu di /var/www/html/example.com/. Kalo ngga ada tempat seperti itu, bikin dulu aja. Ga mau tau pokok nya harus sama persis!

Jika ini pertama kali kamu menjalankan perintah di atas, akan ada pertanyaan yes/no. Jawab dengan yes, tekan Enter dan kamu akan dimintai password VPS B.

Perintah di atas akan mengirim semua isi yang ada di folder public_html situs kamu ke VPS B (VPS baru).

Tunggu sampe proses selesai. Kalau ukuran web nya kecil, ngga akan sampe 10 menit, kecuali web kamu berisi ribuan / puluhan ribu gambar, bisa sampe beberapa jam.

WASPADA!

Lihat perintah rsync di atas, di sana tertulis bahwa lokasi direktori public_html adalah di /var/www/html/example.com/ padahal catatan di Notepad saya ada di /var/www/html/example.com.

Lihat ada tanda garis miring “/” di belakang example.com menjadi begini example.com/.

Hal itu diperlukan, karena kita bukan memindahkan folder example.com dan isinya, tapi kita hanya memindahkan isi dari folder example.com tanpa perlu memindahkan folder example.com itu sendiri.

Jadi nanti hasil kiriman kita, murni isi situsnya aja, misalnya kalo web wordpress kan pasti ada file index.php. Maka si index.php ini akan berada di lokasi /var/www/html/example.com/index.php.

Kalo kamu salah masukin perintah (tanpa nyertain garis miring) maka yang terjadi, lokasi index.php akan berada di sini: /var/www/html/example.com/example.com/index.php (jadi dobel)

Jadi jangan salah ya!

Langkah di atas adalah cara pertama saat mindahin web menggunakan rsync.

Cara kedua (narik data dari VPS A ke B) tidak berbeda jauh.

Setelah kamu login ke VPS B dan berencana menarik data dari VPS A, maka tinggal jalankan perintah rsync berikut:

rsync -av username@IP_VPS_A:/lokasi/direktori/situs/yang/kamu/simpan/ /lokasi/direktori/situs/akan/disimpan/

Tidak ada perbedaan signifikan, dan tidak perlu saya jelaskan, kamu juga pasti tau dimana bedanya. Kalau kamu bingung, mending ikuti yang ada di tutorial ini aja.

Kita akan melangkah ke bagian import database.

3. Import Database

Setelah proses rsync selesai dilakukan, saatnya kita masuk / login ke VPS B untuk mengimport database.

Silahkan login dulu ke VPS B.

Kalau sudah login, masuk ke direktori public_html situs kamu berada. Karena di awal saya samakan lokasinya agar tidak bingung, maka tinggal masuk aja, kalo saya masuk ke /var/www/html/example.com.

cd /var/www/html/example.com

Jalankan perintah import berikut:

mysql -u u_domain -p db_domain < db-situs-example.sql

Tekan Enter, dan kamu akan dimintain password mysql (lihat di wp-config.php). Kalo punya saya password-nya domain1234. Tekan Enter sekali lagi, tunggu beberapa detik, selesai.

Jadi kalo export database perintahnya mysqldump dan ada tanda >, sedangkan kalo import perintahnya mysql dan ada tanda <.

Selesai sudah proses perpindahan hosting web antar VPS.

Kamu harus pastikan bahwa:

  1. Semua langkah kamu ikuti dengan benar, tidak ada error.
  2. Service di VPS B sudah berjalan (Web server, BIND, MySQL, dll)

Maka tinggal arahkan aja NS nya ke VPS baru. Kalo pake NS yang sama berarti ganti IP nya di registrar domain kamu.

Sip sudah selesai.

Kalo ada yang ngga ngerti / error, silahkan komentar.

18 thoughts on “Cara Pindah Hosting Antar VPS Dengan ‘rsync’ (Webuzo, VestaCP, non Panel)

  1. Mas, pas restore database muncul err
    “ERROR 1045 (28000): Access denied for user ‘wordpress’@’localhost’ (using passwo rd: YES)

    • ERROR 1045 (28000): Access denied for user ‘prolite’@’localhost’ (using password: YES)
      —–

      error juga mas ,tolong pencerahannya thanks

      • salah di password nya sepertinya.
        Kalo mentok pake user root aja, jadi

        mysql -u'root -p'password' 'database' < db.sql

  2. Kalo perbedaan resync dan scp apa ya om? Saya biasa pake scp kalo transfer host to host, dan misal prosesnya terhenti di tengah jalan, apakah bisa di resume?

  3. Ini Khan hanya pindahin file WordPress aja Bro… kalau misalnya sekaligus pindahin dengan setting nginx / *.conf / PHP, pokoknya semualah dari VPS A ke VPS B, (lebih mirip cloning Gitu) Bisa nggak, soalnya VPS saya ada 3 Blog dengan setting berbeda, satu pakai ssl laiinya tidak, (mohon pencerahan Bro…)

  4. halo mas saya coba syntax untuk import database.
    sebelumnya saya export databse saya, terus saya upload ke /var/www/htm/situsku kemudian saya jalankan syntax nya dan hasilnya ini mas ERROR 1062 (23000) at line 43: Duplicate entry ’81’ for key ‘PRIMARY’

    biar bisa ke import dengan baik gimana y mas?

    • Itu kendalanya dari File SQL pas mas export, jadi bukan proses import nya.
      Silahkan diulang dengan menceklis meno Insert Ignore di phpMyAdminnya
      Atau kalo pake command, rumus export nya jadi

      mysqldump --insert-ignore -u'username' -p'password' 'database' > db.sql

  5. halo mas
    kalau pakai easyengine ubuntu kan tidak ada akses rootnya, jadi akses server pertama kali dikasih username: customer, usernamenya bukan “root”.

    bagaimana cara penulisan perintah rsync-nya mas?

  6. Kalau boleh jujur mas mau kasih review hardinal.com, artikelnya mantep newbie kayak saya jadi bisa main vps. mohon untuk sering update lagi kedepannya, biar banyak yang ambil manfaat ilmunya hardinal tambah berkah rejeki tambah lancar. kalau boleh usul buat grup fb ttng vps dedi hosting dll dong mas. oya mau kasih masukan juga, awalnya saya kira inet saya yang lemot pas akses hardinal tapi pas akses lainnya lancar jaya, jadi kenapa lambat ya hardinal.com? saya pakai speedy 1,5 Mb

  7. Mas, saya ingin pindah server sesama VPS Vutr gimana ya? Jadi saat ini sedang menggunakan VPS teman, terus mau pindah sendiri pakai VPS saya. Mohon bantuannya.

    Nambah bagaimana cara pindah server dari shared hosting ke VPS Vultr?
    Mohon berkenan membalas. Terimakasih

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.