Friday, 13 May 2022

Memahami Server Requirements untuk Proses Deployment Live and Running pada Ubuntu Server 20.04

server-requirements-thumbnail

Disini kita akan membahas tentang server requirements pada Ubuntu Server 20.04.

Agar sebuah project yang di deploy bisa di publish dan berjalan tanpa adanya masalah, sebuah perangkat server membutuhkan beberapa service tertentu yang terinstal didalamnya. Prasyarat ini dikenal dengan istilah Server Requirement. Khusus untuk penggunaan framework, tiap framework memiliki persyaratan yang berbeda untuk server requirementnya agar project yang di bangun menggunakan framework tersebut bisa berjalan tanpa ada masalah.

Wednesday, 11 May 2022

Konfigurasi Port Based Virtual Host pada Ubuntu Server 20.04

port-based-virtual-host-thumbnail

Pernah kepikiran gak?, gimana cara agar website dan aplikasi yang ada di dalam unit server fisik yang sama, bisa online berbarengan hanya dengan menggunakan 1 ip publik saja.

Gimana caranya?

Caranya adalah dengan menggunakan Virtual Host, pada tutorial ini kita akan membahas apa itu Virtual Host dan bagaimana konfigurasinya pada Ubuntu Server 20.04.

Tuesday, 10 May 2022

Konfigurasi Apache Mod_Rewrite pada Ubuntu Server 20.04

module-rewrite-thumbnail

Pada tutorial ini kita akan membahas tentang konfigurasi modul Rewrite pada service Apache Ubuntu Server 20.04

Modul Rewrite adalah sebuah modul pada service Apache yang berfungsi untuk memanipulasi sebuah URL pada webserver. Sederhananya, modul Rewrite ini akan menyesuaikan url pada sebuah website, agar url yang digunakan terlihat rapi, bersih dan SEO friendly.
Secara default, Apache tidak secara otomatis mengaktifkan modul ini, jadi disini kita akan melakukan beberapa konfigurasi agar modul rewrite ini bisa kita gunakan.
Implementasi dari modul rewrite ini akan berbentuk file .htaccess yang biasanya ada didalam folder sebuah website. File .htaccess sendiri akan berisikan script rule sederhana yang disesuaikan pada framework atau bahasa yang digunakan pada proses pembangunan website tersebut. Pada tutorial ini, kita akan melakukan konfigurasi modul rewrite pada apache web server yang berisikan website yang dibuat dengan framework Codeigniter 4.

Kalian bisa buka dokumentasi dari framework yang kalian gunakan dan cari bagian setup apache web server. Dibawah ini adalah dokumentasi dari framework Codeigniter 4, terlihat pada bagian Apache Web Server dijelaskan bagaimana cara untuk menggunakan mod_rewrite menggunakan simple rule. Pada konfigurasi ini, kita akan menggunakan script .htaccess versi lengkapnya.

codeigniter-4-documentation

Kita mulai proses konfigurasi modul rewrite ini.

1. Aktifkan Modul Rewrite
Untuk mengaktifkan modul rewrite, gunakan perintah :

sudo a2enmod rewrite

Selanjutnya, restart service apache menggunakan perintah :

sudo systemctl restart apache2

2. Konfigurasi site-enable Apache
Selanjutnya, kita perlu melakukan konfigurasi pada site-enable Apache agar bisa melakukan fungsi URL rewrite yang nantinya akan di jalankan oleh file .htaccess.

Ketikan perintah :
sudo nano /etc/apache2/sites-enabled/000-default.conf

Output
<VirtualHost *:80>
    # The ServerName directive sets the request scheme, hostname and port that
    # the server uses to identify itself. This is used when creating
    # redirection URLs. In the context of virtual hosts, the ServerName
    # specifies what hostname must appear in the request's Host: header to
    # match this virtual host. For the default virtual host (this file) this
    # value is not decisive as it is used as a last resort host regardless.
    # However, you must set it for any further virtual host explicitly.
    #ServerName www.example.com

    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html

    # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
    # error, crit, alert, emerg.
    # It is also possible to configure the loglevel for particular
    # modules, e.g.
    #LogLevel info ssl:warn

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    # For most configuration files from conf-available/, which are
    # enabled or disabled at a global level, it is possible to
    # include a line for only one particular virtual host. For example the
    # following line enables the CGI configuration for this host only
    # after it has been globally disabled with "a2disconf".
    #Include conf-available/serve-cgi-bin.conf
