Anda di halaman 1dari 37

Chapter 14 – Web Server dan Database Server

A. Tujuan
 Mengerti fungsi web server dan database server.
 Mengerti fungsi database server.
 Mengerti fungsi PHP sebagai adalah bahasa pemrograman script server-side yang
digunakan dalam pengembangan web.
 Mengerti fungsi Webmin dalam melakukan pengelolaan server.

B. Alat pendukung
 Multimedia Proyektor.
 Whiteboard.
 Spidol.
 VMWare.
 Linux Ubuntu Server 22.04
 Webmin

C. Indikator Pencapaian

 Praktikan mampu melakukan instalasi dan konfigurasi Web Server.


 Praktikan mampu melakukan instalasi dan konfigurasi Database Server.
 Praktikan mampu melakukan instalasi dan konfigurasi PHP.
 Praktikan mampu membuat Virtual Host.
 Praktikan mampu mengelola database yang dibutuhkan oleh halaman web.
 Praktikan mampu melakukan instalasi halaman web dengan Free CMS Wordpress.

Teori

Pengertian Umum

Web server

Sebuah web server merupakan perangkat lunak yang beroperasi di dalam server, bertujuan untuk
menyediakan layanan berbasis data melalui protokol HTTP atau HTTPS. Fungsinya adalah
melayani permintaan dari klien, seperti web browser Mozilla Firefox, Google Chrome, Opera, dan
Internet Explorer. Saat pengguna mengakses layanan ini, web server mengirimkan berkas-berkas

Candra Setiawan, ST, MT – Universitas Indo Global Mandiri


Chapter 14 – Web Server dan Database Server

data kepada mereka. Contohnya, berkas ini dapat berupa dokumen HTML yang membentuk
struktur dasar halaman web.

Halaman web yang diakses melalui web server dapat berisi berbagai jenis konten. Ini bisa termasuk
teks yang membentuk konten utama, video untuk elemen visual bergerak, gambar untuk ilustrasi
visual, serta berkas-berkas lain seperti file unduhan. Semua elemen ini dikirim oleh web server
kepada pengguna yang meminta halaman web tersebut.

Dengan kata lain, web server adalah aplikasi yang mengatur lalu lintas data antara server
tempatnya berada dan pengguna yang mengaksesnya melalui browser. Ini memungkinkan
pengguna untuk mengakses dan berinteraksi dengan berbagai jenis konten yang di-hosting di
server tersebut.

Aplikasi web server yang banyak digunakan adalah:

 Apache
 Nginx
 Internet Information Services (IIS)
 Caddy
 Lighttpd.

Database Server

Database Server merupakan sebuah perangkat lunak yang berjalan di dalam server dengan tujuan
mengelola dan menyimpan berbagai informasi serta menyediakan layanan basis data melalui
sistem model klien-server. Dalam konsep ini, klien (seperti aplikasi atau pengguna) mengirim
permintaan ke server database untuk mengakses atau memanipulasi data, dan server merespons
dengan memberikan data yang diminta.

Ada beragam aplikasi basis data yang dapat digunakan, dan di antaranya adalah:

 JSON: Format penyimpanan data yang populer dengan struktur berbasis teks yang mudah
dibaca oleh manusia dan sering digunakan untuk pertukaran data.

Candra Setiawan, ST, MT – Universitas Indo Global Mandiri


Chapter 14 – Web Server dan Database Server

 XML: Format markup untuk penyimpanan dan pertukaran data yang dapat digunakan oleh
berbagai aplikasi.
 MySQL: Sistem basis data relasional yang umum digunakan untuk mengelola data
terstruktur.
 MongoDB: Basis data NoSQL yang menyimpan data dalam bentuk dokumen, cocok untuk
pengelolaan data semi-struktur.
 MariaDB: Fork dari MySQL dengan fitur dan kinerja yang ditingkatkan.
 Postgre SQL: Sistem basis data relasional open-source dengan penekanan pada keakuratan
dan keamanan data.
 Oracle Database: Sistem basis data kuat yang cocok untuk aplikasi bisnis besar dan kritis.
 SAP HANA: Platform in-memory database yang dioptimalkan untuk kinerja tinggi dan
analisis data real-time.
 MemSQL: Basis data in-memory untuk pengolahan data cepat.
 IBM Db2: Basis data relasional yang dapat diintegrasikan dengan berbagai platform.
 Firebird dan Interbase: Basis data open-source yang ringan dan cepat.
 Database Warehouse (DW atau DWH): Basis data yang dioptimalkan untuk analisis dan
pelaporan data bisnis.
 Microsoft SQL Server: Sistem basis data relasional dari Microsoft dengan berbagai fitur
bisnis.
 Microsoft (Office) Access: Aplikasi basis data desktop untuk mengelola data dengan skala
kecil hingga menengah.
 SQLite: Basis data berbasis berkas yang bersifat self-contained dan tidak memerlukan
server terpisah.

Dalam konteks ini, Database Server berperan penting dalam menjaga integritas dan ketersediaan
data, serta memfasilitasi pengaksesan data oleh aplikasi dan pengguna secara efisien.

PHP

PHP adalah sebuah bahasa pemrograman skrip atau skrip yang bekerja di sisi server yang
dimanfaatkan untuk mengembangkan halaman web. Penggunaan PHP memungkinkan pembuatan
aplikasi web yang memiliki sifat dinamis, yang berarti kemampuan untuk menghasilkan konten

Candra Setiawan, ST, MT – Universitas Indo Global Mandiri


Chapter 14 – Web Server dan Database Server

yang bervariasi berdasarkan permintaan dan interaksi pengguna, berbeda dengan penggunaan kode
HTML dasar yang bersifat statis.

Dalam konteks ini, PHP berfungsi sebagai alat yang kuat untuk mengolah data secara dinamis pada
halaman web. Dengan menyisipkan kode PHP ke dalam halaman HTML, kita dapat menghasilkan
respons yang berbeda berdasarkan data yang diterima dari pengguna atau berdasarkan berbagai
kondisi yang diatur oleh program. Misalnya, PHP memungkinkan kita untuk mengakses basis data,
mengambil informasi dari formulir yang diisi pengguna, atau menghasilkan halaman berdasarkan
logika bisnis tertentu.

