Cara Migrasi Hosting dari cPanel ke aaPanel

Migrasi hosting dari cPanel ke aaPanel merupakan proses memindahkan website, database, file, dan konfigurasi yang diperlukan dari server lama ke server baru. Proses ini biasanya dilakukan ketika pemilik website ingin mengelola server secara mandiri, menggunakan sistem pengelolaan yang berbeda, atau memindahkan website ke VPS dengan konfigurasi yang lebih fleksibel.

Meskipun terdengar rumit, migrasi hosting sebenarnya dapat dilakukan secara bertahap. Kuncinya adalah memahami komponen apa saja yang perlu dipindahkan, menyiapkan server tujuan dengan benar, serta melakukan pengujian sebelum mengarahkan domain ke server baru.

Artikel ini membahas cara migrasi hosting dari cPanel ke aaPanel mulai dari persiapan, pencadangan data, pemindahan file website, migrasi database MySQL, konfigurasi domain, pemasangan SSL, hingga pengujian akhir. Panduan ini cocok untuk pemilik website, administrator hosting, maupun pengguna VPS yang ingin melakukan migrasi secara mandiri.

Apa Itu Migrasi Hosting dari cPanel ke aaPanel?

cPanel dan aaPanel merupakan dua panel pengelolaan hosting yang membantu administrator mengatur berbagai kebutuhan server melalui antarmuka berbasis web.

cPanel umumnya digunakan pada layanan shared hosting dan server yang dikelola oleh penyedia hosting. Sementara itu, aaPanel sering digunakan pada VPS atau server mandiri untuk mengelola website, database, web server, sertifikat SSL, dan beberapa layanan pendukung lainnya.

Migrasi dari cPanel ke aaPanel berarti memindahkan komponen website dari lingkungan hosting lama ke lingkungan server baru yang menggunakan aaPanel.

Namun, proses ini tidak sekadar menyalin seluruh file. Setiap panel memiliki struktur direktori, mekanisme pengelolaan akun, konfigurasi web server, dan pengaturan layanan yang berbeda. Karena itu, konfigurasi yang sebelumnya berjalan di cPanel belum tentu langsung berfungsi setelah dipindahkan ke aaPanel.

Sebagai contoh, website WordPress yang sebelumnya menggunakan PHP 8.1 dan database MySQL pada server lama mungkin perlu disesuaikan kembali dengan versi PHP, ekstensi, serta kredensial database pada server baru.

1. Persiapan Sebelum Memulai Migrasi

Sebelum memindahkan data, pastikan semua kebutuhan website sudah diidentifikasi. Persiapan yang matang dapat mengurangi risiko website mengalami error atau tidak bisa diakses setelah migrasi.

Periksa kondisi website lama

Masuk ke cPanel dan catat informasi penting mengenai website yang akan dipindahkan, antara lain:

  • Nama domain utama dan subdomain.
  • Lokasi file website.
  • Versi PHP yang digunakan.
  • Nama database dan pengguna database.
  • Versi serta jenis database, jika diketahui.
  • Pengaturan DNS domain.
  • Sertifikat SSL yang sedang digunakan.
  • Daftar cron job atau tugas terjadwal.
  • Email, mailbox, dan konfigurasi pengiriman email.
  • Penggunaan layanan tambahan seperti Redis, Node.js, atau ekstensi PHP tertentu.

Informasi tersebut berguna sebagai acuan saat melakukan konfigurasi di aaPanel.

Jika terdapat beberapa website dalam satu akun cPanel, lakukan pencatatan untuk masing-masing domain. Jangan menganggap semua website menggunakan database, versi PHP, atau struktur direktori yang sama.

Siapkan server baru

Pastikan VPS atau server tujuan sudah tersedia dan dapat diakses menggunakan SSH. aaPanel juga harus sudah terpasang dan dapat dibuka melalui alamat panel yang sesuai.

Periksa kapasitas penyimpanan, memori, jumlah CPU, serta ruang yang tersedia untuk menampung file website dan database.

Sebagai contoh, apabila seluruh file website berukuran 8 GB dan database berukuran 2 GB, siapkan ruang yang cukup untuk data tersebut, termasuk ruang tambahan bagi file sementara, log, dan proses impor database.

