Migrasi WordPress ke DigitalOcean Bagian 2 – Installasi VPS Ubuntu dan WordPress dengan EasyEngine
Ini adalah kelanjutan dari tulisan pertama : Migrasi WordPress ke DigitalOcean Bagian 1 – Untuk Masa Depan Yang Lebih Baik. Maaf jika lama sekali bagian-2 ini setelah 3 tahun terbengkalai wkwkwk. Artikel ini masih relevan bagi yang membutuhkan server private untuk install beberapa situs wordpress atau migrasi dari share hosting.
Setelah dibahas kelebihan dan kekurangan VPS di artikel sebelumnya, selanjutnya adalah tahap installasi server itu sendiri, setup standar keamanan dan dilanjutkan dengan installasi wordpress menggunakan EasyEngine.
Membuat Droplet VPS
Droplet adalah unit terkecil dari cloud virtual server yang akan kita sewa. Di situs DigitalOcean (DO) lakukan registrasi seperti biasa, menggunakan email yang paling sering dipakai. Jika ini pendaftaran pertama jangan kawatir, akan dapat credit beberapa puluh USD yang bisa dipakai beberapa bulan.
Lakukan registrasi seperti biasa, menggunakan email yang paling sering dipakai. Jika ini pendaftaran pertama jangan kawatir, akan dapat credit gratis beberapa puluh $USD yang bisa dipakai beberapa bulan untuk uji coba.
Lakukan login, jika ini nanti akan menjadi website penting (bukan sekedar coba-coba) pastikan setting two-factor authentication. Selain itu juga jangan lupa konfirmasi email. Cara di bawah ini bisa berubah sewaktu-waktu karena DO selalu melakukan pembaruan.
Bada bagian klik tombol Create > Droplet. Jangan kawatir, Droplet yang akan kita buat bisa kita destroy kapan saja jika sudah tidak dibutuhkan. Terlihat banyak opsi yang bisa kita gunakan, ini salah satu kelebihan VPS dimana server yang mau kita bangun bisa sangat spesific untuk kebutuhan aplikasi tertentu, misal khusus database, khusus cluster, memory optimized dll.
Untuk awal pilih yang Standard, pilih Ubuntu 16.04 x64 atau versi 18. Pilih ukuran yang paling kecil $5/mo, jika tidak tampil klik link Show All Plan. Jika target website nanti adalah Indonesia, maka pilih datacenter terdekat yaitu Singapor, sesuaikan dengan dengan target market agar latency semakin kecil.
Pilih Authentication One-time password, ini sementara saja, nanti kita ganti dengan SSH Key yang lebih aman. Klik tombol Create. Dan tunggu sampai selesai prosesnya dan catat SERVER_IP_ADDRESS.
Initial Server Setup
Login ke server menggunakan ssh dengan user root dan password yang dikirimkan via email yang digunakan untuk registrasi. Setelah itu ubah password user root dengan password yang kuat.
~$ ssh root@SERVER_IP_ADDRESS ~$ passwd
Demi keamanan buat user baru untuk melakukan development server ini, root disimpan saja dan jangan dipakai kecuali jika terpaksa. Contoh add user dengan nama saya sendiri, kemudian beri privilege root.
~$ adduser bhakti ~$ usermod -aG sudo bhakti
Buat SSH Key Auth
Generate pasangan SSH key di komputer local, dalam contoh ini saya memakai Macbook Pro. Sekali lagi ini di komputer lokal. SSH Key ini nanti akan digunakan untuk memperkuat keamanan akses ke server. Jadi tidak bisa lagi login menggunakan user password seperti biasanya. Lakukan langkah berikut.
local:~$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/localuser/.ssh/id_rsa):
Enter, ikuti perintah selanjutnya, misalnya input passphrase jika diinginkan, atau kosongkan saja. Akan terbuat folder .ssh dengan dua file private key id_rsa dan public key id_rsa.pub. Private key biarkan saja, sementara public key harus dicopy ke server VPS di atas. Copy isinya terlebih dahulu file berikut ini.
local:~$ cat ~/.ssh/id_rsa.pub
Kembali lagi console sever dan sudo ke user yang telah di buat di atas. Buat direktori .ssh di folder ~home, setting ownership menjadi 700 dan buat file dengan nama authorized_keys .
~$ su - bhakti ~$ mkdir ~/.ssh ~$ chmod 700 ~/.ssh ~$ nano ~/.ssh/authorized_keys
Dengan editor nano, paste isi file yang telah dicopy sebelumnya ke file ini. Keluar dan simpan dengan cara tekan Ctrl-X kemudian pilih Y. Ubah ownership menjadi 600 kemudian logout.
~$ chmod 600 ~/.ssh/authorized_keys ~$ exit
Lakukan test login dari komputer lokal menggunakan ssh. Seharusnya bisa login tanpa lagi input user dan password.
local:~$ ssh bhakti@SERVER_IP_ADDRESS
Setting Firewall
Berikutnya setting firewall agar menutup semua port yang ada kecuali beberapa saja yang akan digunakan oleh server seperti ssh, ssl dan http.
// Melihat daftar service
~$ sudo ufw app list
// Enable kan firewall
~$ sudo ufw enable
// Ijinkan port SSH
~$ sudo ufw allow OpenSSH
// Ijinkan port untuk webserver
~$ sudo ufw allow http
~$ sudo ufw allow https
// Cek status
~$ sudo ufw status
Server seharusnya sudah aman (ini minimal ya). Untuk security yang lebih ketat tentu tidak semudah di atas, tetapi sudah cukup untuk website pada umumnya.
Install EasyEngine
Setelah server siap terutama segi keamanannya, kini saatnya menyiapkan WordPress yang akan diinstall. Umumnya kita akan install PHP, Apache dan MySQL secara terpisah atau jadi satu seperti paket LAMPP. Yang akan saya pakai adalah paket EasyEngine, dimana semua proses dilakukan dengan command shell.
EasyEngine merupakan tools command line untuk membuat Website terutama WordPress dan segala hal yang dibutuhkannya antara lain PHP, Nginx (tidak menggunakan Apache) dan database MySQL/MariaDB. Hanya dengan command line, semua bisa siap dalam sekejap. Bahkan sudah include Let’s Encrypt untuk membuat sertifikasi SSL gratis di situs kita.
Saya ambil contoh ini dari situs EE. Bagian paling mudah.
// Install EasyEngine on Linux ~$ wget -qO ee rt.cx/ee4 && sudo bash ee // Create a site at example.com with WordPress ~$ sudo ee site create example.com --type=wp // Add SSL to non-ssl site ~$ ee site update example.com --ssl=le
Dengan tiga baris di atas saja, sebuah website WordPress sudah siap diakses dengan tingkat security yang cukup mantap, sudah SSL artinya gak bakal kena blokir browser macam Chrome.
Kita bisa membuat beberapa website tentunya, tinggal mengulang command yang di atas. Dan banyak lagi fitur manajemen webserver yang ada di EasyEngine ini. Selengkapnya bisa dilihat di https://easyengine.io/commands/. Dan jika anda memiliki website lama di sharehosting ingin dimigrasi ke private server dengan EasyEngine, bisa ikuti langkah disini https://easyengine.io/docs/site-migration/.
Demikian tutorial singkat membuat webserver di VPS dengan tingkat keamanan mumpuni dan juga langkat cepat membuat situs wordpress siap digunakan. Semoga manfaat.
Mas, saya baru aja coba VPS DigitialOcean paket $5, udah bikin droplet Ubuntu 20.04, install Apache, Worpress, dan SSL, blog udah aktif. Pertanyaan saya, kalau migrasiin blog saya yang dari shared hosting yang ada CPanelnya ke VPS ini gimana ya?