</VirtualHost>

Di dalam file konfigurasi diatas, tambahkan script dibawah ini setelah string <VirtualHost *:80> :

<Directory /var/www/html>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow, deny
    Allow from All
</Directory>

Kemudian save pengaturan konfigurasi yang sudah kita setting. Tekan CTRL+X untuk melakukan penyimpanan konfigurasi, lalu konfirmasi dengan mengetik Y, lalu terakhir tekan Enter untuk kembali ke terminal utama server. Selanjutnya kita lakukan restart kembali pada service Apache.
3. File .htaccess
Selanjutnya, kita buat file .htaccess, kalian bisa langsung membuat file .htaccess ini didalam folder website atau project kalian. Disini kita akan membuat file .htaccess pada directory html, diluar folder website atau project, untuk membuat file .htaccess gunakan perintah :

sudo nano /var/www/html/.htaccess

Lalu kita buat rule mod_rewrite dengan mengetikan script dibawah ini :

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    RewriteCond %{REQUEST_URI} ^system.*
    RewriteRule ^(.*)$ /index.php?/$1 [L]

    RewriteCond %{REQUEST_URI} ^application.*
    RewriteRule ^(.*)$ /index.php?/$1 [L]

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>

<IfModule !mod_rewrite.c>
    ErrorDocument 404 /index.php
</IfModule>

Setelah script diatas sudah diketikan, kita save konfigurasinya, tekan CTRL+X untuk melakukan penyimpanan konfigurasi, lalu konfirmasi dengan mengetik Y, lalu terakhir tekan Enter untuk kembali ke terminal utama server.

Setelah itu kalian bisa pindahkan file .htaccess ke dalam folder website atau project kalian.
Kesimpulan :
Dengan mengaktifkan mod_rewrite ini, kita dapat meningkatkan keamanan website sekaligus merapihkan URL website agar terlihat rapi, bersih dan SEO friendly.

Sebagai perbandingan, berikut adalah contoh URL website yang belum menggunakan modul rewrite :

https://website.com/posts.php?year=2022&month=05&day=09&title=mod-rewrite-apache

Sedangkan, dibawah ini adalah contoh URL website yang sudah menggunakan modul rewrite :

https://website.com/2022/05/09/mod-rewrite-apache

Sekian untuk tutorial cara melakukan konfigurasi modul rewrite pada Ubuntu Server 20.04, semoga ilmu yang kalian dapat dari tutorial ini bisa bermanfaat untuk kalian semua. Terima kasih.

Thursday, 5 May 2022

How to Install Ubuntu Server 20.04 on Virtual Box

how-to-install-ubuntu-server-20.04-on-virtual-box

Pada tutorial ini kita akan membahas tentang cara melakukan instalasi Ubuntu Server pada Virtual Box.

Oke langsung saja kita masuk ke cara instalasi ubuntu server pada virtual box, kalian bisa mendownload Virtual Box pada website officialnya disini. Lalu untuk ubuntu server yang kita gunakan adalah versi 20.04, kalian bisa mendownloadnya pada website official ubuntu disini. Instalasi disini akan sepenuhnya menggunakan keyboard, seperti arrow keys, space bar dan enter button.

Baca juga :
Konfigurasi Dasar Pada Ubuntu Server 20.04
Konfigurasi SSH Key Pada Ubuntu Server 20.04 

1. Buat virtual machine baru pada virtual box dengan konfigurasi seperti dibawah ini, untuk tahap ini tidak perlu saya jelaskan secara detail, karena kita yakin kalian semua sudah paham dalam penggunaan virtual machine ini.

  • RAM 2gb
  • Storage 10gb
  • Network Bridged Adapter

Setelah itu klik start untuk memulai proses instalasinya.

ubuntu-server-virtual-box-settings

2. Setelah proses pengecekan system selesai, kalian akan dibawa ke proses pemilihan bahasa dan layout keyboard seperti gambar dibawah ini. Untuk bahasa pilih English lalu Enter.

ubuntu-server-language-select