Periksa pula apakah server baru sudah memiliki layanan yang dibutuhkan, seperti Nginx atau Apache, PHP, dan MySQL atau MariaDB.

Buat cadangan sebelum migrasi

Jangan memulai migrasi tanpa memiliki cadangan yang bisa digunakan untuk pemulihan.

Setidaknya, simpan tiga komponen berikut:

  1. File website.
  2. Ekspor seluruh database yang digunakan.
  3. Salinan konfigurasi penting, seperti cron job dan pengaturan aplikasi.

Jika website memiliki transaksi, pendaftaran pengguna, atau perubahan konten setiap saat, pertimbangkan membuat cadangan awal terlebih dahulu, kemudian melakukan sinkronisasi terakhir menjelang perpindahan DNS.

2. Backup File Website dari cPanel

Langkah pertama adalah mengambil seluruh file website dari server lama.

Login ke cPanel, kemudian buka File Manager. Masuk ke direktori website yang ingin dipindahkan. Untuk domain utama, direktori tersebut biasanya bernama public_html, sedangkan domain tambahan dapat menggunakan direktori berbeda.

Pastikan file penting seperti .htaccess, wp-config.php, file konfigurasi aplikasi, direktori unggahan, dan file tersembunyi lainnya ikut tersimpan.

Setelah itu, pilih file website lalu gunakan fitur kompresi untuk membuat arsip ZIP. Berikan nama yang mudah dikenali, misalnya website-backup.zip.

Unduh arsip tersebut ke komputer atau pindahkan ke server tujuan menggunakan SCP atau SFTP jika akses yang diperlukan tersedia.

Untuk website berukuran besar, pemindahan langsung ant server biasanya lebih efisien daripada mengunduh seluruh data ke komputer terlebih dahulu.

Contoh perintah SCP dari komputer lokal:

scp website-backup.zip root@IP_SERVER_BARU:/www/wwwroot/

Ganti IP_SERVER_BARU dengan alamat IP server tujuan. Direktori /www/wwwroot/ merupakan contoh lokasi penyimpanan dan harus disesuaikan dengan struktur server.

Perlu diperhatikan bahwa perintah tersebut hanya menyalin arsip, bukan otomatis memasangnya sebagai website.

Jika akun cPanel tidak memiliki akses SSH, gunakan File Manager atau FTP/SFTP yang tersedia. Jangan mencoba mengakses direktori sistem server lama apabila akun hosting tidak memberikan izin tersebut.

3. Backup Database dari cPanel

Database menyimpan informasi penting yang digunakan oleh website. Pada WordPress, misalnya, database berisi artikel, halaman, komentar, pengaturan, serta data pengguna.

Untuk membuat cadangan database, buka menu phpMyAdmin dari cPanel.

Pilih database yang digunakan oleh website. Jika nama database belum diketahui, periksa file konfigurasi aplikasi. Pada WordPress, informasi tersebut biasanya terdapat di wp-config.php, pada bagian DB_NAME, DB_USER, dan DB_HOST.

Setelah database dipilih, lakukan langkah berikut:

  1. Klik menu Export.
  2. Pilih metode ekspor Quick untuk kebutuhan sederhana atau Custom jika ingin mengatur opsi lebih terperinci.
  3. Gunakan format SQL.
  4. Jalankan ekspor dan simpan file hasilnya.

Sebagai contoh, file hasil ekspor dapat diberi nama database-backup.sql.

Untuk database berukuran besar, gunakan metode ekspor yang sesuai dengan batas waktu dan kapasitas server. Jika akses SSH tersedia, mysqldump dapat menjadi alternatif yang lebih fleksibel.

Contoh perintah:

mysqldump -u USER_DATABASE -p NAMA_DATABASE > database-backup.sql

Masukkan nama pengguna dan database yang benar. Kata sandi akan diminta secara interaktif.

Jangan membagikan file SQL atau konfigurasi yang berisi kata sandi kepada pihak lain tanpa alasan yang jelas. File tersebut dapat mengandung data pengguna dan informasi sensitif.