Jadi, penggunaan PHP memberikan fleksibilitas yang jauh lebih besar dalam pembuatan situs web
yang dinamis dan interaktif, karena konten dan perilaku halaman tidak lagi terbatas pada struktur
statis yang ditetapkan sebelumnya, melainkan dapat beradaptasi dan berubah sesuai dengan situasi
dan kebutuhan yang berbeda.

Gambar 1. Cara kerja web server

Paket Perangkat Lunak

Beberapa paket perangkat lunak berbasis open source yang terkenal dan banyak digunakan dalam
mengembangkan layanan web termasuk yang berikut:

1. LAMP
LAMP merupakan singkatan dari Linux, Apache, MySQL/MariaDB, dan PHP. Ini adalah suatu
paket perangkat lunak terintegrasi yang didasarkan pada prinsip open source, dan dapat
digunakan secara bebas untuk menjalankan aplikasi web dengan komponen yang lengkap.

Candra Setiawan, ST, MT – Universitas Indo Global Mandiri


Chapter 14 – Web Server dan Database Server

Komponen-komponen dari LAMP meliputi:

 Linux: Sistem operasi open source yang membentuk dasar dari lingkungan server.
 Apache HTTP Server: Web server yang populer dan kital untuk mengirimkan halaman
web kepada pengguna yang memintanya.
 MariaDB atau MySQL: Sistem basis data yang menyimpan dan mengelola data yang
diperlukan oleh aplikasi web.
 PHP, Perl, atau Python: Bahasa pemrograman yang digunakan untuk mengembangkan
aplikasi web yang dinamis dan interaktif.

Secara menyeluruh, paket LAMP telah menunjukkan keberhasilannya sebagai solusi yang efisien
dan terkenal dalam domain pengembangan web berbasis open source, karena menyajikan elemen-
elemen penting yang diperlukan untuk menciptakan layanan web yang tangguh dan dinamis.

2. LEMP
LEMP adalah suatu kumpulan aplikasi yang digunakan untuk menjalankan server web, mirip
dengan LAMP. Perbedaannya terletak pada penggunaan EngineX (Nginx) sebagai web server,
sementara LAMP menggunakan Apache. LEMP merupakan singkatan dari Linux, NginX,
MySQL/MariaDB, dan PHP.

Komponen-komponen yang membentuk LEMP meliputi:


 Linux: Sistem operasi yang menyediakan fondasi bagi pengoperasian server.
 EngineX (Nginx): Web server yang merupakan inti dari distribusi LEMP, berfungsi untuk
mengantarkan konten web kepada pengguna yang memintanya.
 MariaDB atau MySQL: Sistem basis data yang penting untuk menyimpan dan mengelola
data yang dibutuhkan oleh aplikasi web.
 PHP, Perl, atau Python: Bahasa pemrograman yang digunakan untuk mengembangkan
aplikasi web yang dinamis dan interaktif.

Nginx adalah suatu aplikasi web server berbasis open source yang memiliki keunggulan sendiri
bila dibandingkan dengan Apache. Kelebihan utamanya adalah dalam hal kinerja dan
penggunaan memori yang lebih efisien.

Candra Setiawan, ST, MT – Universitas Indo Global Mandiri


Chapter 14 – Web Server dan Database Server

Dengan menyusun paket LEMP ini, kita memiliki alat yang lengkap untuk membangun dan
mengoperasikan server web. Linux sebagai dasar sistem operasi, Nginx sebagai server web,
MariaDB atau MySQL untuk basis data, dan PHP, Perl, atau Python sebagai bahasa
pemrograman, semuanya bekerja bersama untuk menciptakan lingkungan yang mampu
menjalankan aplikasi web yang efisien dan dinamis.

Skenario Praktikum

Catatan Pendahuluan

Skenario Praktikum ini ada hubungan dengan materi sebelumnya, yaitu Instalasi Linux Ubuntu
dan DNS Server.

 Lakukan instalasi Linux Ubuntu dengan merujuk ke materi sebelumnya.


 Hostname yang digunakan adalah svr.uigm.local dengan IP address 192.168.195.147, DNS
Server 192.168.195.141 dan gateway 192.168.195.2. Skenario bisa berubah tergantung dengan
pengalamatan yang digunakan.
 Jalankan DNS Server yang sudah dikonfigurasi sebelumnya.
 Penambahan DNS Record dilakukan pada DNS Server yang telah dibuat sebelumnya.
 Seluruh perintah harus dijalankan dengan privilege Sudo.

Melihat IP Address

Setelah menyelesaikan proses instalasi Linux Ubuntu Server, langkah berikutnya adalah
memasuki antarmuka baris perintah (CLI) pada Mesin Virtual untuk mengidentifikasi alamat IP
dari server. Silakan masukkan perintah berikut:

ifconfig –a

Login sebagai sudo

Kemudian, lanjutkan dengan masuk ke mode sudo menggunakan instruksi berikut:

sudo su

Candra Setiawan, ST, MT – Universitas Indo Global Mandiri


Chapter 14 – Web Server dan Database Server

Isikan kata sandi atau password yang diminta, lalu tekan tombol "Enter".

Mengubah IP Address

Agar dapat merubah alamat IP, silakan masukkan perintah berikut:

nano /etc/netplan/00-installer-config.yaml

Atur alamat IP pada server sesuai dengan konfigurasi yang diterapkan dalam jaringan kita, sebagai
contoh:

# This is the network config written by 'subiquity'


network:
ethernets:
ens33:
addresses: ['192.168.195.147/24']
gateway4: 192.168.195.2
nameservers:
addresses: [127.0.0.53, 8.8.8.8]
search: [uigm.local]
version: 2

Untuk menyimpan perubahan, tekan tombol "Ctrl + X", lalu tekan "Y", dan akhiri dengan menekan
tombol "Enter".

Untuk Restart konfigurasi interface, gunakan perintah:

sudo netplan apply

Lakukan uji ping ke google.com untuk memverifikasi apakah server kita dapat terhubung dengan
internet.

ping google.com

Candra Setiawan, ST, MT – Universitas Indo Global Mandiri


Chapter 14 – Web Server dan Database Server

Setelah itu, buka Command Prompt pada komputer kita dan lakukan ping terhadap alamat IP
tersebut. Jika kita menerima balasan (reply), itu menkitakan bahwa Server Ubuntu yang diinstal
pada Mesin Virtual telah berhasil terhubung dengan komputer kita.

