Anda ingin memindahkan website yang saat ini berada di shared hosting ke VPS demi kontrol penuh dan performa lebih baik, namun khawatir kehilangan data atau downtime? Artikel ini memberikan prosedur teknis terperinci sehingga migrasi dapat dilakukan dengan aman dan mulus.
Langkah Persiapan Sebelum Migrasi
- Pastikan Anda memiliki akses SSH ke kedua server.
- Siapkan ruang penyimpanan di VPS minimal 2× ukuran data website.
- Catat versi PHP, MySQL, dan modul penting yang dipakai di shared hosting.
Langkah 1: Backup File Website
- Login ke shared hosting via SSH.
ssh [email protected] - Buat arsip tar.gz dari direktori public_html (atau folder website).
tar -czvf website_files.tar.gz /home/user/public_html - Verifikasi ukuran file dan simpan di lokasi yang mudah diakses.
Langkah 2: Backup Database
- Identifikasi nama database, user, dan password pada file konfigurasi (misal
wp-config.phpatau.env). - Ekspor database menggunakan
mysqldump.mysqldump -u db_user -p'password' db_name > database_backup.sql - Compress hasil dump untuk mengurangi waktu transfer.
gzip database_backup.sql
Langkah 3: Siapkan VPS (Instalasi LAMP/LEMP)
- Login ke VPS via SSH.
ssh root@vps-ip-address - Update repositori dan instal paket utama (contoh menggunakan Ubuntu 22.04).
apt update && apt upgrade -y apt install nginx php-fpm php-mysql mysql-server unzip -y - Konfigurasi firewall (UFW) untuk mengizinkan HTTP, HTTPS, dan SSH.
ufw allow OpenSSH ufw allow "Nginx Full" ufw enable - Buat direktori web root dan set permission.
mkdir -p /var/www/website.com/html chown -R www-data:www-data /var/www/website.com/html chmod -R 755 /var/www/website.com
Langkah 4: Transfer Backup ke VPS
- Gunakan
scpataursyncuntuk memindahkan arsip.scp website_files.tar.gz user@vps-ip-address:/tmp/ scp database_backup.sql.gz user@vps-ip-address:/tmp/ - Ekstrak file website di lokasi tujuan.
tar -xzvf /tmp/website_files.tar.gz -C /var/www/website.com/html --strip-components=1
Langkah 5: Restore Database di VPS
- Buat database dan user baru di MySQL.
mysql -u root -p CREATE DATABASE db_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'db_user'@'localhost' IDENTIFIED BY 'new_password'; GRANT ALL PRIVILEGES ON db_name.* TO 'db_user'@'localhost'; FLUSH PRIVILEGES; exit; - Decompress dan import dump.
gunzip /tmp/database_backup.sql.gz mysql -u db_user -p'new_password' db_name < /tmp/database_backup.sql
Langkah 6: Sesuaikan File Konfigurasi
- Jika menggunakan WordPress, edit
wp-config.php:define('DB_NAME', 'db_name'); define('DB_USER', 'db_user'); define('DB_PASSWORD', 'new_password'); define('DB_HOST', 'localhost'); // Jika menggunakan Nginx, pastikan rewrite rules di .htaccess tidak dipakai. - Jika aplikasi Laravel, ubah
.env:DB_DATABASE=db_name DB_USERNAME=db_user DB_PASSWORD=new_password APP_URL=https://website.com
Langkah 7: Konfigurasi Web Server (Nginx)
server {
listen 80;
server_name website.com www.website.com;
root /var/www/website.com/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
Reload Nginx:
systemctl reload nginx
Langkah 8: Uji Koneksi dan Perbaiki Permalink
- Akses
http://vps-ip-addressatau gunakan filehostsuntuk testing domain sebelum DNS dipindah. - Jika menggunakan WordPress, masuk ke dashboard > Settings > Permalinks dan klik “Save Changes” untuk memperbarui .htaccess atau rewrite rules.
Langkah 9: Update DNS ke VPS
- Masuk ke registrar domain, ubah A record domain.com dan www.domain.com mengarah ke IP VPS.
- TTL dapat dipersingkat menjadi 300 detik selama masa transisi untuk mengurangi waktu propagasi.
Langkah 10: Optimasi Keamanan dan Performa
- Pasang SSL dengan
certbot:apt install certbot python3-certbot-nginx -y certbot --nginx -d website.com -d www.website.com - Aktifkan firewall rate limiting pada Nginx untuk melindungi dari brute‑force.
limit_req_zone $binary_remote_addr zone=mylimit:10m rate=10r/s; - Instal dan konfigurasi caching (misal
fastcgi_cacheatau plugin WP Super Cache).
"Migrasi ke VPS memang menantang, tetapi dengan backup terstruktur, transfer via rsync, dan pengecekan konfigurasi secara detail, downtime dapat diminimalisir hingga hampir nol. Tim AN Media siap membantu bila Anda memerlukan dukungan lanjutan." – Ahmad Fauzi, Lead Engineer AN Media
Kesimpulan & Call to Action
Dengan mengikuti 10 langkah di atas, website Anda akan berpindah dari shared hosting ke VPS secara aman, data terjaga, dan performa meningkat. Jika Anda memerlukan layanan migrasi profesional, monitoring pasca‑migrasi, atau pengembangan fitur khusus, hubungi AN Media – Software House & IT Specialist di Jember melalui [email protected] atau telepon +62 331 1234567. Kami siap menjadikan infrastruktur digital Anda lebih handal.