Dalam artikel ini, kami akan membahas langkah-langkah praktis dan terperinci untuk membantu Anda melakukan Cara migrasi WordPress dari VPS ke VPS lain. Baik Anda seorang pemula maupun pengguna yang sudah berpengalaman, panduan ini akan memastikan Anda dapat melakukan migrasi dengan lancar dan aman, sehingga situs Anda tetap berjalan optimal di server baru.
Langkah pertama dalam migrasi WordPress adalah memastikan VPS baru Anda sudah siap digunakan. Pastikan VPS tersebut sudah dikonfigurasi dengan benar, termasuk instalasi web server (Nginx atau Apache), database server (MySQL), dan PHP yang kompatibel dengan WordPress.
Spesifikasi Minimal VPS WordPress
Baca Juga : Cara Install WordPress di Ubuntu 24.04 dengan Nginx, Mariadb, PHP8.3 (LEMP)
Proses migrasi WordPress ke VPS baru melibatkan beberapa langkah utama yang harus diikuti dengan hati-hati:
Saatnya memindahkan WordPress Anda ke VPS baru! Dalam bagian ini, kami akan menjelaskan langkah-langkah mudah untuk melakukan migrasi secara efektif. Pastikan situs Anda tetap aktif dan aman selama proses ini dengan mengikuti petunjuk berikut.
Masuk ke VPS lama menggunakan SSH. Kita akan mengompres folder web menggunakan tar
. Selain itu, kita juga akan melakukan dump database MySQL yang digunakan oleh situs kita.
sudo tar -czvf web_backup.tar.gz nama_folder_web
sudo mysqldump -u username -p nama_database > db_backup.sql
nama_database
dengan database situs wordpress Anda.wp-config.php
yang terletak di folder web Anda.Pada langkah kedua ini, kita masih berada di sisi server lama. Kita akan mentransfer hasil backup, baik folder web maupun database, ke VPS baru. Alat yang kita gunakan untuk proses ini adalah rsync
.
rsync -avzhi --progress web_backup.tar.gz username@new_vps_ip:/var/www/
rsync -avzhi --progress db_backup.sql username@new_vps_ip:/var/www/
Setelah berhasil memindahkan file backup ke VPS baru, langkah selanjutnya adalah melakukan proses restore. Pada tahap ini, kita akan mengembalikan file website dan database yang telah dibackup sebelumnya ke dalam sistem VPS baru, memastikan situs WordPress Anda berjalan dengan lancar seperti di server sebelumnya.
Pertama, silakan login ke VPS baru dan navigasikan ke folder /var/www
. Kemudian, periksa apakah hasil transfer yang telah dilakukan sebelumnya sudah ada di folder ini.
cd /var/www
ls
Untuk merestore backup website, kita akan menggunakan perintah tar
untuk mengekstrak file backup yang sebelumnya telah kita kompres.
sudo tar -xzf web_backup.tar.gz
Sebelum proses restore db dilakukan, kita harus membuat database baru dulu sebagai tempat dimana kita merestore database dari VPS lama.
masuk ke konsol mariadb
sudo mariadb
Buat database baru, user baru dan beri privilege.
CREATE DATABASE wordpressbaru_db;
CREATE USER wordpressuser@localhost IDENTIFIED BY 'your-password';
GRANT ALL PRIVILEGES ON wordpressbaru_db.* TO wordpressuser@localhost IDENTIFIED BY 'your-password';
Keluar dari konsol mariadb
exit;
Sekarang baru restore database wordpress yang sudah kita pindah ke VPS baru menggunakan perintah mysql/
sudo mysql -u wordpressuser -p wordpressbaru_db < db_backup.sql
Silahkan ganti IP address di A record domain Anda, ganti ke IP Addressnya VPS Baru. Disini saya menggunakan cloudflare sebagai panel manajemen domain. Karena cloudflare cepat dalam propagasi perubahan domain. Hanya sekitar 1 sampai 3 menit saja.
Langkah terakhir adalah membuat virtualhost nginx dan menginstall SSL. Untuk virtualhost nginx beserta SSL, silahkan mengikuti petunjuk di bawah ini.
sudo nano /etc/nginx/sites-available/wordpress.conf
Kemudian isikan dengan kode baris di bawah ini :
server {
listen 80;
server_name namadomain.com www.namadomain.com;
root /var/www/wordpress;
index index.php;
autoindex off;
# Access log
access_log /var/log/nginx/namadomain-access.log combined;
# Error log
error_log /var/log/nginx/namadomain-error.log;
# Additional Configuration
client_max_body_size 10M;
client_body_buffer_size 128k;
client_body_timeout 10;
client_header_timeout 10;
keepalive_timeout 5;
location / {
try_files $uri $uri/ /index.php?$args;
}
# Block PHP Direct Access to Upload and Includes Directory
location ~* /(?:wp-content/uploads|wp-includes)/.*\.php$ {
deny all;
}
# Block Access to xmlrpc
location = /xmlrpc.php {
deny all;
}
location ~ \.php$ {
try_files $uri =404;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
fastcgi_index index.php;
}
location = /favicon.ico {
log_not_found off;
access_log off;
expires max;
}
location = /robots.txt {
log_not_found off;
access_log off;
}
# Disable Access to Hidden File
location ~ /\. {
deny all;
}
# Disable Execute PHP File on Upload Directory
location /wp-content/uploads/ {
location ~ \.php$ {
deny all;
}
}
# Header Security
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
add_header X-Permitted-Cross-Domain-Policies none;
add_header X-Frame-Options "SAMEORIGIN";
# Gzip Compression
gzip on;
gzip_vary on;
gzip_min_length 1000;
gzip_comp_level 5;
gzip_types application/json text/css application/x-javascript application/javascript image/svg+xml;
gzip_proxied any;
# Cache-Control
location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ {
access_log off;
log_not_found off;
expires 360d;
}
# Rest API
location ~ ^/wp-json/ {
rewrite ^/wp-json/(.*?)$ /?rest_route=/$1 last;
}
}
Jika sudah, symlinks vhost ke directory /etc/nginx/sites-enabled.
sudo ln -s /etc/nginx/sites-available/wordpress.conf /etc/nginx/sites-enabled/
Selanjutnya, test kode konfigurasi virtualhost di atas dengan perintah berikut :
Pastikan hasilnya “OK”.
sudo nginx -t
Terakhir restart service nginx untuk memuat perubahan.
sudo systemctl restart nginx
Pertama install dulu paket certbot dan python certbot nginx.
sudo apt install -y certbot python3-certbot-nginx
Kemudian jalankan perintah di bawah ini untuk mendapatkan sertifikat SSL dari Let’s Encrypt.
sudo certbot --nginx --agree-tos --redirect --email [email protected] -d namadomain.com
Jadi begitulah cara migrasi wordpress dari vps ke vps baru. untuk pertanyaan lebih lanjut silahkan menulis komentar di bawah ini.
WordPress Org : wordpress.org