Konfigurasi dengan Putty

Langkah berikutnya adalah mengonfigurasi server menggunakan Putty. Buka aplikasi Putty pada
komputer Kita, kemudian masukkan alamat IP 192.168.195.147 dan pilih port 22. Setelah itu, klik
tombol "Open". Jika Kita melihat peringatan keamanan dari Putty, pilih opsi "Yes" untuk
melanjutkan. Kemudian, masukkan nama pengguna (username) dan kata sandi (password).

Setelah berhasil masuk, lanjutkan dengan memasuki mode sudo.

sudo su

Lakukan pembaruan pada server.

apt-get update

Edit hostname
Hostname adalah label atau nama yang diberikan kepada suatu perangkat dalam jaringan, seperti
server atau komputer, untuk mengidentifikasinya secara unik dalam lingkup jaringan. Hostname
digunakan untuk mengidentifikasi perangkat di dalam jaringan dan memudahkan komunikasi antar
perangkat. Biasanya, hostname disusun dalam bentuk teks yang mudah diingat, seperti "server1"
atau "komputer-utama". Hostname ini dapat digunakan untuk mengakses perangkat dalam jaringan
menggunakan nama alih-alih harus mengingat alamat IP yang kompleks.

nano /etc/hosts

127.0.0.1 localhost
192.168.195.147 svr svr.uigm.local

# The following lines are desirable for IPv6 capable hosts


::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Candra Setiawan, ST, MT – Universitas Indo Global Mandiri


Chapter 14 – Web Server dan Database Server

Editing Resolver

Resolver adalah bagian dari sistem operasi atau aplikasi yang bertanggung jawab untuk
menerjemahkan nama domain (seperti www.contoh.com) menjadi alamat IP yang sesuai. Ketika
Kita memasukkan suatu nama domain ke dalam peramban web atau aplikasi lainnya, resolver akan
melakukan proses pencarian DNS (Domain Name System) untuk mengonversi nama domain
tersebut menjadi alamat IP yang diperlukan untuk mengarahkan permintaan ke server yang tepat.

Dalam konteks sistem operasi, resolver adalah komponen yang mengelola permintaan DNS.
Ketika aplikasi di sistem mengeluarkan permintaan untuk mengecek alamat IP dari suatu nama
domain, resolver akan berkomunikasi dengan server DNS untuk mendapatkan informasi yang
diperlukan dan mengirimkan hasilnya kembali ke aplikasi.

Resolver memainkan peran penting dalam komunikasi jaringan karena membantu dalam
menghubungkan nama domain yang mudah diingat dengan alamat IP yang digunakan dalam
komunikasi data di jaringan internet.

nano /etc/resolv.conf

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)


# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE
OVERWRITTEN
nameserver 192.168.195.141
nameserver 8.8.8.8
search uigm.local

Instalasi Nginx Web Server


Berikut adalah langkah-langkah instalasi Nginx Web Server pada sistem Linux (misalnya Ubuntu):

apt install nginx -y

Setelah proses instalasi selesai, Kita dapat memulai Nginx dan mengaktifkannya agar tetap
berjalan setiap kali server di-restart dengan langkah berikut:

systemctl start nginx


systemctl enable nginx

Candra Setiawan, ST, MT – Universitas Indo Global Mandiri


Chapter 14 – Web Server dan Database Server

Konfigurasi Firewall

Uncomplicated Firewall (UFW) adalah antarmuka firewall pada sistem operasi berbasis Linux.
UFW mempermudah pengelolaan konfigurasi firewall yang sebelumnya rumit, membuat tugas ini
lebih sederhana bagi para administrator sistem. Penting untuk mengaktifkan firewall pada server
untuk meningkatkan keamanan.

Untuk menambahkan port layanan SSH (port 22) dan HTTP (port 80) ke konfigurasi firewall, Kita
dapat menjalankan perintah UFW seperti yang diberikan di bawah ini:

ufw allow ssh


ufw allow http

Untuk memulai firewall UFW dan mengaktifkannya agar tetap berjalan setiap kali sistem direstart,
ikuti langkah-langkah berikut:

ufw enable

Membuka Nginx pada Web Browser


Buka peramban web (web browser), masukkan alamat http://192.168.195.147, dan jika Kita
melihat pesan "Welcome to nginx!", ini menandakan bahwa Nginx telah terinstal dan berjalan
dengan baik.

Candra Setiawan, ST, MT – Universitas Indo Global Mandiri


Chapter 14 – Web Server dan Database Server

Instalasi MariaDB Database Server

MariaDB Database Server adalah sebuah sistem manajemen basis data (DBMS) yang merupakan
cabang atau fork dari MySQL. MariaDB dikembangkan sebagai alternatif open source untuk
MySQL setelah Oracle mengakuisisi MySQL. Keduanya memiliki sejarah dan karakteristik yang
mirip, sehingga aplikasi yang diarahkan untuk MySQL juga dapat berjalan pada MariaDB tanpa
banyak perubahan.

Beberapa fitur MariaDB meliputi:

1. Relational Database Management System: MariaDB digunakan untuk menyimpan,


mengelola, dan mengambil data dalam basis data berstruktur.

2. Open Source: MariaDB bersifat open source, artinya kita dapat mengunduh, menginstal,
dan menggunakannya secara gratis serta mengubah kode sumber sesuai kebutuhan.

3. High Performance: MariaDB memiliki fokus pada kinerja tinggi dan efisiensi, sehingga
cocok untuk mengelola aplikasi yang membutuhkan pemrosesan data yang cepat dan
responsif.

4. Compatibility with MySQL: Kode sumber MySQL dan MariaDB memiliki kesamaan,
sehingga aplikasi yang dirancang untuk MySQL dapat dengan mudah berjalan pada
MariaDB.

5. Security: MariaDB menyediakan fitur keamanan seperti enkripsi data, autentikasi yang
kuat, dan manajemen akses yang cermat.

6. High Availability: MariaDB mendukung replikasi dan ketersediaan tinggi, memungkinkan


replikasi data dan failover otomatis untuk menjaga basis data tetap aktif dan dapat diakses.