4. Menambahkan Website di aaPanel

Setelah file dan database berhasil dicadangkan, siapkan website pada server baru.

Login ke aaPanel, kemudian buka menu Website. Pilih opsi untuk menambahkan website baru.

Isi nama domain yang akan dipindahkan. Tentukan direktori website, versi PHP, serta konfigurasi database jika diperlukan.

Contoh struktur direktori:

/www/wwwroot/contohdomain.com/
├── index.php
├── wp-config.php
├── wp-content/
├── wp-admin/
└── wp-includes/

Struktur di atas merupakan contoh website WordPress. Website berbasis Laravel, aplikasi PHP khusus, atau framework lainnya dapat memiliki susunan direktori yang berbeda.

Untuk Laravel, misalnya, direktori publik yang harus menjadi document root biasanya adalah folder public, bukan direktori utama proyek.

Pilih versi PHP yang kompatibel dengan aplikasi. Jangan langsung menggunakan versi PHP terbaru tanpa memeriksa kebutuhan aplikasi dan ekstensi yang diperlukan.

Apabila server baru belum memiliki layanan web server atau PHP yang sesuai, pasang komponen tersebut melalui pengelolaan perangkat lunak aaPanel sebelum melanjutkan.

5. Memindahkan dan Mengekstrak File Website

Setelah direktori website tersedia, pindahkan arsip backup ke direktori tersebut.

Jika file sudah berada di server tujuan, ekstrak arsip menggunakan File Manager aaPanel atau terminal SSH.

Contoh perintah:

cd /www/wwwroot/contohdomain.com
unzip /root/website-backup.zip

Lokasi arsip dan direktori tujuan pada contoh tersebut harus disesuaikan dengan kondisi server.

Pastikan hasil ekstraksi tidak menghasilkan direktori bertingkat yang tidak diperlukan. Misalnya, jika seluruh file website berada di dalam folder public_html, tetapi document root aaPanel mengarah langsung ke direktori domain, file website perlu dipindahkan ke lokasi yang tepat.

Periksa pula file tersembunyi. File .htaccess sering berisi aturan URL, pengalihan, atau konfigurasi keamanan yang dibutuhkan oleh aplikasi.

Namun, aturan .htaccess tidak selalu berlaku secara langsung pada Nginx. Jika server tujuan menggunakan Nginx, aturan yang relevan mungkin harus diterjemahkan menjadi konfigurasi Nginx yang sesuai.

Periksa izin file dan direktori

Website harus dapat membaca file yang diperlukan, sementara direktori yang digunakan untuk mengunggah file atau menyimpan cache harus dapat ditulis oleh proses aplikasi.

Hindari memberikan izin 777 ke seluruh direktori website hanya untuk mengatasi masalah permission.

Gunakan kepemilikan file dan izin akses yang sesuai dengan konfigurasi aaPanel serta pengguna layanan web server. Jika tidak yakin, periksa dokumentasi atau konfigurasi pengguna layanan pada server tujuan sebelum mengubah kepemilikan file secara menyeluruh.

6. Membuat Database Baru di aaPanel

Tahap berikutnya adalah menyiapkan database pada server baru.

Buka menu Database di aaPanel. Buat database baru, lalu tentukan nama database, pengguna database, dan kata sandinya.

Gunakan kredensial yang aman dan pastikan aplikasi nantinya menggunakan informasi yang sama.

Contohnya, Anda dapat membuat database dengan nama website_db, pengguna website_user, serta kata sandi yang unik.

Nama tersebut hanya contoh dan tidak harus sama dengan database pada cPanel. Jika nama database berubah, konfigurasi aplikasi juga harus diperbarui.

Periksa pula hak akses pengguna database. Aplikasi harus memperoleh hak yang diperlukan terhadap database yang digunakan, tetapi jangan memberikan akses yang lebih luas daripada kebutuhan sebenarnya.

7. Import Database ke aaPanel

Setelah database baru dibuat, impor file SQL hasil backup.

Pada aaPanel, buka pengelolaan database yang sesuai. Jika tersedia akses phpMyAdmin, buka database tujuan dan pilih menu Import. Pilih file database-backup.sql, lalu jalankan proses impor.

