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 16.04
- Webmin
C. Indikator Pencapaian
Teori
Pengertian Umum
Web server
Web server adalah sebuah aplikasi yang berada pada server yang memberikan layanan berbasis data
dengan protokol HTTP atau HTTPS. Layanan pada web server diakses dengan web browser seperti
Mozilla Firefox, Google Chrome, Opera, Internet Explorer dan lain-lain. Berkas data yang dikirim web
server ke pengguna secara umum berbentuk dokumen HTML. Berkas pada suatu halaman web bisa
terdiri dari teks, video, gambar, file dan lain-lain. Aplikasi web server yang banyak digunakan adalah:
Apache
Nginx
Internet Information Services (IIS)
Caddy
Lighttpd.
Database Server adalah sebuah aplikasi pada server yang melakukan pengelolaan, penyimpanan konten
informasi dan penyediaan layanan basis data dengan model client-server. Macam-macam aplikasi
database antara lain:
JSON
XML
MySQL
MongoDB
MariaDB
Postgre SQL
Oracle Database
SAP HANA
MemSQL
IBM Db2
Firebird
Interbase
Database Warehouse (DW atau DWH)
Microsoft SQL Server
Microsoft (Office) Access
SQLite
PHP
PHP merupakan scripting language atau bahasa pemrograman yang berjalan pada sisi server yang
digunakan untuk pengembangan halaman web. Dengan menggunakan PHP kita bisa membangun
aplikasi web yang bersifat dinamis dibandingkan menggunakan kode HTML biasa yang bersifat statis.
Paket perangkat lunak berbasis open source yang populer dalam membangun layanan web antara lain:
1. LAMP
LAMP adalah istilah yang merupakan singkatan dari Linux, Apache, MySQL/MariaDB, dan PHP.
Merupakan sebuah paket perangkat lunak berbasis open source yang bebas digunakan dalam
menjalankan aplikasi web secara lengkap.
2. LEMP
LEMP adalah paket aplikasi yang digunakan untuk menjalankan web server sama halnya seperti
LAMP. Perbedaannya LEMP menggunakan EngineX (Nginx), sedangkan LAMP menggunakan Apache
sebagai web server. LEMP merupakan singkatan dari Linux, Nginx, MySQL/MariaDB, PHP.
Nginx merupakan aplikasi web server berbasis open source yang memiliki kelebihan sendiri
dibandingkan Apache, karena Nginx lebih unggul dalam performa dan efisiensi penggunaan memori.
Skenario Praktikum
Catatan Pendahuluan
Skenario Praktikum ini ada hubungan dengan materi sebelumnya, yaitu Instalasi Linux Ubuntu dan DNS
Server.
Setelah selesai instalasi Linux Ubuntu Server, selanjutnya kita masuk ke console CLI pada Virtual Machine
untuk akan melihat IP Address pada server. Ketikkan perintah:
ifconfig –a
sudo su
Mengubah IP Address
nano /etc/network/interfaces
Berikan IP Address pada server sesuai dengan alamat yang dipakai pada jaringan kita, contoh:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
Lakukan ping ke google.com untuk memeriksa apakah server kita bisa terhubung ke internet.
ping google.com
Kemudian konfigurasi server dengan Putty. Buka Putty pada komputer, masukkan IP Address
192.168.1.103, dan pilih port 22, klik open. Jika muncul Putty Security Alert pilih Yes. Masukkan
username dan password.
sudo su
apt-get update
Edit hostname
nano /etc/hosts
127.0.0.1 localhost
192.168.1.103 svr svr.tedc.com
Editing Resolver
nano /etc/resolv.conf
Konfigurasi Firewall
Uncomplicated Firewall (UFW) adalah sebuah interface firewall di sistem operasi berbasis Linux. Dengan
UFW, konfigurasi firewall yang cukup rumit bisa lebih disederhanakan sehingga memudahkan sistem
administrator dalam mengelola firewall. Dianjurkan untuk mengaktifkan firewall pada server.
Tambahkan port layanan SSH dan HTTP ke konfigurasi firewall. Jalankan perintah UFW seperti di bawah
ini:
ufw allow ssh
ufw allow http
Start firewall UFW dan enable agar firewall tetap aktif walaupun sistem di reboot.
ufw enable
Buka web browser, ketik http://192.168.1.103, jika muncul tulisan Welcome to nginx! Berarti Nginx
sudah terinstal dan berjalan dengan baik.
Berikan password untuk root, ulangi dengan password yang sama (password yang diberikan harap
diingat dengan baik).
Setelah instalasi MySQL selesai, start layanan MySQL dan enable agar MySQL tetap aktif walaupun
server di restart/reboot.
systemctl start mysql
systemctl enable mysql
Instalasi PHP-FPM
apt-get install php-fpm php-mysql
Edit php.ini
nano /etc/php/7.0/fpm/php.ini
Setelah file terbuka, tekan ctrl w dan ketik cgi.fix_pathinfo. Hapus tanda semi-colon (;) dan ubah nilai 1
menjadi 0
cgi.fix_pathinfo=0
Restart php7
systemctl restart php7.0-fpm
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
server_name 192.168.1.103;
location / {
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
Restart Nginx.
systemctl reload nginx
Instalasi Webmin
Download Webmin.
wget https://prdownloads.sourceforge.net/webadmin/webmin_1.930_all.deb
Install Webmin.
dpkg --install webmin_1.930_all.deb
ufw status
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)
Pada Webmin Modules centang From HTTP or FTP URL, dan paste link tersebut. Klik Install Module.
Ubah nilai keepalive_timeout menjadi 2. Keepalive_timeout adalah batas waktu sesi koneksi server
dengan klien dalam satuan detik. Nginx akan menutup sesi koneksi dengan klien setelah periode waktu
ini.
keepalive_timeout 2;
Jika sesi koneksi tidak dibatasi dan terjadi akses secara konkuren dengan jumlah akses yang banyak
maka akan menghabiskan resource memory pada server.
Restart Nginx.
Setelah berhasil masuk, maka akan terlihat daftar database yang ada secara default.
Sebelum membuat halaman web, tambahkan A Record pada ns1.tedc.com (DNS Server) domain
if.tedc.com dengan IP Address 192.168.1.103.
nano /var/lib/bind/tedc.com.hosts
$ttl 3600
tedc.com. IN SOA ns1.tedc.com. root.tedc.com. (
1570947547
10800
3600
604800
38400 )
tedc.com. IN NS ns1.tedc.com.
ns1.tedc.com. IN A 192.168.1.102
if.tedc.com. IN A 192.168.1.103
informatika.tedc.com. IN CNAME if.tedc.com.
svr.tedc.com. IN A 192.168.1.103
Restart BIND.
/etc/init.d/bind9 restart
Pada svr.tedc.com
nano /etc/nginx/sites-available/if
server {
listen 80;
listen [::]:80;
root /var/www/if.tedc.com;
server_name if.tedc.com;
location / {
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
location ~ /\.ht {
deny all;
}
Pada komputer kita buka web browser dan buka halaman web https://id.wordpress.org/download/,
Kemudian copy link download https://wordpress.org/latest.zip
cd /var/www
wget https://wordpress.org/latest.zip
unzip latest.zip
Jalankan perintah ls –la untuk menampilkan daftar file dan folder dalam suatu direktori.
ls -la
mv wordpress if.tedc.com
Ubah permission folder if.tedc.com dengan owner www-data dan group www-data.
Restart Nginx.
Pada bagian Global Options, klik User Permissions, klik Create New User. Buat Username dengan nama
yang kita inginkan misal adminiftedc, password if@tedc, dan untuk Hosts ketikkan localhost, klik Create.
setelah kembali ke halaman User Permissions kemudian klik Return to database list.
Buka web browser ketik http://if.tedc.com, pilih bahasa Indonesia, klik lanjutkan.
Buat Judul Situs, Nama Pengguna, sandi, dan email. Nama pengguna dan sandi disini digunakan untuk
login ke dasbor web.