7. Community-Driven: Pengembangan dan dukungan untuk MariaDB didorong oleh


komunitas yang aktif dan berdedikasi.

Candra Setiawan, ST, MT – Universitas Indo Global Mandiri


Chapter 14 – Web Server dan Database Server

Berikut adalah langkah-langkah instalasi MariaDB Database Server pada sistem Linux (misalnya
Ubuntu):

sudo apt install mariadb-server mariadb-client libdbi-perl libdbd-mysql-perl -y

Pada saat instalasi MariaDB, Kita akan diminta untuk mengatur password untuk akun root.
Pastikan Kita mengingat password ini dengan baik karena akan digunakan untuk mengakses dan
mengelola database.

Setelah instalasi selesai, Kita dapat melakukan langkah-langkah berikut untuk memastikan
MariaDB tetap berjalan setiap kali server direstart:

systemctl start mysql


systemctl enable mysql

Instalasi PHP-FPM

PHP-FPM (PHP FastCGI Process Manager) adalah suatu metode pengelolaan proses PHP yang
dikhususkan untuk digunakan dengan server web seperti Nginx atau Apache yang menggunakan
protokol FastCGI. PHP-FPM berfungsi sebagai penghubung antara server web dan interpreter PHP
untuk menjalankan kode PHP pada permintaan yang masuk.

Beberapa poin penting tentang PHP-FPM:

1. FastCGI: PHP-FPM adalah implementasi FastCGI khusus untuk PHP. FastCGI adalah
protokol yang memungkinkan server web untuk berkomunikasi dengan interpreter PHP
sebagai proses yang terpisah, menghindari overhead dari memulai dan menghentikan
proses PHP setiap kali permintaan datang.

2. Pengelolaan Proses: PHP-FPM memiliki manajemen proses yang canggih. Ia mengatur


proses PHP yang berjalan di belakang layar dan mengoptimalkan penggunaan sumber
daya. Ini memungkinkan kinerja yang lebih baik dan skalabilitas yang lebih tinggi.

3. Isolasi: Dalam arsitektur PHP-FPM, setiap permintaan PHP dijalankan dalam konteks
proses yang terisolasi. Ini berarti jika ada masalah pada satu permintaan, tidak akan
mempengaruhi permintaan lainnya.

Candra Setiawan, ST, MT – Universitas Indo Global Mandiri


Chapter 14 – Web Server dan Database Server

4. Konfigurasi Terpisah: PHP-FPM memungkinkan konfigurasi terpisah untuk setiap situs


atau aplikasi web yang berjalan di server. Ini memungkinkan pengaturan kustom untuk
penggunaan sumber daya, batasan memori, dan lain-lain.

5. Skalabilitas: Dengan manajemen proses yang efisien dan kemampuan untuk mengatur
konfigurasi secara terpisah, PHP-FPM cocok untuk lingkungan yang memerlukan
skalabilitas tinggi, seperti server web dengan lalu lintas tinggi.

Dalam kombinasi dengan server web seperti Nginx atau Apache, PHP-FPM memungkinkan
pengembang untuk menjalankan aplikasi web PHP yang cepat, efisien, dan dinamis dengan baik.

Berikut adalah langkah-langkah instalasi PHP-FPM (PHP FastCGI Process Manager) pada sistem
Linux (misalnya Ubuntu):

apt-get install php-fpm php-mysql

Edit php.ini

`php.ini` adalah berkas konfigurasi utama untuk interpreter PHP. Ini adalah berkas teks yang berisi
berbagai opsi dan pengaturan yang mengontrol perilaku dan fungsi PHP di server. Setiap kali skrip
PHP dijalankan, interpreter akan merujuk ke `php.ini` untuk mengetahui pengaturan yang harus
diterapkan.

Beberapa pengaturan yang dapat diatur dalam `php.ini` meliputi:

 Mengaktifkan atau Menonaktifkan Ekstensi PHP: Kita dapat mengaktifkan atau


menonaktifkan ekstensi PHP tertentu yang diperlukan untuk fungsionalitas khusus.
 Pengaturan Memori: Kita dapat mengatur jumlah memori yang dapat digunakan oleh skrip
PHP.
 Konfigurasi Basis Data: Kita dapat mengonfigurasi parameter koneksi basis data.
 Pengaturan Error Reporting: Kita dapat mengatur seberapa banyak informasi error yang
akan ditampilkan.
 Pengaturan Session: Pengaturan yang berkaitan dengan manajemen sesi pengguna.

Candra Setiawan, ST, MT – Universitas Indo Global Mandiri


Chapter 14 – Web Server dan Database Server

 Pengaturan Keamanan: Pengaturan yang berkaitan dengan tindakan keamanan seperti


penggunaan variabel global, register globals, dan lain-lain.
 Pengaturan Eksekusi Waktu: Kita dapat mengatur batasan waktu eksekusi skrip PHP.

`php.ini` adalah bagian penting dalam mengatur lingkungan PHP. Setiap kali kita merubah
pengaturan dalam `php.ini`, Kita perlu me-restart server web atau layanan PHP (seperti PHP-FPM)
agar perubahan tersebut diterapkan.

Untuk mengedit berkas php.ini, kita dapat mengikuti langkah-langkah berikut:

nano /etc/php/8.1/fpm/php.ini

Setelah membuka berkas, tekan tombol Ctrl dan huruf "W" bersamaan, lalu masukkan
"cgi.fix_pathinfo" untuk mencari pengaturan tersebut. Selanjutnya, hapus tkita titik koma (;) pada
awal baris dan ganti angka 1 dengan angka 0.

cgi.fix_pathinfo=0
Dengan mengubah pengaturan cgi.fix_pathinfo menjadi 0, kita dapat meningkatkan keamanan
server dengan mematikan fitur yang potensial memiliki risiko keamanan.

Untuk menyimpan Tekan ctrl x, ketik y dan enter.

Restart php8.1

Perlu diingat bahwa setiap perubahan pada php.ini memerlukan restart layanan PHP-FPM agar
perubahan tersebut berlaku.

systemctl restart php8.1-fpm

Konfigure Nginx agar bisa menggunakan PHP

