Pindah Shared Hosting ke VPS – Hosting WordPress Sendiri Part 5

Pandu Aji

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

Bagikan:

Related Post

18 responses to “Pindah Shared Hosting ke VPS – Hosting WordPress Sendiri Part 5”

  1. Firdaus Avatar
    Firdaus

    Saya udah mengikuti dari arikel 1 sampai artikel 5 semuanya bang. Blog bisa diakses dan udah bisa masuk ke wp admin. Tapi kenapa saya gak bisa menginstall atau menghapus plugin, upload gambar, edit theme dan sebagainya? Mohon bantuannya bang, udah 3 hari keliling” tetap aja hasilnya sama. Makasih bg

    1. Pandu Aji Avatar
      Pandu Aji

      Biasanya permission untuk folder html kalau dalam kasus diatas. Coba jalankan perintah sudo chown -R www-data:$USER /var/www/webkamu.com/html kalau struktur folder di vpsnya sama.

      1. Firdaus Avatar
        Firdaus

        Makasih banyak bang, berhasil 🙂
        Kalo untuk email bagusnya pake apa bang? Soalnya belum install mail server.
        Ada tutorialnya gak bang?

        1. Pandu Aji Avatar
          Pandu Aji

          kalau mail server mending pakai third party. kalau gratisan bisa pakai Zoho / Yandex.

  2. Arif Avatar
    Arif

    Pas mau instal SSL dengan perintah sudo certbot –nginx -d domainkamu.com -d http://www.domainkamu.com ada notif command not found. Ada yang typo kan command-nya?

    1. Pandu Aji Avatar
      Pandu Aji

      coba install certbot dulu.

  3. Ammar Fathan Avatar
    Ammar Fathan

    Udah ngikutin semua panduannya step by step, tapi hasilnya “Error establishing a database connection”. Udah dicek berkali-kali nama database, user, password, udah sama semua di wp-config dan mysql. Udah reboot server masih sama aja. Database di hosting lama normal-normal aja, artinya database gak rusak. Kira-kira apanya ya? Bingung..

    1. Pandu Aji Avatar
      Pandu Aji

      coba di troubleshoting bikin database baru kemudian dipanggil gini.

    2. Pandu Aji Avatar
      Pandu Aji

      Sudah ketemu permasalahannya mas? Mungkin bisa baca ini mas

  4. Suratno Avatar
    Suratno

    sudah ngikuti tutorial sampai selesai, sudah bisa buka beranda blog. tapi giliran mau buka artikel keteranganngan 404 Not Found. Itu kira-kira kenapa yah?

    1. Pandu Aji Avatar
      Pandu Aji

      save ulang permalinknya

      1. Suratno Avatar
        Suratno

        Sudah ketemu, saya ubah di setting server block. saya ubah pada bagian location / {
        try_files $uri $uri/ =404;

        menjadi

        location / {
        # file ($uri) or directory ($uri/)? if not, redirect to /index.php + qu>
        try_files $uri $uri/ /index.php?$args;

        }

        Untuk menambahkan satu blog wordpress lagi, langkah-langkahnya bagaimana yah?

        1. Pandu Aji Avatar
          Pandu Aji

          Ulangi part ke tiga.

          sudo nano /etc/nginx/sites-available/domainbaru.com
          dan seterusnya 🙂

          1. Suratno Avatar
            Suratno

            Dari Membuat Server Block yah gan? 🙂

          2. Pandu Aji Avatar
            Pandu Aji

            iya, bikin server block baru untuk domain yang baru.

          3. Suratno Avatar
            Suratno

            Solusinya bagaimana yah?

            Saya sudah berhasil buat dua server Block dan dua direktori blog wordpress. tapi kenapa yah? kalo saya buka blog yang satunya mengarah ke blog yang satunya lagi?

            Terima kasih?

          4. Pandu Aji Avatar
            Pandu Aji

            Kemungkinan ada kesalahan di server blocknya. Nanti kalau sudah longgar saya coba buatkan konten tentang ini

          5. Suratno Avatar
            Suratno

            Terima kasih mas,

            Mudah-mudahan cepat dibuat kontennya.

Leave a Comment