Kemudian untuk layout keyboard akan menyesuaikan dengan konfigurasi bahasa yang dipilih, gunakan tombol arrow bawah dan pilih Done untuk lanjut.

3. Pada bagian konfigurasi network ini, kita bisa menggunakan DHCP atau IP Static. Kalian bisa lanjut dengan memilih Done jika ingin menggunakan konfigurasi DHCP pada networknya. Pada tutorial ini kita menggunakan DHCP untuk konfigurasi networknya.

Untuk konfigurasi IP Static, kalian bisa mengikuti langkah seperti dibawah ini :
  • Subnet : 192.168.43.0/24
  • IP Server : 192.168.43.14
  • Gateway : 192.168.43.1
  • DNS : 8.8.8.8,8.8.4.4
ubuntu-server-ip-config

4. Untuk bagian proxy bisa kalian skip saja dengan memilih Done. Begitupun dengan mirror address bisa kalian skip juga dengan memilih Done.

5. Pada bagian Storage Configuration, kita bisa melakukan partisi atau langsung lanjut. Pada tutorial ini kita tidak melakukan partisi apa-apa pada storagenya, jadi kita pilih Use an entire disk, lalu pilih Done.

Untuk konfigurasi partisi storage, kalian bisa mengikuti langkah seperti dibawah ini :
  • Root : 5gb
  • Boot : 3gb
  • Home : 2gb
ubuntu-server-storage-configuration

6. Setelah itu akan muncul FILE SYSTEM SUMMARY, pada bagian ini hanya menampilkan summary dari konfigurasi storage server, jika sudah yakin kalian bisa pilih Done atau Back untuk merubah kembali konfigurasi storagenya.

ubuntu-server-file-system-summary

7. Selanjutnya akan muncul konfirmasi Destructive Action, yang artinya proses instalasi akan menghapus semua file yang ada pada storage, pilih Continue untuk melanjutkan.

8. Selanjutnya kita masuk ke konfigurasi Profile Server, masukan nama, nama server, lalu username dan password untuk server kalian. Jika sudah selesai pilih Done.

ubuntu-sever-profile-setup

9. Pada bagian Enable Ubuntu Advantage bisa kalian skip saja dengan pilih Done.

10. Selanjutnya pada bagian SSH Setup, lakukan instalasi OpenSSH server dengan melakukan centang pada opsinya menggunakan space bar, setelah itu pilih Done.

ubuntu-server-install-open-ssh-server

11. Selanjutnya pada bagian Featured Server Snaps juga bisa kalian skip dengan langsung memilih Done.

12. Selanjutnya proses instalasi akan langsung berjalan, kalian tunggu proses ini sampai selesai.

13. Jika proses instalasi selesai akan langsung muncul tombol Reboot. Pilih tombol Reboot untuk melakukan restart pada Virtual Server yang berhasil kita install.

ubuntu-server-installation-complete

14. Setelah server berhasil direboot, terakhir kita lakukan update system, untuk melakukan update sistem, ketikan perintah :

sudo apt update

Disini akan dilakukan pengecekan package apa saja yang updatenya sudah tersedia, jika proses pengecekan sudah selesai baru kita lakukan upgrade dengan mengetikan perintah :

sudo apt upgrade

Akan muncul konfirmasi untuk melanjutkan proses upgrade ini, ketikan Y untuk melanjutkan prosesnya lalu tunggu proses upgrade ini sampai dengan selesai.

Selanjutnya akan muncul konfigurasi untuk open-ssh server, pilh opsi keep the local version currently installed lalu tekan Enter dan tunggu proses instalasinya sampai selesai.

finishing-update-ubuntu-server

Bagaimana?, cukup mudah bukan untuk proses instalasinya. Cara ini bisa kalian gunakan juga untuk melakukan instalasi OS lain seperti Windows 7 atau Ubuntu yang bisa kita gunakan sebagai client. Selanjutnya pada tutorial Ubuntu Server ini kita juga akan membahas materi konfigurasi LAMP Server.
Baca juga :
Sekian untuk tutorial cara melakukan instalasi ubuntu server pada virtual box, semoga ilmu yang kalian dapat dari tutorial ini bisa bermanfaat untuk kalian semua. Terima kasih.