Pada kesempatan ini aku mau berbagi tutorial bagaimana caranya untuk memindahkan website dari shared hosting ke VPS. Buat yang belum punya VPS, bisa baca tutorial hosting wordpress di vps yang sudah aku tulis beberapa waktu lalu.
Pada tutorial ini Aku menggunakan webserver Nginx yak! Supaya website lebih ngebut aja jadi pakai webserver nginx. Kalau kamu punya pilihan berbeda, itu hak kamu. Jadi jangan saling memaksakan ya :)). Duh, kaya apa aja.
Berikut topik tulisan tentang hosting wordpress sendiri yang bisa kamu ikuti
- Hosting Wordpress Sendiri 1 : Install dan Setting VPS
- Hosting Wordpress Sendiri 2 : Install Nginx, PHP dan MySQL
- Hosting Wordpress Sendiri 3 : Install dan Setting Wordpress
- Hosting Wordpress Sendiri 4 : Setting HTTPS dan Gzip Compression
- Hosting Wordpress Sendiri 5 : Pindah Shared Hosting ke VPS
Oke langsung aja.
Membuat Backup Website
Kalau kamu cuma mau mindahin dari shared hosting ke shared hosting lain kamu bisa ikuti tutorial yang sudah pernah aku tulis di sini. Kalau tulisan ini lebih ribet gaes.
Langkah pertama yang dilakukan adalah membuat backup website yang akan dipindahkan. Kita hanya perlu melakukan backup untuk folder public_html saja atau folder website yang akan pindahkan saja. Jangan full shared hosting kita pindahkan. Karena selain akan menuh-menuhin server.
Jadi lebih baik memang nggak full backup, cukup websitenya aja nggak perlu konfigurasi servernya aja. Apalagi kebanyakan shared hosting menggunakan apache, sedangkan di vps aku menggunakan Nginx
Jadi cara untuk membackup websitenya dengan login di cpanel hosting lama dan ikuti beberapa langkah berikut
- Buka file manager
- Buka folder website yang akan dipindah, kalau 1 akun shared hosting cuma ada 1 web, biasanya ada di public_html
- Select all file yang ada di folder public_html dan compress. Aku menggunakan .tar karena akan dipindah di vps yang sudah aku install linux.
Setelah membuat backup data website, langkah selanjutnya adalah membuat backup database, caranya sebagai berikut ini
- buka phpmyadmin
- pilih database
- select all table di database
- pilih menu export
- format: SQL
- Go
Kamu akan mendownload file database berupa file.sql, Kemudian kompress dengan zip / tar.gz dan upload di root folder domain. Sama dengan root backup data website untuk mempermudah download konten.
Memindahkan Web ke VPS
Sebelum memindahkan file backup berupa database dan konten website. Kita harus mempersiapkan tempat di VPS untuk menampung data. Seperti yang sudah aku infokan di awal, aku menggunakan VPS dengan sistem operasi Ubuntu dan web server Nginx.
Kalau kamu belum pernah punya VPS sebelumnya, mungkin bisa cek tulisanku tentang cara setting
Berikut beberapa langkah yang harus dilakukan ketika memindahkan website ke VPS
Membuat Server Block
Server block itu sama dengan virtual host jika di apache, karena aku menggunakan Nginx jadi namanya server block. Isinya berupa konfigurasi server.
Nah, sebelum membuat konfigurasi server, yang kita lakukan adalah membuat folder yang akan menjadi tempat penyimpanan semua data website (foto, script, template, dll)
Login ke vps yang sudah kita miliki menggunakan SSH. Setelah itu bikin folder dengan perintah
sudo mkdir -p /var/www/domainkamu.com/html
mkdir
(making directory) merupakan perintah linux untuk membuat folder. Sedangkan -p berfungsi untuk membuat semua parent direktori. Jadi selain membuat folder html, kita juga akan membuat folder domainkamu.com yang sebelumnya belum ada.
Langkah selanjutnya, berikan akses folder tersebut ke group $USER dengan perintah
sudo chown -R $USER:$USER /var/www/domainkamu.com/html
Setelah itu tambahkan permission ke folder tersebut menjadi 755 dengan perintah
sudo chmod -R 755 /var/www/domainkamu.com
Dengan begitu, folder domainkamu.com/html sudah siap diisi dengan konten website yang dipindahkan
Setelah menentukan folder untuk penyimpanan data selesai, langkah selanjutnya adalah membuat konfigurasi server block supaya website bisa jalan dengan servenr Nginx.
sudo nano /etc/nginx/sites-available/domainkamu.com
Kamu bisa pakai vi, nano, maupun teks editor lain terserah. Isi dengan konfigurasi server berikut ini
server {
listen 80;
listen [::]:80;
root /var/www/domainkamu.com/html;
index index.php index.htm;
server_name domainkamu.com www.domainkamu.com;
location / {
try_files $uri $uri/ =404;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
include fastcgi_params;
fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
}
}
Setelah selesai, jangan lupa simpan dan aktifkan konfigurasi tersebut menggunakan perintah
sudo ln -s /etc/nginx/sites-available/domainkamu.com /etc/nginx/sites-enabled/
Terus coba jalankan perintah di bawah ini
sudo nginx -t
Untuk memastikan bahwa konfigurasi server block pada Nginx sudah benar. Jika benar akan muncul hasil
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Kemudian restart service Nginx dengan cara berikut ini
sudo service nginx restart
Server block Nginx sudah siap digunakan
Memindahkan Data Website ke VPS
Setelah server block Nginx siap digunakan, langkah selanjutnya adalah memindahkan data website dari shared hosting ke VPS
Caranya tidak dengan mendownload file dari server kemudian upload ke vps. Kelamaan gaes.
Pindah Konten Website
Pertama, masuk ke direktori website yang akan kita gunakan dengan perintah
cd /var/www/domainkamu.com/html/
Setelah itu download backup dari shared hosting langsung ke vps dengan perintah di bawah ini
wget https://domainkamu.com/backup.tar
Pastikan kamu mengingat nama file backup website lama dan letakkan di root domain sehingga lebih mudah diakses.
Berapa lama prosesnya? Nggak lama kok. Tergantung kecepatan vps dan besarnya ukuran gambar yang didownload.
Kalau ukuran filenya cukup besar, bisa ditinggal ngopi-ngopi dulu ya gaes :))
Setelah proses download selesai, langkah selanjutnya adalah mengekstrak file backup dengna perintah
tar -xzf backup.tar
kalau kompresan backupmu berupa file tar. Sedangkan kalau zip bisa dengan cara
unzip backup.zip
Dengan perintah di atas, akan muncul public_html seperti yang ada di shared hosting lama. Sekarang pindahkan semua isi public_html ke folder html yang menjadi root baru dari website tersebut di vps. Caranya dengan menjalankan perintah
mv public_html/* /var/www/domainkamu.com/html/
Dengan begitu selesai sudah proses pemindahan data website. Tapi website di VPS belum bisa diakses dong. Langkah selanjutnya adalah melakukan import database dari shared hosting lama ke VPS.
Memindahkan Database
Langsung masuk ke phpmyadmin cpanel, pilih database yang akan di export kemudian export database menjadi file sql. Compress file .sql menjadi database.zip untuk memperkecil ukurannya.
Upload di root domain sehingga sama dengan lokasi file backup.tar yang sudah dibuat sebelumnya.
Download ke vps menggunakan wget seperti yang kita lakukan sebelumnya pada file backup.
wget https://domainkamu.com/database.zip
Kemudian unzip file sql dengan perintah
unzip database.zip
Memindahkan database merupakan sebuah PR tersendiri, terutama buatku yang nggak terlalu familiar dengan CLI di database.
Kalau di shared hosting biasanya sudah ada phpmyadmin. Namun di VPS aku memang sengaja nggak install phpMyAdmin. Aku menggunakan software Sequel Pro yang gratis untuk mengelola database yang ada di VPS. Sayangnya ini hanya untuk pengguna Mac.
Nggak tau kenapa squel pro kok bermasalah. Nggak bisa dipakai cuy. Terpaksa deh pakai CLI untuk melakukan import database pada kesempatan ini.
Pastikan sudah login ke VPS yak! Lalu ketikkan perintah ini untuk melakukan konfigurasi mysql
mysql -u root -p
Langkah selanjutnya membuat database baru. Kamu bisa menggunakan nama, username dan password dari database lama apabila nggak mau ribet.
Tapi pada kesempatan ini, aku mau pakai nama, username dan password baru untuk databasenya. Hal yang harus dilakukan pertama adalah membuat database kemudian membuat user dengan perintah
CREATE DATABASE namadatabase;
Setelah itu membuat user yang akan mengelola database tersebut dengan perintah
CREATE USER 'namauser'@'localhost' IDENTIFIED BY 'passworduser'
namauser
nggak punya akses apapun pada database manapun. Oleh karena itu kita perlu memberinya akses ke namadatabase
, sehingga ia bisa mengelola database tersebut. Caranya, jalankan perintah
GRANT ALL PRIVILEGES ON namadatabase.* TO 'namauser'@'localhost';
Kemudian jalankan perintah
flush privileges;
Kemudian keluar dari console mysql dengan perintah
quit;
Langkah selanjutnya, kita masuk ke folder dimana ada file backup untuk mempermudahkan eksekusi script menggunakan perintah
cd /var/www/namadomain.com/html/
Kemudian eksekusi script import database berikut ini
mysql -u namauser -p namadatabase < database.sql
Masukkan password database dan tunggu prosesnya selesai. Nggak lama kok 🙂
Untuk memastikan bahwa database berhasil diimpor, adalah melihat langsung isi databasenya, apakah sama dengan database di shared hosting lama?
Caranya lakukan perintah
mysql -u namauser -p
kemudian pilih databasenya dengan cara menjalankan perintah
use namadatabase;
Lalu tengok isi database dengan menampilkannya melalui perintah
SHOW TABLES;
Kalau sudah sama, proses import database dan data website sudah selesai. Lanjut bagaimana mengarahkan domain ke vps baru.
Oh iya, hampir kelupaan untuk mengubah wp-config.php sesuai dengan database baru, karena aku nggak menggunakan nama dari database lama
caranya jalankan perintah
sudo nano wp-config.php
ubah sesuai nama database, user dan password yang baru setelah itu jangan lupa save. Dan ikuti perintah selanjutnya.
Mengarahkan Domain ke VPS
Setelah proses pemindahan database dan data website selesai, langkah selanjutnya adalah mengarahkan domain ke VPS
Untuk DNS management Aku menggunakan Cloudflare sehingga proses ini bisa sedikit lebih cepat dibanding membawa bawaan registrar domain. Gak sampai setengah jam biasanya sudah berhasil melakukan propagasi kok.
Cukup ubah A Record yang tadinya pointing ke ip shared hosting menuju ke ip server baru. Sembari menunggu, bisa tulis bikin kopi dulu. Lalu bagaimana mengetahui kalau servernya sudah pindah? Cukup jalankan perintah
ping domainkamu.com
Kalau ip server sudah berubah, tandanya proses propagasi sudah selesai dan domain sudah mengarah ke vps baru. Namun perlu cek dengan membuka halaman website, apakah ada masalah?
Ternyata muncul pesan error tersebut. Hal ini wajar, karena memang belum install sertifikasi SSL untuk domain baru. Cara mengatasinya dengan menjalankan perintah berikut untuk install ssl
sudo certbot --nginx -d domainkamu.com -d www.domainkamu.com
Dengan begitu masalah akan selesai dan domain bisa diakses lebih cepat di VPS dibandingkan shared hosting. Jangan lupa aktifkan gzip comperssion yang sudah aku infokan di artikel sebelumnya supaya bisa ngebut.
Leave a Comment