Hosting WordPress Sendiri Part 5: Pindah Shared Hosting ke VPS

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

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

Backup Website

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.
Export / Backup Database

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.

Sequel Pro

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
Hosting WordPress Sendiri Part 5: Pindah Shared Hosting ke VPS 1

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?

Connection Not Private

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.

Nelateni nganggur dengan menulis blog. Ikuti aku di Facebook, Instagram, Twitter maupun Linkedin

Artikel Terkait

Leave a Comment