Untuk database yang besar, impor melalui SSH dapat menjadi pilihan yang lebih sesuai.

Contoh perintah:

mysql -u website_user -p website_db < database-backup.sql

Masukkan kata sandi pengguna database ketika diminta.

Jika impor gagal, periksa pesan error sebelum mencoba kembali. Beberapa penyebab yang umum adalah ukuran file terlalu besar, waktu eksekusi habis, karakter atau collation yang tidak didukung, kapasitas disk tidak mencukupi, serta ketidakcocokan versi database.

Setelah impor selesai, periksa apakah tabel-tabel database sudah tersedia dan jumlahnya masuk akal dibandingkan dengan database sumber.

Jangan menghapus database lama sebelum website baru berhasil diuji dan cadangan dipastikan dapat digunakan.

8. Menyesuaikan Konfigurasi Website

Setelah file dan database dipindahkan, sesuaikan konfigurasi aplikasi agar terhubung ke database baru.

Pada WordPress, buka file wp-config.php dan periksa konfigurasi berikut:

define('DB_NAME', 'website_db');
define('DB_USER', 'website_user');
define('DB_PASSWORD', 'GANTI_DENGAN_PASSWORD_DATABASE');
define('DB_HOST', 'localhost');

Contoh tersebut hanya berlaku jika database dapat diakses melalui host lokal dengan konfigurasi yang sesuai. Jika database berada di server terpisah atau menggunakan port tertentu, nilai DB_HOST harus disesuaikan.

Jangan menyalin kata sandi contoh tersebut secara harfiah. Gunakan kredensial database yang telah dibuat pada aaPanel.

Untuk aplikasi selain WordPress, periksa file konfigurasi yang digunakan oleh framework atau aplikasi tersebut. Laravel, misalnya, umumnya menggunakan file .env untuk menyimpan konfigurasi koneksi database.

Periksa pula pengaturan URL aplikasi, direktori penyimpanan, kunci enkripsi, dan variabel lingkungan lainnya. Sebagian aplikasi membutuhkan proses tambahan setelah migrasi, seperti menjalankan migrasi database yang memang diperlukan, membersihkan cache konfigurasi, atau membangun ulang cache aplikasi.

Jangan menjalankan perintah yang menghapus atau mengubah struktur database secara sembarangan pada tahap ini.

9. Mengatur DNS Domain ke Server Baru

Sebelum mengubah DNS, lakukan pengujian website melalui alamat IP atau metode pengujian lokal. Jika website belum berfungsi, jangan langsung mengarahkan domain produksi ke server baru.

Setelah pengujian awal berhasil, buka pengelolaan DNS pada penyedia domain atau layanan DNS yang digunakan.

Periksa record berikut:

  • A record: mengarahkan domain ke alamat IPv4 server baru.
  • AAAA record: mengarahkan domain ke alamat IPv6 jika server benar-benar sudah mendukungnya.
  • CNAME record: biasanya digunakan untuk mengarahkan subdomain tertentu ke nama host lain.
  • MX record: menentukan tujuan penerimaan email.
  • TXT record: dapat digunakan untuk SPF, DKIM, verifikasi domain, dan kebijakan email lainnya.

Ubah record A untuk domain utama dan subdomain yang memang akan dipindahkan. Jangan menghapus record email tanpa memahami fungsinya.

Jika ingin mengurangi waktu perpindahan, TTL record DNS dapat diturunkan beberapa waktu sebelum migrasi, sesuai dengan layanan DNS yang digunakan. Perubahan TTL tidak menjamin seluruh resolver langsung memperbarui cache, tetapi dapat membantu mengurangi durasi penyimpanan record lama.

Perlu diingat bahwa perubahan DNS tidak selalu langsung berlaku di seluruh jaringan. Selama masa propagasi, sebagian pengunjung mungkin masih diarahkan ke server lama.

10. Memasang SSL dan Mengaktifkan HTTPS

Setelah domain mengarah ke server baru dan domain dapat dijangkau dari internet, pasang sertifikat SSL.