Tujuan dari mengkonfigurasi Nginx agar bisa menggunakan PHP adalah untuk memungkinkan
server web Nginx menjalankan skrip PHP dan menghasilkan halaman web dinamis. PHP adalah
bahasa pemrograman yang umum digunakan untuk mengembangkan halaman web interaktif dan
dinamis. Dengan mengintegrasikan Nginx dengan PHP, kita dapat membuat situs web yang dapat
menghasilkan konten yang disesuaikan dengan permintaan pengguna.

Candra Setiawan, ST, MT – Universitas Indo Global Mandiri


Chapter 14 – Web Server dan Database Server

Dalam konteks ini, Nginx bertindak sebagai server web yang menerima permintaan dari peramban
web. Permintaan tersebut kemudian diteruskan ke interpreter PHP (dalam hal ini, PHP-FPM) yang
menjalankan kode PHP di dalam halaman web. Hasil dari eksekusi PHP dikembalikan ke Nginx,
yang kemudian mengirimkan halaman web yang telah dihasilkan kembali kepada peramban
pengguna.

Dengan mengkonfigurasi Nginx agar menggunakan PHP, kita dapat membuat situs web yang lebih
interaktif dan dinamis, termasuk berbagai fitur seperti formulir interaktif, pengolahan data dari
basis data, serta halaman yang menghasilkan konten yang disesuaikan dengan input pengguna atau
berbagai kondisi.

Buka berkas konfigurasi default dari server block Nginx dengan menggunakan editor teks "nano".
Jalankan perintah berikut:

nano /etc/nginx/sites-available/default

Penjelasan beberapa poin utama dalam konfigurasi ini:

1. Listen Directives:
 “listen 80 default_server;”: Mengatur server untuk mendengarkan pada port 80.
 “listen [::]:80 default_server;’: Mengatur server untuk mendengarkan pada IPv6 untuk
port 80.

2. Root Directive:
 “root /var/www/html;”: Mengarahkan ke direktori root untuk halaman web.

3. Index Directive:
 “index index.php index.html index.htm index.nginx-debian.html;”: Daftar file yang
akan dianggap sebagai indeks dan akan ditampilkan jika permintaan hanya
mencantumkan direktori.

Candra Setiawan, ST, MT – Universitas Indo Global Mandiri


Chapter 14 – Web Server dan Database Server

4. Server Name Directive:


 “server_name 192.168.195.147;”: Menetapkan nama server atau alamat IP yang akan
merespons permintaan.

5. Location Blocks:
 “location / { ... }”: Mengonfigurasi bagaimana Nginx akan menangani permintaan pada
akar situs.
 “location ~ \.php$ { ... }”: Mengonfigurasi bagaimana Nginx akan menangani
permintaan untuk file PHP, menjalankan PHP-FPM untuk mengolahnya.
 “location ~ /\.ht { ... }”: Mengatur penolakan akses untuk file konfigurasi Nginx.

Konfigurasi ini menghubungkan server Nginx dengan PHP-FPM (dalam hal ini, PHP versi 8.1)
melalui socket Unix. Pada blok `location ~ \.php$`, direktif `fastcgi_pass` menunjukkan socket
PHP-FPM yang akan digunakan untuk menjalankan skrip PHP.

Pastikan konfigurasi sesuai dengan kebutuhan kita dan perhatikan versi PHP-FPM yang digunakan
sesuai dengan instalasi server. Sebelum menerapkan perubahan, selalu lakukan verifikasi sintaks
dan restart layanan Nginx.

server {
listen 80 default_server;
listen [::]:80 default_server;

root /var/www/html;

index index.php index.html index.htm index.nginx-debian.html;

server_name 192.168.195.147;
location / {

try_files $uri $uri/ =404;


}

location ~ \.php$ {
include snippets/fastcgi-php.conf;

Candra Setiawan, ST, MT – Universitas Indo Global Mandiri


Chapter 14 – Web Server dan Database Server

fastcgi_pass unix:/run/php/php8.1-fpm.sock;
}

location ~ /\.ht {
deny all;
}
}

Untuk memastikan bahwa konfigurasi Nginx yang kita buat benar dan tidak mengandung
kesalahan sintaks, jalankan perintah berikut:

nginx –t

Restart Nginx
Pastikan untuk melakukan restart setelah mengubah konfigurasi agar perubahan dapat diterapkan.

systemctl reload nginx

Membuat file PHP untuk menguji Konfigurasi

Untuk menguji konfigurasi Nginx dengan PHP, kita dapat membuat file PHP sederhana dan
mengaksesnya melalui peramban web. Hal ini dilakukan untuk menguji konfigurasi Nginx dan
memastikan bahwa server kita dapat menjalankan skrip PHP dengan benar.

nano /var/www/html/info.php

Ketik isi file seperti contoh dibawah ini.


<?php
phpinfo();

Untuk menyimpan Tekan ctrl x, ketik y dan enter.

Jika kita telah membuat file info.php langkah selanjutnya buka web browser, akses URL
http://192.168.195.147/info.php tekan “Enter”.

Jika semuanya sudah benar, kita akan melihat halaman yang berisi informasi detil tentang
konfigurasi PHP di server kita.

Candra Setiawan, ST, MT – Universitas Indo Global Mandiri


Chapter 14 – Web Server dan Database Server

Instalasi Webmin

Webmin adalah antarmuka berbasis web yang digunakan untuk mengelola dan mengkonfigurasi
server Linux. Dengan Webmin, pengguna dapat melakukan berbagai tugas administratif pada
server melalui browser, tanpa perlu masuk ke dalam terminal atau antarmuka baris perintah.

Fitur utama dari Webmin meliputi:

1. Antarmuka Pengguna yang Mudah: Webmin menyediakan antarmuka grafis yang mudah
digunakan dan intuitif, membuatnya cocok bagi administrator yang tidak terbiasa dengan
perintah baris.

2. Manajemen Pengguna: Kita dapat mengelola akun pengguna, grup, serta hak akses mereka
ke berbagai fitur sistem.

3. Manajemen Layanan: Melalui Webmin, kita dapat mengontrol dan mengelola layanan
server seperti Apache, MySQL, DNS, FTP, SSH, dan banyak lagi.

Candra Setiawan, ST, MT – Universitas Indo Global Mandiri


Chapter 14 – Web Server dan Database Server

4. Konfigurasi Jaringan: Webmin memungkinkan kita mengelola konfigurasi jaringan seperti


