# 05. Pointing Domain dan Sub Domain ke VPS Linux Ubuntu dan Membuat Nginx VirtualHost

### Pointing Domain DNS A Record ke IP VPS

Login ke DNS Manajemen domain anda, jika di cloudflare login ke cloudflare dan klik menu records, tambahkan domain dan subdomain dengan record "A" dan matikan dns proxy untuk langsung mengarahkan ke VPS

[![Screenshot 2023-10-19 at 02.30.09.png](https://book.najamudinridha.com/uploads/images/gallery/2023-10/scaled-1680-/BcGscreenshot-2023-10-19-at-02-30-09.png)](https://book.najamudinridha.com/uploads/images/gallery/2023-10/BcGscreenshot-2023-10-19-at-02-30-09.png)

lakukan pengecekan berkala setelah merubah record pada DNS, dengan perintah ping seperti berikut ini :

[![Screenshot 2023-10-19 at 02.31.05.png](https://book.najamudinridha.com/uploads/images/gallery/2023-10/scaled-1680-/screenshot-2023-10-19-at-02-31-05.png)](https://book.najamudinridha.com/uploads/images/gallery/2023-10/screenshot-2023-10-19-at-02-31-05.png)

Jika ip sudah mengarah ke VPS, coba akses domain secara langsung, jika web server default aktif, akan tampil seperti berikut ini

[![Screenshot 2023-10-19 at 02.31.17.png](https://book.najamudinridha.com/uploads/images/gallery/2023-10/scaled-1680-/screenshot-2023-10-19-at-02-31-17.png)](https://book.najamudinridha.com/uploads/images/gallery/2023-10/screenshot-2023-10-19-at-02-31-17.png)

### Membuat Nginx VirtualHost Idrive.id

untuk membuat nginx virtualhost, login ssh terlebih dahulu ke VPS

[![Screenshot 2023-10-19 at 02.31.42.png](https://book.najamudinridha.com/uploads/images/gallery/2023-10/scaled-1680-/screenshot-2023-10-19-at-02-31-42.png)](https://book.najamudinridha.com/uploads/images/gallery/2023-10/screenshot-2023-10-19-at-02-31-42.png)

kemudian pindah ke direktori sites-available di nginx dengan perintah

```bash
cd /etc/nginx/sites-available
```

[![Screenshot 2023-10-19 at 02.32.18.png](https://book.najamudinridha.com/uploads/images/gallery/2023-10/scaled-1680-/screenshot-2023-10-19-at-02-32-18.png)](https://book.najamudinridha.com/uploads/images/gallery/2023-10/screenshot-2023-10-19-at-02-32-18.png)

copy file virtualhost default nginx ke idrive.id dengan perintah berikut :

```bash
sudo cp default idrive.id
```

sesuaikan nama virtualhost dengan nama domain anda

[![Screenshot 2023-10-19 at 02.33.25.png](https://book.najamudinridha.com/uploads/images/gallery/2023-10/scaled-1680-/screenshot-2023-10-19-at-02-33-25.png)](https://book.najamudinridha.com/uploads/images/gallery/2023-10/screenshot-2023-10-19-at-02-33-25.png)

dan edit konfigurasi virtualhost dengan perintah nano

[![Screenshot 2023-10-19 at 02.33.39.png](https://book.najamudinridha.com/uploads/images/gallery/2023-10/scaled-1680-/screenshot-2023-10-19-at-02-33-39.png)](https://book.najamudinridha.com/uploads/images/gallery/2023-10/screenshot-2023-10-19-at-02-33-39.png)

sesuaikan konfigurasi seperti berikut ini :

```nginx
server {
        listen 80;
        listen [::]:80;

        root /var/www/idrive;

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

        server_name idrive.id www.idrive.id;

        location / {
                try_files $uri $uri/ /index.php?$query_string;
        }

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/run/php/php7.4-fpm.sock;
        }
}
```

simpan dan exit editor

[![Screenshot 2023-10-19 at 02.36.59.png](https://book.najamudinridha.com/uploads/images/gallery/2023-10/scaled-1680-/screenshot-2023-10-19-at-02-36-59.png)](https://book.najamudinridha.com/uploads/images/gallery/2023-10/screenshot-2023-10-19-at-02-36-59.png)

kemudian buat symlink virtualhost idrive.id ke sites-enabled agar virtualhost aktif dengan perintah berikut :

```bash
# buat symlink
sudo ln -s /etc/nginx/sites-available/idrive.id /etc/nginx/sites-enabled/

# cek hasil symlink
ls -lsha /etc/nginx/sites-enabled/
```

setelah symlink dibuat, cek hasilnya dan coba cek nginx config apakah ada pesan kesalahan atau tidak

[![Screenshot 2023-10-19 at 02.37.37.png](https://book.najamudinridha.com/uploads/images/gallery/2023-10/scaled-1680-/screenshot-2023-10-19-at-02-37-37.png)](https://book.najamudinridha.com/uploads/images/gallery/2023-10/screenshot-2023-10-19-at-02-37-37.png)

setelah symlink sukses, cek nginx config untuk virtualhost untuk memastikan tidak ada config yang salah

```bash
# cek nginx config
sudo nginx -t
```

[![Screenshot 2023-10-19 at 02.37.50.png](https://book.najamudinridha.com/uploads/images/gallery/2023-10/scaled-1680-/screenshot-2023-10-19-at-02-37-50.png)](https://book.najamudinridha.com/uploads/images/gallery/2023-10/screenshot-2023-10-19-at-02-37-50.png)

Buat folder sesuai dengan root direktori yang kita setting pada nginx virtualhost, buat folder idrive pada folder /var/www

```bash
# pindah ke direktori 
cd /var/www

# buat folder idrive
sudo mkdir idrive
```

[![Screenshot 2023-10-19 at 02.38.09.png](https://book.najamudinridha.com/uploads/images/gallery/2023-10/scaled-1680-/screenshot-2023-10-19-at-02-38-09.png)](https://book.najamudinridha.com/uploads/images/gallery/2023-10/screenshot-2023-10-19-at-02-38-09.png)

### Membuat Nginx VirtualHost jurnal.idrive.id

untuk membuat virtualhost subdomain jurnal.idrive.id, pindah ke direktori sites-available dan copy config dari virtualhost idrive dengan perintah berikut :

```bash
# pindah ke sites available nginx
cd /etc/nginx/sites-available/

# copy idrive.id virtualhost ke virtualhost jurnal.idrive.id
sudo cp idrive.id jurnal.idrive.id

# edit virtualhost
sudo nano jurnal.idrive.id
```

[![Screenshot 2023-10-19 at 02.41.05.png](https://book.najamudinridha.com/uploads/images/gallery/2023-10/scaled-1680-/screenshot-2023-10-19-at-02-41-05.png)](https://book.najamudinridha.com/uploads/images/gallery/2023-10/screenshot-2023-10-19-at-02-41-05.png)

edit dengan config berikut :

```nginx
server {
        listen 80;
        listen [::]:80;

        root /var/www/jurnal;

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

        server_name jurnal.idrive.id www.jurnal.idrive.id;

        location / {
                try_files $uri $uri/ /index.php?$query_string;
        }

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/run/php/php8.1-fpm.sock;
        }
}
```

kemudian buat symlink seperti sebelumnya ke sites-enabled

```bash
sudo ln -s /etc/nginx/sites-available/jurnal.idrive.id /etc/nginx/sites-enabled/
```

[![Screenshot 2023-10-19 at 02.41.58.png](https://book.najamudinridha.com/uploads/images/gallery/2023-10/scaled-1680-/screenshot-2023-10-19-at-02-41-58.png)](https://book.najamudinridha.com/uploads/images/gallery/2023-10/screenshot-2023-10-19-at-02-41-58.png)

jalankan kembali nginx config test

```bash
sudo nginx -t
```

[![Screenshot 2023-10-19 at 02.42.05.png](https://book.najamudinridha.com/uploads/images/gallery/2023-10/scaled-1680-/screenshot-2023-10-19-at-02-42-05.png)](https://book.najamudinridha.com/uploads/images/gallery/2023-10/screenshot-2023-10-19-at-02-42-05.png)

### Idrive.id dengan PHP 7.4

akses domain idrive.id akan menampilkan informasi web menggunakan php7.4-fpm sesuai dengan nginx config

[![Screenshot 2023-10-19 at 02.43.14.png](https://book.najamudinridha.com/uploads/images/gallery/2023-10/scaled-1680-/screenshot-2023-10-19-at-02-43-14.png)](https://book.najamudinridha.com/uploads/images/gallery/2023-10/screenshot-2023-10-19-at-02-43-14.png)

### Jurnal.idrive.id dengan PHP 8.1

akses sub domain jurnal.idrive.id akan menampilkan informasi web menggunakan php8.1-fpm sesuai dengan nginx config

[![Screenshot 2023-10-19 at 02.44.16.png](https://book.najamudinridha.com/uploads/images/gallery/2023-10/scaled-1680-/screenshot-2023-10-19-at-02-44-16.png)](https://book.najamudinridha.com/uploads/images/gallery/2023-10/screenshot-2023-10-19-at-02-44-16.png)

<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" frameborder="0" src="https://www.youtube.com/embed/98uZ7zjpG7Y?si=mgpbvy9umVNmCFZ-" style="width: 100%; aspect-ratio: 16/10;" title="YouTube video player"></iframe>