Untuk dapat mengikuti tutorial kali ini, kalian harus sudah mengkonfigurasi dasar debian seperti ip address dan juga DNS Server. Jika kalian sudah mengkonfigurasinya, silahkan baca sampai selesai ya :3
Oke, menurut tabel diatas, kita diminta untuk membuat user dengan nama student sebanyak 50 dengan password vsc39, kemudian masing-masing user memiliki home direktori di /data/www/student[1–50], semua user tersebut di gabungkan kedalam group VSCITNSA dan kita juga diminta membuat website masing-masing user . dan ketika membuka website masing-masing user contohnya student2.nsaapps.id maka akan muncul kalimat :
Welcome To student2 Website
Bagaimana cara membuatnya?
Pertama-tama kalian harus sudah mengkonfigurasi dasar Debian dan juga DNS Server
Untuk tambahan, disini IP Address DNS Server adalah 192.1.8.1/24
Jika sudah, login debian sebagai root user kemudian lanjut baca hingga selesai ya, wkwk
1. Install & Konfigurasi NGINX Web Server
Seperti instalasi package lain, kita dapat menginstall NGINX Server dengan mengetikkan perintah
apt-get install nginx
Jika sudah, sekarang kita akan masuk ke direktori /etc/nginx/sites-available/
cd /etc/nginx/sites-available
Secara otomatis, terdapat satu file di direktori tersebut yaitu default, kita dapat melihatnya dengan mengetikkan perintah
ls
Kalian dapat membuka file default tersebut menggunakan nano dengan mengetikkan perintah
nano default
Kalian akan melihat banyak kalimat-kalimat didalamnya, namun secara fungsi hanya beberapa bagian saja yang berjalan. selebihnya adalah komentar.
File yang benar-benar berjalan ( bukan komentar ) tersebut jika disatukan akan terlihat seperti ini
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name _;
location / {
try_files $uri $uri/ =404;
}
}
Selanjutnya kita hapus default_server pada file diatas sehingga menjadi seperti ini
server {
listen 80;
listen [::]:80;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name _;
location / {
try_files $uri $uri/ =404;
}
}
Lalu kita ubah lagi beberapa konfigurasi sehingga terlihat seperti ini
server {
listen 80;
listen [::]:80;
root /data/www/student;
index index.php;
server_name student.nsaapps.id;
location / {
try_files $uri $uri/ =404;
}
}
Oke, saya akan menjelaskan maksud dari perubahan di file tersebut
root /data/www/student;
Ini merupakan lokasi file-file web kita disimpan nantinya.
Kenapa menggunakan student? karena nantinya akan kita replace semua kata student dengan student[1–50] menggunakan bash script.index index.php;
Bertujuan agar ketika web server dinyalakan, web server akan mencari file index, yakni index.php.server_name student.nsaapps.id;
Ini merupakan url web kita nantinya.
kenapa menggunakan student? sama seperti yang saya tulis sebelumnya, yaitu untuk di replace nantinya menjadi student[1–50].
Jika sudah, silahkan save dan keluar dengan cara menekan tombol kombinasi CTRL + X kemudian Y dan ENTER.
Selanjutnya kita akan membuat konfigurasi agar service php dapat berjalan.
silahkan cari baris ini
Lalu ubah menjadi seperti ini
Disitu kita menghapus beberapa komentar ( tanda # ) kemudian mengubah port dari 9000 menjadi 9898
Silahkan save dan keluar dengan cara menekan tombol kombinasi CTRL + X kemudian Y dan ENTER.
2. Membuat Bash Script
Pasti akan sangat repot dan memakan banyak waktu apabila membuat 50 user dengan konfigurasi subdomain user yang berbeda-beda. Oleh karena itu, kita dapat memanfaatkan Bash Script untuk melakukan looping agar memudahkan kita dalam membuat konfigurasi tersebut .
Buat file dengan nama bashsc.sh di direktori /etc/ agar memudahkan kita untuk menjalankan bash script nantinya.
cd /etc/
touch bashsc.sh
Kemudian edit file tersebut menggunakan nano
nano bashsc.sh
Seharusnya file tersebut kosong karena memang kita belum memasukkan sesuatu kedalam file tersebut.
Isi file tersebut dengan
groupadd VSCITNSA
Perintah di atas ketika dijalankan maka akan membuat group baru dengan nama VSCITNSA.
Kemudian kita buat looping nya seperti ini
for (( i=1; i<=50; i++ ))
Jika di terjemahkan ke bahasa manusia, looping tersebut sama seperti
Hai bash script, coba kamu buat i yang bernilai 1 kurang dari sama dengan 50 dan akan terus bertambah sampai mencapai nilai 50.
Sehingga nilai i sekarang adalah angka 1–50 itu sendiri
Kemudian setelah membuat looping, kita membuat perintah-perintah dengan looping tersebut. Yang artinya perintah-perintah ini nantinya akan terus diulang sebanyak 50 kali dengan menambahkan perintah
do
Sehingga sekarang struktur bashsc.sh seperti ini
groupadd VSCITNSA
for (( i=1; i<=50; i++ ))
do
Oke, sekarang kalian dapat membuat perintah-perintah yang akan di looping sampai 50 tersebut dibawah perintah do.
Konfigurasi student[1–50]
Kita akan membuat looping untuk membuat direktori student; useradd atau menambahkan user student; password dan memasukkan user student kedalam group VSCITNSA dengan perintah
# Looping Konfigurasi User
mkdir -p /data/www/student$i
useradd student$i -d /data/www/student$i -s /bin/bash
passwd student$i <<< "vsc39"$'\n'"vsc39"
usermod -a -G VSCITNSA student$i
Sehingga sekarang isi file bashsc.sh menjadi
groupadd VSCITNSA for (( i=1; i<=50; i++ )) do# Looping Konfigurasi User mkdir -p /data/www/student$i useradd student$i -d /data/www/student$i -s /bin/bash passwd student$i <<< "vsc39"$'\n'"vsc39" usermod -a -G VSCITNSA student$i
Sedikit penjelasan tentang konfigurasi diatas
$i
$i ini memiliki nilai 1 sampai 50 yang didapatkan dari hasil looping.mkdir -p /data/www/student$i
Konfigurasi ini memiliki fungsi untuk membuat direktori baru yaitu student$i dimana folder baru ini berada didalanm direktori /data/www/useradd student$i -d /data/www/student$i -s /bin/bash
Konfigurasi ini berfungsi untuk membuat user dengan nama student$i dan direktori atau home nya di konfigurasikan ke /data/www/student$ipasswd student$i <<< “vsc39″$’\n'”vsc39”
Konfigurasi ini berfungsi untuk membuat password vsc39 untuk user student$iusermod -a -G VSCITNSA student$i
Konfigurasi ini berfungsi untuk memasukkan user student$i kedalam group VSCITNSA
Konfigurasi NGINX Server untuk subdomain student[1–50]
Sekarang kita akan mengkonfigurasi NGINX Server agar nantinya ketika membuka ( contoh ) student6.nsaapps.id akan menampilkan tulisan
Welcome to student6 Website
Masih didalam berkas bashsc.sh, kita buat konfigurasi untuk NGINX Server seperti berikut
# Looping Konfigurasi NGINX Server
cp /etc/nginx/sites-available/default /etc/nginx/sites-available/student$i
sed -i 's/student/student'$i'/g' /etc/nginx/sites-available/student$i
ln -s /etc/nginx/sites-available/student$i /etc/nginx/sites-enabled/
Sehingga sekarang file bashsc.sh terlihat seperti ini
groupadd VSCITNSA for (( i=1; i<=50; i++ )) do# Looping Konfigurasi User mkdir -p /data/www/student$i useradd student$i -d /data/www/student$i -s /bin/bash passwd student$i <<< "vsc39"$'\n'"vsc39" usermod -a -G VSCITNSA student$i# Looping Konfigurasi NGINX Server cp /etc/nginx/sites-available/default /etc/nginx/sites-available/student$i sed -i 's/student/student'$i'/g' /etc/nginx/sites-available/student$i ln -s /etc/nginx/sites-available/student$i /etc/nginx/sites-enabled/
Sedikit penjelasan konfigurasinya, hehe
cp /etc/nginx/sites-available/default /etc/nginx/sites-available/student$i
Kita meng-copy file default konfigurasi NGINX Server yang sebelumnya sudah kita edit menjadi file untuk konfigurasi masing-masing subdomain student.sed -i ‘s/student/student’$i’/g’ /etc/nginx/sites-available/student$i
Konfigurasi ini berfungsi untuk mereplace semua kata ‘student’ didalam file /etc/nginx/sites-available/student$i dengan kata ‘student$i’. Dimana $i merupakan hasil looping 1 sampai 50.ln -s /etc/nginx/sites-available/student$i /etc/nginx/sites-enabled/
konfigurasi ini berfungsi untuk membuat shortcut file-file yang sudah kita konfigurasi dari direktori /etc/nginx/sites-available/ yaitu student$i ( student1, studen2, dan seterusnya sampai student50 ) kedalam direktori /etc/nginx/sites-enabled/
Konfigurasi DNS Server untuk subdomain student[1–50]
Setelah konfigurasi loping NGINX Server selesai, sekarang kita akan menambahkan konfigurasi DNS Server yang berada di /etc/bind/db.nsaapps
Kita akan menambahkan konfigurasi di paling bawah file konfigurasi db.nsaapps tersebut dengan
student1 IN A 192.1.8.1
dan berulang-ulang sampai student50 dengan menggunakan bantuan bash script.
Masih didalam file /etc/bashsc.sh. kita tambahkan baris berikut di paling bawah
# Konfigurasi DNS Server 50 user
echo 'student'$i' IN A 192.1.8.1' >> /etc/bind/db.nsaapps
Untuk fungsinya sendiri sama dengan Konfigurasi DNS Server sebelumnya
hanya saja, kita melakukan looping agar address mapping nya dapat menjadi student[1–50] dengan cepat.
Kemudian kita menambahkan konfigurasi tersebut ke /etc/bind/db.nsaapps
Konfigurasi Index.php
Sekarang, kita akan membuat file index.php untuk menampilkan
This is student6 website
Ketika user membuka student6.nsaapps.id.
Masih didalam file bashsc.sh , kita tambahkan lagi di baris terakhir
# Konfigurasi index.php 50 user
echo '<?php echo " This is student'$i' Website "; ?>' > /data/www/student$i/index.php
Fungsi dari baris kode tersebut adalah, kita menambahkan kalimat This is student$i website kedalam file index.php di masing-masing folder student.
Jika sudah , tambahkan perintah done di paling bawah untuk menandakan bash script sudah berakhir.
Sehingga sekarang isi file bashsc.sh kita menjadi
groupadd VSCITNSA for (( i=1; i<=50; i++ )) do# Looping Konfigurasi User mkdir -p /data/www/student$i useradd student$i -d /data/www/student$i -s /bin/bash passwd student$i <<< "vsc39"$'\n'"vsc39" usermod -a -G VSCITNSA student$i# Looping Konfigurasi NGINX Server cp /etc/nginx/sites-available/default /etc/nginx/sites-available/student$i sed -i 's/student/student'$i'/g' /etc/nginx/sites-available/student$i ln -s /etc/nginx/sites-available/student$i /etc/nginx/sites-enabled/# Konfigurasi DNS Server 50 user echo 'student'$i' IN A 192.1.8.1' >> /etc/bind/db.nsaapps# Konfigurasi index.php 50 user echo '<?php echo " This is student'$i' Website "; ?>' > /data/www/student$i/index.phpdone
Jika sudah, silahkan save dan keluar dengan cara menekan tombol kombinasi CTRL + X kemudian Y dan ENTER.
Pendukung program
Karena secara default direktori/data/www/ tidak ada, maka kita harus membuatnya terlebih dahulu dengan perintah
mkdir /data
mkdir /data/www
Kita juga perlu menginstall php dan php-fpm agar webiste dapat berjalan dengan normal
apt install php7.3-fpm php7.3
Menjalankan Bash Script
Untuk dapat menjalankan program file bash tersebut, kita harus ubah dulu permissionnya dengan cara mengetikkan perintah
chmod +x /etc/bashsc.sh
Jika sudah, kita dapat menjalankan bash script dengan perintah
bash /etc/bashsc.sh
Konfigurasi PHP dan PHP_FPM
Setelah kita membuat php servicve berjalan di port 9898 dan membuat php service nginx aktif, sekarang kita akan mengkonfigurasi PHP-FPM agar dapat berjalan.
Masuk ke direktori /etc/php/7.3/fpm/pool.d/ dengan mengetikkan perintah
cd /etc/php/7.3/fpm/pool.d/
Kemudian kita konfigurasi file www.conf yang berada di direktori tersebut menggunakan nano
nano www.conf
Cari baris kode diatas, lalu ubah listen nya menjadi port 9898 seperti ini
Setelah itu, cari lagi baris kode listen.allowed_clients dengan menggunakan kombinasi CTRL + W dan ketik listen.allowed_clients
Hapus tanda titik koma di awal baris.
Jika sudah, silahkan kalian keluar lalu save dengan cara menekan tombol kombinasi CTRL + X kemudian Y dan ENTER.
Service Restart dan Testing
Nah, sekarang adalah tahap terakhir, yaitu restarting service dan testing.
Kita akan me-restart service nginx,dns dan juga php-fpm dengan perintah
service nginx restartservice bind9 restartservice php7.3-fpm restart
Kemudian kita akan mengetes apakah website student berjalan dengan lancar, namun sebelum melakukan testing kalian harus menginstall lynx
apt install lynx
Sekarang kalian dapat melakukan testing dengan format
lynx student3.nsaapps.id
Selamat, kalian sudah berhasil membuat subdomain untuk 50 user dengan cepat !
sumber : https://lordrukie.medium.com/vsc-itnsa-3-konfigurasi-multiple-subdomain-nginx-web-server-5e2abe76182c