Di aaPanel, buka pengaturan website dan cari menu SSL. Jika domain memenuhi persyaratan validasi, Anda dapat menggunakan Let’s Encrypt atau metode sertifikat lain yang didukung.

Sebelum memasang sertifikat, pastikan domain mengarah ke server yang benar dan port yang dibutuhkan untuk validasi dapat diakses. Jika menggunakan validasi DNS, ikuti persyaratan penyedia sertifikat.

Setelah sertifikat berhasil dipasang, aktifkan HTTPS dan uji akses menggunakan https://.

Periksa apakah seluruh sumber daya website, seperti gambar, stylesheet, dan JavaScript, juga dimuat melalui HTTPS. Jika masih terdapat mixed content, perbaiki URL sumber daya atau konfigurasi aplikasi yang menyebabkannya.

Jangan mengaktifkan pengalihan HTTPS secara membabi buta sebelum sertifikat valid dan konfigurasi web server benar. Pengalihan yang salah dapat menyebabkan pengunjung mengalami error atau pengulangan redirect.

11. Migrasi Email, Cron Job, dan Konfigurasi Tambahan

Salah satu hal yang sering terlupakan saat migrasi hosting adalah layanan tambahan di luar file website dan database.

Email hosting

Memindahkan website tidak otomatis memindahkan seluruh email dari cPanel ke aaPanel. Jika akun lama menggunakan layanan email cPanel, Anda perlu menentukan apakah email akan dipindahkan ke layanan email terpisah atau disiapkan pada server yang mendukungnya.

Periksa mailbox, folder email, MX record, SPF, DKIM, dan DMARC. Jika menggunakan layanan email eksternal, pertahankan record yang diperlukan oleh penyedia tersebut.

Sebelum mengganti MX record, pastikan layanan email tujuan sudah siap menerima pesan. Perpindahan yang dilakukan tanpa persiapan dapat menyebabkan email tidak terkirim atau tidak diterima dengan benar.

Cron job

Jika website menggunakan tugas terjadwal, catat seluruh perintah cron dari cPanel dan buat kembali pada lingkungan server baru.

Periksa path PHP, direktori kerja, variabel lingkungan, serta izin eksekusi. Perintah yang sebelumnya berjalan pada shared hosting belum tentu dapat digunakan tanpa perubahan di VPS.

Integrasi eksternal

Periksa juga layanan seperti SMTP, API pihak ketiga, penyimpanan objek, webhook, sistem pembayaran, dan layanan caching.

Beberapa integrasi menggunakan alamat IP server lama sebagai daftar izin. Jika demikian, alamat IP baru perlu didaftarkan pada layanan terkait.

12. Menguji Website Sebelum Migrasi Dinyatakan Selesai

Jangan hanya menguji apakah halaman utama dapat dibuka. Website bisa terlihat normal di halaman depan, tetapi mengalami masalah ketika pengguna masuk ke dashboard, mengirim formulir, atau melakukan transaksi.

Lakukan pemeriksaan secara sistematis:

  1. Buka halaman utama dan beberapa halaman penting.
  2. Periksa gambar, CSS, JavaScript, dan file unduhan.
  3. Uji login dan logout pengguna.
  4. Uji formulir, pencarian, dan fitur unggah file.
  5. Periksa koneksi database.
  6. Uji halaman admin.
  7. Periksa cron job dan integrasi eksternal.
  8. Periksa sertifikat SSL dan pengalihan HTTP ke HTTPS.
  9. Tinjau log error PHP serta log web server.
  10. Uji akses dari jaringan atau perangkat yang berbeda.

Jika menggunakan WordPress, periksa permalink dan lakukan penyimpanan ulang pengaturan permalink apabila diperlukan. Jika terdapat error 500, cari penyebabnya melalui log sebelum mengubah konfigurasi secara acak.

Menguji domain sebelum DNS diubah

Anda dapat menguji website dengan mengubah file hosts pada komputer sendiri agar domain sementara diarahkan ke IP server baru.

Metode ini memungkinkan pengujian menggunakan nama domain sebenarnya tanpa mengubah DNS publik. Pastikan perubahan tersebut hanya dilakukan pada perangkat pengujian dan dikembalikan setelah selesai.