alamat IP, DNS, firewall, dan routing.

5. Manajemen Paket: Kita dapat menginstal, menghapus, dan memperbarui paket perangkat
lunak melalui antarmuka Webmin.

6. Manajemen Berkas: Mengelola dan mengedit berkas dan direktori, mengunggah dan
mengunduh berkas melalui browser.

7. Konfigurasi Keamanan: Melalui Webmin, kita dapat mengatur firewall, kebijakan


keamanan, serta mengelola sertifikat SSL.

8. Manajemen Sistem: Mengelola perangkat keras, informasi sistem, log, tugas penjadwalan
(cron jobs), dan lain-lain.

Webmin membantu menyederhanakan tugas administratif pada server Linux, terutama bagi
pengguna yang tidak memiliki pengetahuan mendalam tentang baris perintah. Namun, seiring
dengan penggunaan Webmin, penting untuk memahami konfigurasi yang kita lakukan dan
mengikuti praktik keamanan yang direkomendasikan untuk memastikan server tetap aman dan
stabil.

Download Webmin.

Kita dapat mengunduh dan menginstal Webmin dengan mengikuti langkah-langkah berikut:
wget http://prdownloads.sourceforge.net/webadmin/webmin_2.010_all.deb

Install Dependencies File

Saat menginstal Webmin di server Linux kita, proses instalasi biasanya memerlukan dependensi
yang diperlukan. "Dependencies" (dependensi) adalah perangkat lunak atau komponen lain yang
diperlukan oleh suatu program untuk dapat berfungsi dengan baik. Dalam konteks instalasi
perangkat lunak, "dependencies file" mengacu pada daftar komponen atau perangkat lunak lain
yang diperlukan oleh suatu program tertentu agar dapat dijalankan atau beroperasi dengan benar.

Candra Setiawan, ST, MT – Universitas Indo Global Mandiri


Chapter 14 – Web Server dan Database Server

Ketika Kita menginstal suatu perangkat lunak, terkadang perangkat lunak tersebut membutuhkan
library, paket, atau komponen lain yang tidak terdapat di dalamnya. Dependensi ini harus dipenuhi
agar perangkat lunak yang diinstal dapat berfungsi dengan benar.

Penting untuk memahami dan memenuhi dependensi saat menginstal perangkat lunak, karena
ketidakpenuhan dependensi dapat mengakibatkan masalah dalam menjalankan atau menggunakan
perangkat lunak tersebut.

apt-get install perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl


apt-show-versions python3 unzip shared-mime-info

Install Webmin
Perintah dpkg --install webmin_2.010_all.deb, digunakan untuk menginstal paket Webmin dari
file DEB yang sudah di-download sebelumnya.

dpkg --install webmin_2.010_all.deb

Allow Webmin pada UFW


Untuk mengizinkan akses ke Webmin melalui firewall UFW (Uncomplicated Firewall), kita perlu
membuka port yang digunakan oleh Webmin. Biasanya, Webmin menggunakan port 10000.

ufw allow 10000/tcp

Melihat UFW Status


Verifikasi daftar aturan UFW yang aktif dengan perintah:
ufw status

Maka akan terlihat bahwa port yang kita izinkan sekarang tercantum dalam daftar aturan.

Status: active

To Action From
-- ------ ----
22 ALLOW Anywhere
80 ALLOW Anywhere
10000/tcp ALLOW Anywhere
22 (v6) ALLOW Anywhere (v6)
80 (v6) ALLOW Anywhere (v6)
10000/tcp (v6) ALLOW Anywhere (v6)

Candra Setiawan, ST, MT – Universitas Indo Global Mandiri


Chapter 14 – Web Server dan Database Server

Dengan langkah-langkah di atas, kita telah mengizinkan akses ke Webmin melalui firewall UFW.
Sekarang Kita dapat mengakses Webmin melalui browser dengan mengunjungi alamat
https://192.168.195.147:10000, masukkan username dan password, kemudian login.

Langkah selanjutnya adalah mengakses pengaturan modul pada antarmuka Webmin. Di bawah
ini adalah panduan lebih lanjut untuk langkah-langkah tersebut:

1. Buka Menu Webmin Configuration:


Setelah masuk ke antarmuka Webmin, cari menu "Webmin Configuration" di sidebar atau
daftar menu utama. Klik pada menu tersebut untuk membukanya.

2. Pilih Webmin Modules:


Dalam menu "Webmin Configuration", Kita akan menemukan opsi "Webmin Modules".
Klik opsi ini untuk membuka pengaturan modul.

Dalam "Webmin Modules", kita dapat mengonfigurasi modul-modul yang aktif, menonaktifkan
modul yang tidak diperlukan, dan mengatur preferensi modul sesuai kebutuhan Kita. Modul-modul
ini mewakili berbagai fitur dan layanan yang dapat dikelola melalui antarmuka Webmin.

Candra Setiawan, ST, MT – Universitas Indo Global Mandiri


Chapter 14 – Web Server dan Database Server

Instalasi modul Nginx pada Webmin

1. Pilih Webmin Modules.


