Pindah hosting sering terlihat seperti pekerjaan sederhana: unggah file, impor database, lalu arahkan domain ke server baru. Dalam praktiknya, masalah biasanya muncul karena beberapa bagian dipindahkan tidak berurutan. Website mungkin sudah tampil, tetapi email berhenti menerima pesan, SSL belum aktif, atau pengunjung masih diarahkan ke server lama.
Kuncinya bukan sekadar memindahkan file. Migrasi hosting adalah proses memindahkan beberapa layanan yang saling berkaitan: file website, database, DNS, sertifikat SSL, akun email, cron job, dan konfigurasi server. Artikel ini membahas alur yang relatif aman untuk website berbasis cPanel, CMS, atau aplikasi web sederhana.
Pahami dulu apa yang sebenarnya dipindahkan
Domain bukan website. Domain adalah alamat yang mengarahkan pengunjung ke layanan tertentu. Website berada di server hosting, sedangkan DNS atau Domain Name System bertugas menerjemahkan nama domain menjadi alamat server.
Karena itu, saat pindah hosting, setidaknya ada tiga lapisan yang perlu diperhatikan:
- Data website: file aplikasi, gambar, tema, plugin, dan aset lainnya.
- Database: konten, akun pengguna, konfigurasi, dan transaksi yang tersimpan di MySQL atau sistem database lain.
- DNS: catatan seperti A, CNAME, MX, dan TXT yang menentukan tujuan website, email, verifikasi domain, serta layanan tambahan.
Kesalahan umum terjadi ketika pemilik website hanya memikirkan lapisan pertama. File sudah dipindahkan, tetapi database belum diperbarui atau catatan MX masih menunjuk ke layanan email lama.
Langkah 1: Siapkan hosting baru tanpa mengubah DNS
Jangan langsung mengganti nameserver atau catatan A ketika server baru belum siap. Gunakan alamat sementara dari provider hosting, fitur preview, atau file hosts di komputer untuk menguji website sebelum dibuka ke publik.
Di tahap ini, siapkan:
- Versi PHP dan ekstensi yang dibutuhkan aplikasi.
- Database dan pengguna database.
- Akun FTP, SFTP, atau akses File Manager.
- Konfigurasi email jika email juga ikut dipindahkan.
- Versi SSL dan aturan redirect HTTPS.
Jika menggunakan cPanel, periksa menu seperti MultiPHP Manager, MySQL Databases, File Manager, dan SSL/TLS Status. Nama menu bisa berbeda tergantung provider, tetapi fungsi dasarnya umumnya sama.
Langkah 2: Buat cadangan yang benar-benar bisa dipulihkan
Backup bukan sekadar memiliki file ZIP di komputer. Backup yang berguna adalah backup yang bisa diuji dan dipulihkan saat terjadi masalah.
Ambil setidaknya dua jenis salinan:
- Salinan seluruh folder website, termasuk file tersembunyi seperti
.htaccess. - Dump database dalam format SQL.
Untuk website yang aktif menerima pesanan, komentar, pendaftaran, atau transaksi, catat waktu backup. Data yang masuk setelah backup dibuat mungkin belum ada di server baru. Semakin lama proses migrasi berlangsung, semakin besar kemungkinan terjadi perbedaan data antara server lama dan server baru.
Jika memungkinkan, simpan backup di lokasi berbeda dari hosting lama. Backup yang hanya berada di server yang sama tidak banyak membantu ketika akun hosting bermasalah atau terhapus.
Langkah 3: Pindahkan file dan database
Unggah file website ke direktori yang benar, biasanya public_html atau folder document root yang sudah ditentukan. Pastikan struktur folder tidak menjadi berlapis, misalnya public_html/website/website akibat proses ekstraksi yang keliru.
Setelah itu, buat database baru dan impor file SQL. Perbarui konfigurasi aplikasi agar menggunakan nama database, username, password, dan host database yang benar. Pada banyak konfigurasi PHP, pengaturan ini berada di file seperti wp-config.php, .env, atau file konfigurasi khusus aplikasi.
Periksa juga izin file. Izin yang terlalu longgar dapat meningkatkan risiko keamanan, sedangkan izin yang terlalu ketat bisa membuat aplikasi gagal menulis cache, mengunggah gambar, atau menjalankan proses tertentu.
Langkah 4: Uji website sebelum DNS diarahkan
Pengujian sebaiknya dilakukan seperti pengguna biasa, bukan hanya membuka halaman depan. Coba halaman berikut:
- Halaman utama dan beberapa artikel atau produk.
- Form login, logout, dan reset password.
- Form kontak atau formulir pendaftaran.
- Proses unggah gambar jika tersedia.
- Halaman admin.
- Fungsi pencarian.
- Checkout atau pembayaran jika website menjual sesuatu.
Periksa log error ketika halaman putih, redirect berulang, atau muncul pesan 500 Internal Server Error. Penyebabnya bisa berupa versi PHP yang tidak cocok, ekstensi yang belum aktif, aturan rewrite yang berbeda, atau kredensial database yang salah.
Jika website menggunakan cron job, antrean email, webhook, atau integrasi API, uji bagian tersebut secara terpisah. Fitur seperti ini sering tidak terlihat rusak dari halaman depan, tetapi bisa berhenti bekerja setelah pindah server.
Langkah 5: Turunkan TTL dan rencanakan perubahan DNS
TTL atau Time to Live adalah durasi sebuah catatan DNS disimpan oleh resolver sebelum diperiksa kembali. TTL yang lebih rendah dapat membantu perubahan DNS menyebar lebih cepat, meskipun waktu pembaruan tetap bergantung pada resolver dan jaringan yang digunakan.
Sebelum migrasi, turunkan TTL pada catatan yang akan diubah, terutama catatan A atau CNAME. Lakukan beberapa waktu sebelumnya, bukan beberapa menit sebelum perpindahan. Setelah server baru stabil, TTL dapat dinaikkan kembali agar permintaan DNS tidak terlalu sering dilakukan.
Perhatikan jenis catatan yang ada:
- A atau AAAA: mengarahkan domain ke alamat IPv4 atau IPv6.
- CNAME: membuat satu nama domain mengikuti nama domain lain.
- MX: menentukan server penerima email.
- TXT: sering digunakan untuk verifikasi domain dan kebijakan email seperti SPF.
Jangan mengganti nameserver secara membabi buta jika DNS dan email dikelola di tempat berbeda. Menyalin semua catatan DNS terlebih dahulu dapat mencegah layanan lain ikut terputus.
Langkah 6: Aktifkan SSL dan cek redirect HTTPS
Setelah domain mulai mengarah ke server baru, pasang SSL. Banyak panel hosting menyediakan sertifikat otomatis, tetapi pemasangan sertifikat saja belum cukup. Pastikan versi HTTP mengarah ke HTTPS, tidak ada mixed content, dan domain dengan serta tanpa www bekerja sesuai pilihan Anda.
Mixed content terjadi ketika halaman HTTPS masih memanggil gambar, stylesheet, atau skrip melalui HTTP. Dampaknya bisa berupa peringatan keamanan atau sebagian tampilan website tidak berfungsi.
Langkah 7: Pantau setelah perpindahan
Jangan langsung menutup akun hosting lama setelah website terlihat normal. Pertahankan server lama selama masa pemantauan, terutama jika website memiliki data yang terus berubah.
Periksa uptime, error log, penggunaan CPU dan RAM, pengiriman email, serta perubahan data. Minta beberapa orang dari jaringan berbeda membuka website karena cache DNS mereka mungkin belum diperbarui.
Apa artinya bagi kita?
Migrasi hosting yang aman lebih mirip operasi bertahap daripada tindakan sekali klik. File dan database harus disiapkan lebih dulu, DNS diubah setelah pengujian selesai, lalu layanan dipantau sampai yakin tidak ada bagian penting yang tertinggal.
Jika website masih sederhana, checklist di atas biasanya sudah cukup. Untuk toko online, portal anggota, atau aplikasi dengan transaksi real-time, pertimbangkan maintenance mode singkat atau lakukan sinkronisasi database terakhir sebelum DNS dipindahkan. Sedikit persiapan di awal jauh lebih murah dibanding memperbaiki website yang offline, kehilangan data, atau membuat email bisnis berhenti masuk.
– Rio Yotto @rioyotto
