# **PRAKTIKUM 9**

## **WEB DAN DATABASE SERVER**

Web Server termasuk salah satu layanan SERVER yang paling popular. Karena lewat web server tersebut, website kita dapat diakses oleh seluruh pengunjung dari Internet. Dalam keadaan default, web server berjalan pada protocol HTTP melalui port 80. Pada buku ini kita akan membuat web server menggunakan aplikasi Apache.

Dalam perancangan Web Server, kita harus mengetahui terlebih dahulu persyaratan (Dependensi) dari website yang akan kita buat. Misalnya, website tersebut membutuhkan bahasa HTML saja, atau PHP6, PHP7 atau PHP8, atau juga MySQL Database sebagai media penyimpanan datanya. Kita asumsikan saja, akan menggunakan Content Management System (CMS) gratisan dari Internet, semisal Wordpress, Joomla atau Druppal.

**PERSIAPAN PRAKTIKUM**

- Laptop/PC dengan Sistem Operasi Debian
- Wajib menyelesaikan Praktikum 4
- Aplikasi web server Apache2, NGINX atau Speedlite
- Database Server dengan Mysql/MariaDB
- Database managemen dengan PhpMyadmin
- Tutorial online

https://youtu.be/nF93_h-9PH8?si=PTmp0uVFj2kos8Jx

### **1. Install Aplikasi Web Server (Apache), Database Server (mariadb), PHP dan phpMyAdmin**
>>> Install Aplikasi
```bash
apt-get install apache2 mariadb-server php phpmyadmin
```
>>> Pilih Apache dengan cara menekan spasi, konfigurasi ini agar supaya phpMyAdmin akan otomatis di seting dengan Apache2

![](./webserver/image_001.png)

>>> Pilih **Yes**

![](./webserver/image_002.png)

>>> Isikan Password

![](./webserver/image_003.png)

>>> Ulangi kembali Password

![](./webserver/image_004.png)
>>>

### **2. Akses Web Server dan phpMyAdmin**
>>> Buka browser dan ketikkan url http://domain serta http://domain/phpmyadmin

Akses web dengan menggunakan domain <http://tjkt.com>

![](./webserver/image_005.png)

Akses phpMyAdmin dengan domain <http://tjkt.com/phpmyadmin>

![](./webserver/image_006.png)
>>>

### **3. Membuat dan mengamankan Database**
>>> Secure mariadb
```bash
mariadb-secure-installation
```
![](./webserver/image_007.png)

![](./webserver/image_008.png)

>>> Membuat Database

Login kedalam aplikasi, lalu buat Database dan User yang digunakan nantinya untuk setup aplikasi website kita (dalam praktek kali ini menggunakan wordpress)
```bash
mysql -u root -p
```
![](./webserver/image_009.png)
```bash
MariaDB [(none)]> CREATE DATABASE wordpress;
MariaDB [(none)]> GRANT ALL ON wordpress.* TO tjkt@'localhost' IDENTIFIED BY '123456' WITH GRANT OPTION;
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit;
```
Deretan baris perintah itu akan menghasilkan 1 database baru dengan nama **wordpress**, kemudian memberikan hak akses full kepada user dengan nama **tjkt** serta password **123456**, silahkan sesuaikan untuk penamaannya

>>> Akses browser untuk mengakses phpMyAdmin, gunakan akses user dan password yang telah dibuat sebelumnya.

![](./webserver/image_010.png)

![](./webserver/image_011.png)
>>>

### **4. Perintah start, restart, reload, stop service**

**Perintah pendukung Apache**
```bash
systemctl start apache2         
systemctl restart apache2
systemctl stop apache2
systemctl reload apache2
```

**Perintah pendukung mariadb**
```bash
systemctl start mariadb
systemctl restart mariadb
systemctl stop mariadb
systemctl reload mariadb
```

### **5. Konfigurasi Virtual Host dan Sub Domain**

Virtual Host ini akan mewakili konfigurasi untuk setiap website yang akan kita buat, baik itu domain utama maupun sub domain. Langkah yang paling mudah adalah dengan cara copy saja file default yang ada, dan membuat konfigurasi Virtual Host yang baru untuk website kita.

>>> Copy File default virtual host

**Ubah direktori kerja anda ke folder sites-available**
```bash
cd /etc/apache2/sites-available/
```
>>> Copy kan file default dari virtual host yang sudah ada lalu sesuaikan nama dengan yang kita inginkan
```bash
cp 000-default.conf web1.conf
```
![](./webserver/image_012.png)

>>> Edit konfigurasi file yang sudah di copy tadi
```bash
pico web1.conf
```
konfigurasi awal

![](./webserver/image_013.png)

Sesuaikan menjadi

![](./webserver/image_014.png)

!!! **Note**
**ServerName web1.tjkt.com #Silahkan disesuaikan dengan domain masing-masing**

**ServerAlias** [**www.web1.tjkt.com**](http://www.web1.tjkt.com) **#Silahkan disesuaikan dengan domain masing-masing**

**ServerAdmin nama****@tjkt.com** **#Silahkan disesuaikan dengan email masing-masing**

**DocumentRoot /var/www/web1 #Folder untuk source code werbsite yang akan kita buat**
!!!
>>>

### **6. Mengaktifkan dan Nonaktifkan VirtualHost**
>>> Disable VirtualHost default yang sudah ada
```bash
a2dissite namaVirtualHost
```
>>> Aktifkan VirtualHost untuk website utama kita.
```bash
a2ensite web1.conf
```

![](./webserver/image_015.png)
>>>

### **7. Konfigurasi Web Direktori**
>>> Ubah direktori kerja Anda
```bash
cd /var/www/
```

>>> Buat direktori sesuai dengan nama yang ada dalam konfigurasi virtual host
```bash
mkdir web1
```
>>> Ubah direktori kerja ke folder yang telah di buat
```bash
cd /var/www/web1
```

Sehingga menjadi tampil seperti ini

![](./webserver/image_016.png)
>>>