2. Tambahkan Modul dari URL.
3. Di halaman "Webmin Modules", kita akan melihat opsi "From FTP or HTTP URL". Pilih
opsi ini.
4. Paste URL Modul Nginx: Paste URL modul Nginx yang diberikan
(https://www.justindhoffman.com/sites/justindhoffman.com/files/nginx-0.11.wbm_.gz) di
bidang yang sesuai.
5. Klik Install Module: Setelah kita memasukkan URL, klik tombol "Install Module" untuk
memulai proses instalasi.

Candra Setiawan, ST, MT – Universitas Indo Global Mandiri


Chapter 14 – Web Server dan Database Server

Langkah selanjutnya adalah mengembalikan pengaturan konfigurasi Webmin setelah menginstal


modul Nginx dan menyegarkan daftar modul. Berikut adalah langkah-langkahnya:

1. Setelah kita menginstal modul Nginx dan mengaktifkannya seperti yang dijelaskan
sebelumnya, cari tombol atau tautan yang bertuliskan "Return to Webmin Configuration"
(Kembali ke Konfigurasi Webmin) pada halaman yang kita sedang berada. Klik tombol ini
untuk kembali ke menu konfigurasi Webmin.

2. Setelah Kita kembali ke menu konfigurasi Webmin, cari opsi yang bertuliskan "Refresh
Modules" (Segarkan Modul) atau serupa. Klik opsi ini untuk menyegarkan daftar modul
dalam antarmuka Webmin.

Dengan melakukan langkah-langkah di atas, kita akan memastikan bahwa perubahan yang Kita
lakukan, seperti instalasi dan pengaktifan modul Nginx, telah diterapkan dengan benar dalam
antarmuka Webmin.

Candra Setiawan, ST, MT – Universitas Indo Global Mandiri


Chapter 14 – Web Server dan Database Server

Kita dapat melanjutkan untuk mengonfigurasi dan mengelola server web Nginx melalui antarmuka
Webmin sesuai dengan kebutuhan kita. Kemudian klik Servers.

Selanjutnya kita akan membuka berkas konfigurasi utama Nginx yang disebut "nginx.conf"
menggunakan editor teks Nano di terminal. Kita akan melakukan pengeditan dan konfigurasi pada
berkas ini. Ikuti langkah-langkah berikut:

1. Buka Terminal di Putty: Buka terminal atau antarmuka baris perintah pada Putty di
komputer Kita.
2. Ketik Perintah untuk Membuka Berkas Nginx Config:
sudo nano /etc/nginx/nginx.conf

3. Ini akan membuka berkas "nginx.conf" dengan editor teks Nano, dan kita dapat melihat
dan mengedit konfigurasi Nginx.

Candra Setiawan, ST, MT – Universitas Indo Global Mandiri


Chapter 14 – Web Server dan Database Server

4. Kita dapat menggunakan tombol panah untuk berpindah ke bagian yang ingin diedit.
Lakukan pengeditan konfigurasi sesuai kebutuhan kita.

Ubah nilai keepalive_timeout menjadi 2

`keepalive_timeout` adalah pengaturan dalam konfigurasi Nginx yang mengontrol berapa lama
koneksi antara server Nginx dan klien harus tetap terbuka setelah suatu respons telah dikirim.
Dalam kata lain, ini mengatur berapa lama koneksi harus "tetap hidup" agar klien dapat
menggunakan kembali koneksi yang sama untuk permintaan berikutnya tanpa harus membuka
koneksi baru.

Tujuan utama dari `keepalive_timeout` adalah untuk meningkatkan efisiensi kinerja server Nginx
dan mengurangi latensi. Ketika koneksi tetap terbuka, klien dapat mengirim permintaan tambahan
melalui koneksi yang sama tanpa harus melakukan negosiasi pembukaan koneksi baru. Hal ini
mengurangi overhead yang terkait dengan membuka dan menutup koneksi secara berulang-ulang.

Pengaturan `keepalive_timeout` mempengaruhi berapa lama server Nginx akan mempertahankan


koneksi terbuka setelah mengirim respons kepada klien. Jika klien mengirim permintaan lain
dalam periode ini, server dapat langsung merespons tanpa harus membuka koneksi baru. Jika tidak
ada permintaan dalam jangka waktu `keepalive_timeout`, koneksi akan ditutup.

keepalive_timeout 2;

Namun, penting untuk memahami bahwa pengaturan yang terlalu lama untuk `keepalive_timeout`
dapat menyebabkan penggunaan sumber daya server yang tidak efisien, terutama jika banyak
koneksi terbuka secara bersamaan. Pengaturan yang terlalu pendek juga dapat mengakibatkan
overhead membuka dan menutup koneksi yang lebih sering.

Pada akhirnya, tujuan dari `keepalive_timeout` adalah untuk menemukan keseimbangan antara
mengurangi latensi dengan menjaga efisiensi penggunaan sumber daya. Nilai yang
direkomendasikan dapat bervariasi tergantung pada karakteristik lalu lintas dan kebutuhan server
kita.

Candra Setiawan, ST, MT – Universitas Indo Global Mandiri


Chapter 14 – Web Server dan Database Server

Restart Nginx
Untuk me-restart layanan Nginx, Kita dapat menggunakan perintah berikut di terminal:
systemctl reload nginx
Setelah menjalankan perintah ini, layanan Nginx akan dihentikan dan kemudian dijalankan
kembali dengan pengaturan yang diperbarui. Ini memungkinkan perubahan konfigurasi terbaru
diterapkan dan berlaku pada server Nginx.

Membuat Halaman Web

Sebelum membuat halaman web, kita perlu lagi mengakses DNS Server yang sudah dibuat pada
materi sebelumnya guna adalah menambahkan A Record pada DNS Server. Akses pengaturan
zona di DNS Server dan tambahkan entri A Record untuk domain `www.uigm.local`. Berikut
adalah langkah-langkah umumnya:

Buka berkas konfigurasi zona untuk domain uigm.local di server DNS Kita. Biasanya, berkas ini
dapat ditemukan di direktori /var/lib/bind/ atau lokasi yang sesuai tergantung pada distribusi Linux
yang kita gunakan.

nano /var/lib/bind/uigm.local.hosts

Tambahkan A Record

Dalam berkas konfigurasi zona, tambahkan baris berikut untuk menambahkan A Record. Di sini,
www adalah subdomain yang ingin kita arahkan ke alamat IP 192.168.195.147.

$ttl 3600
uigm.local. IN SOA ns1.uigm. local. root.uigm. local. (
1570947547
10800
3600
604800
38400 )
uigm.local. IN NS ns1.uigm.local.
ns1.uigm.local. IN A 192.168.195.141
sk.uigm.local. IN A 192.168.195.141
himaster.uigm.local. IN CNAME sk.uigm.local.
www.uigm.local. IN A 192.168.195.147

Candra Setiawan, ST, MT – Universitas Indo Global Mandiri


Chapter 14 – Web Server dan Database Server

Restart BIND
Setelah menambahkan entri A Record, simpan perubahan yang telah Kita buat pada berkas
konfigurasi zona. Restart layanan DNS Server (BIND) agar perubahan yang kita buat diterapkan:

/etc/init.d/bind9 restart

Membuat Virtual Host


Virtual Host adalah konsep dalam pengaturan server web yang memungkinkan satu server fisik
menjadi host beberapa situs web atau aplikasi web yang berbeda secara bersamaan.

Secara umum, virtual host adalah cara untuk memanfaatkan sumber daya server secara efisien dan
menyediakan hosting multi-situs dengan menggunakan satu server fisik.

Untuk membuat Virtual Host pada Nginx, kita perlu membuat konfigurasi tambahan untuk setiap
situs web yang ingin Kita layani.

Kembali ke web server yang sudah kita buat, berikut adalah langkah-langkah selanjutnya:

Buat file konfigurasi virtual host.

nano /etc/nginx/sites-available/www.uigm.local

Contoh konfigurasi dasar bisa terlihat seperti ini:

server {
listen 80;
listen [::]:80;
root /var/www/html/www.uigm.local;

index index.php index.html index.htm index.nginx-debian.html;

server_name www.uigm.local;

location / {
try_files $uri $uri/ =404;
}

Candra Setiawan, ST, MT – Universitas Indo Global Mandiri


Chapter 14 – Web Server dan Database Server

location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
1. Tambahkan konfigurasi untuk virtual host.
2. Setelah Kita selesai mengedit konfigurasi virtual host, tekan `Ctrl + O` untuk menyimpan
perubahan, lalu tekan `Ctrl + X` untuk keluar dari editor Nano.
3. Buat tautan simbolis dari berkas konfigurasi yang Kita buat ke direktori `sites-enabled`
dengan perintah:
sudo ln -s /etc/nginx/sites-available/www.uigm.local /etc/nginx/sites-enabled/

4. Verifikasi apakah konfigurasi kita memiliki kesalahan sintaks dengan perintah:


sudo nginx -t

5. Setelah konfigurasi divalidasi, restart layanan Nginx untuk menerapkan perubahan:


sudo service nginx restart

Dengan langkah-langkah ini, kita telah berhasil membuat virtual host pada server Nginx. Setiap
virtual host dapat memiliki konfigurasi yang berbeda, memungkinkan kita untuk menyajikan
beberapa situs web dari satu server menggunakan nama domain yang berbeda.

Candra Setiawan, ST, MT – Universitas Indo Global Mandiri


Chapter 14 – Web Server dan Database Server

Buka Webmin dan pastikan virtual host yang dibuat sudah ada pada dashboard. Klik Apply
Changes.

Download Free CMS Wordpress

Pada komputer kita buka web browser dan buka halaman web https://id.wordpress.org/download/,
Kemudian copy link download https://id.wordpress.org/latest-id_ID.zip

Pada putty, masuk ke folder /var/www/html

cd /var/www/html

Download Wordpress dengan perintah wget.

wget https://id.wordpress.org/latest-id_ID.zip

Setelah download selesai, extract file latest.zip dengan perintah unzip.

unzip latest-id_ID.zip

Jalankan perintah ls –la untuk menampilkan daftar file dan folder dalam suatu direktori.

ls –la

drwxr-xr-x 4 root root 4096 Oct 24 03:28 .

Candra Setiawan, ST, MT – Universitas Indo Global Mandiri


Chapter 14 – Web Server dan Database Server

drwxr-xr-x 15 root root 4096 Oct 15 00:18 ..


-rw-r--r-- 1 root root 12112743 Oct 15 03:38 latest-id_ID.zip
drwxr-xr-x 5 root root 4096 Oct 14 20:37 wordpress

Rename folder Wordpress menjadi www.uigm.local dengan perintah mv.

mv wordpress www.uigm.local

Ubah permission folder www.uigm.local dengan owner www-data dan group www-data.

chown -R www-data www.uigm.local


chgrp -R www-data www.uigm.local

Restart Nginx

systemctl reload nginx

Candra Setiawan, ST, MT – Universitas Indo Global Mandiri


Chapter 14 – Web Server dan Database Server

Kembali ke Webmin, pilih MySQL Database Server, pada bagian MySQL Databases, klik Create
New Database, buat nama database dengan wwwuigmlocal, kemudian klik Create.

Pada bagian Global Options, klik User Permissions, klik Create New User. Buat Username
dengan nama yang kita inginkan misal: useruigmlocal, password 123456, dan untuk Hosts
ketikkan localhost, klik Create. setelah kembali ke halaman User Permissions kemudian klik
Return to database list.

Candra Setiawan, ST, MT – Universitas Indo Global Mandiri


Chapter 14 – Web Server dan Database Server

Masih pada Global Options, klik Database Permissions, klik Create New Database Permissions.
Pada databases centang Selected dan pilih iftedc, pada Username ketik adminiftedc, dan pada
Hosts ketik localhost. Untuk Permission, sambil menekan tombol shift, pilih semua permissions.
Klik Create, kemudian klik Return to database list.

Candra Setiawan, ST, MT – Universitas Indo Global Mandiri


Chapter 14 – Web Server dan Database Server

Jalankan Virtual Machine Windows XP, setting IP dengan:

Pada Windows XP, buka web browser ketik http://www.uigm.local, pilih bahasa Indonesia, klik
lanjutkan.

Masukkan nama basis Data, nama pengguna, kata sandi yang telah dibuat pada Webmin. Host dan
Prefix biarkan secara default. Ikuti langkah selanjutnya.

Candra Setiawan, ST, MT – Universitas Indo Global Mandiri


Chapter 14 – Web Server dan Database Server

Buat Judul Situs, Nama Pengguna, sandi, dan email. Nama pengguna dan sandi disini digunakan
untuk login ke dasbor web.

Candra Setiawan, ST, MT – Universitas Indo Global Mandiri


Chapter 14 – Web Server dan Database Server

Klik Log Masuk, untuk login ke dasbor pertama kali.

Masukkan nama pengguna dan sandi yang dibuat tadi

Candra Setiawan, ST, MT – Universitas Indo Global Mandiri


Chapter 14 – Web Server dan Database Server

Masuk ke Dashboard

Untuk memperindah tampilan web, klik Sesuaikan Situs Kita. Lakukan kustomisasi dengan
theme yang ada. Setelah selesai, logout dari dasbor.

Candra Setiawan, ST, MT – Universitas Indo Global Mandiri


Chapter 14 – Web Server dan Database Server

Inilah tampilan web yang sudah dibuat. Untuk mengisi konten, bisa dilakukan pada dasbor.

Candra Setiawan, ST, MT – Universitas Indo Global Mandiri

Anda mungkin juga menyukai