Cara lain adalah menggunakan lingkungan staging atau subdomain pengujian, selama konfigurasi aplikasi dan aksesnya sudah disiapkan dengan benar.

13. Melakukan Sinkronisasi Terakhir dan Menyelesaikan Migrasi

Untuk website yang jarang berubah, backup awal mungkin sudah cukup sebagai sumber data migrasi. Namun, website yang aktif membutuhkan perhatian lebih karena data dapat berubah selama proses pemindahan.

Misalnya, website menerima pesanan atau komentar baru ketika proses migrasi berlangsung. Jika database hanya disalin pada awal migrasi, data yang masuk setelah pencadangan dapat tidak ikut berpindah.

Untuk mengurangi risiko tersebut, lakukan sinkronisasi akhir ketika aktivitas penulisan data sudah dihentikan atau dikendalikan. Pada website transaksi, gunakan mekanisme pemeliharaan atau strategi replikasi yang sesuai dengan aplikasi dan database.

Setelah data terbaru dipindahkan, lakukan pengujian kembali dan pastikan tidak ada transaksi atau konten yang hilang.

Pantau website baru selama beberapa waktu setelah DNS dialihkan. Periksa log, ketersediaan layanan, performa, dan laporan pengguna.

Jangan langsung menghapus akun hosting lama. Pertahankan akses dan cadangan selama periode verifikasi yang memadai agar Anda masih memiliki opsi pemulihan apabila ditemukan masalah.

14. Masalah yang Sering Terjadi Saat Migrasi cPanel ke aaPanel

Berikut beberapa masalah yang umum ditemui beserta langkah pemeriksaan awalnya.

Website menampilkan error 500.

Periksa log error web server dan PHP. Penyebabnya dapat berupa konfigurasi yang tidak kompatibel, ekstensi PHP yang belum tersedia, aturan rewrite yang salah, atau masalah izin file.

Website tidak dapat terhubung ke database.

Pastikan nama database, pengguna, kata sandi, host, dan hak akses sudah benar. Jangan menganggap nama pengguna atau host database pada server lama selalu sama dengan server baru.

Halaman utama bisa dibuka, tetapi halaman lain menghasilkan error 404.

Periksa aturan rewrite dan konfigurasi permalink. Website yang sebelumnya menggunakan Apache dengan .htaccess mungkin membutuhkan aturan tambahan jika server baru menggunakan Nginx.

Website menampilkan peringatan SSL.

Pastikan sertifikat mencakup nama domain yang digunakan, masa berlakunya valid, dan rantai sertifikat terpasang dengan benar. Periksa pula apakah browser mengakses domain yang sesuai dengan sertifikat.

Email tidak berfungsi setelah migrasi.

Periksa MX record, SPF, DKIM, DMARC, dan layanan penerima email. Migrasi file website saja tidak menjamin layanan email ikut berpindah.

Sebagian pengunjung masih membuka server lama.

Periksa record DNS dan TTL, serta pertimbangkan cache resolver yang masih menyimpan alamat IP sebelumnya. Jangan mematikan server lama sebelum perpindahan dapat dipastikan selesai.

Kesimpulan

Cara migrasi hosting dari cPanel ke aaPanel dapat dilakukan dengan aman jika setiap tahap dikerjakan secara berurutan. Mulai dari memeriksa kebutuhan website, membuat backup file dan database, menyiapkan server baru, memindahkan data, menyesuaikan konfigurasi aplikasi, hingga mengatur DNS dan SSL.

Hal terpenting bukan hanya memastikan seluruh file berhasil disalin, melainkan memastikan website berfungsi dengan benar di lingkungan baru. Database, versi PHP, izin file, aturan rewrite, email, dan cron job perlu diperiksa karena semuanya dapat memengaruhi operasional website.

Lakukan pengujian sebelum mengubah DNS, siapkan strategi pemulihan, dan pertahankan cadangan server lama sampai proses migrasi benar-benar selesai. Dengan perencanaan yang baik, perpindahan dari cPanel ke aaPanel dapat dilakukan dengan risiko yang lebih terkendali dan tanpa kehilangan data yang tidak diinginkan.

Leave a Comment