Minggu, 01 Desember 2024


Cara Membuat Web Server di Ubuntu Server Virtualbox

Apa itu web server?
Sebuah aplikasi yang berjalan disisi server yang menerima dan melayani permintaan dari pengguna yang dikirimkan melalui peramban web kemudian ditampilkan kepada pengguna sesuai dengan permintaan yang dikirimkan ke server. Contoh; Apache, Nginx, IIS, dll

#Menginstal mariaDB NGINX dan PHP 
- Ketik perintah untuk memperbarui daftar package di repository
sudo apt-get update && sudo apt-get upgrade -y

-Perintah untuk menginstall nginx
sudo apt install nginx

-Perintah untuk menginstall mariaDB
sudo apt install mariadb-server

-Perintah untuk menginstall php
sudo apt install php8.1-fpm

-Perintah untuk menginsall mysql
sudo apt install php-mysql -y
 
-Perintah untuk mengecek versi php
php -v


#cek status nginx mariadb dan php
-lakukan perintah sudo systemctl status nginx untuk mengecek status service nginx, apabila nginx belum running atau active. gunakan perintah sudo systemctl enable nginx dan sudo systemctl start nginx untuk memulai service nginx. Lakukan hal yang sama pada php8.3-fpm dan mysql

#Trial nginx
-untuk menguji apakah nginx sudah berjalan dapat menggunakan browser. jalankan 192.168.12.45 di browser kalian, ganti 192.168.12.45 dengan ip masing masing. untuk mengetahui ip bisa menggunakan hostname -I (i kapital)





#Script php
-kembali ke mesin virtual dan jalankan perintah 
sudo nano /var/www/html/info.php

-dan isi dengan  ketik
<?php phpinfo(); ?>

#set php
-jalankan perintah 
sudo nano /etc/nginx/sites-available/default

lalu hapus tagar pada bagian : 
- location ~ \.php$ { 
- include snippets/fastcgi-php.conf 
- fastcgi_pass unix:/run/php/php8.1-fpm.sock 
- lalu pada }




#Hasil script php
mulai ulang service nginx dengan perintah : sudo systemctl restart nginx lalu buka browser dan jalankan 192.168.12.45/info.php, ganti 192.168.12.45 dengan ip masing masing



#Konfigurasi mariadb
-kembali ke mesin virtual dan jalankan perintah sudo mysql untuk masuk ke mysql dengan akses root. Kemudian edit user root dengan perintah ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘1234’; (pada bagian root dan password dapat diganti sesuai keinginan masing masing) kemudian gunakan perintah FLUSH PRIVILEGES; untuk menyegarkan perubahan. lalu EXIT

-lakukan uji coba login menggunakan user dan password yang baru dengan perintah sudo mysql -u root -p dan masukkan password yang telah dibuat tadi. lalu buat database dengan perintah CREATE DATABASE student_db; database ini yang akan menjadi tempat tabel yang berisi data yang akan digunakan


#Membuat user mariadb
-gunakan CREATE USER ‘student’@’localhost’ IDENTIFIED BY ‘12345’; untuk membuat user baru. lalu berikan semua hak akses student_db ke user yang telah dibuat dengan GRANT ALL PRIVILEGES ON student_db.* TO 'student'@'localhost'; lalu gunakan perintah FLUSH PRIVILEGES; untuk menyegarkan perubahan. lalu EXIT

#Membuat table mariadb
-Gunakan mysql -u student -p untuk masuk sebagai user student. lalu masuk ke dalam database student_db dengan USE student_db; lalu buat tabel student seperti berikut: CREATE TABLE student ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR (100) NOT NULL, username VARCHAR (50) NOT NULL, password VARCHAR (255) NOT NULL);

#Insert user mariadb
-Masukkan data pada table student dengan perintah : INSERT INTO student (name,username,password) VALUES (‘STUDENT 1’, ‘student1’, MD5(‘12345’)); lalu EXIT. (MD5(‘12345’) digunakan untuk mengenkripsi 12345, jadi ketika login tetap gunakan 12345)

-Buat  sebanyak 3 kali hingga menjadi student 2, student 3


#Set mysql.php
-buat file php yang digunakan untuk mengambil data dari database dengan perintah : sudo nano/var/www/html/mysql.php
tulis perintah seperti dibawah ini:

<?php
$message = "";
$conn = mysqli_connect("localhost", "student", "12345", "student_db");
if (isset($_POST['submit'])) {
    $username = $_POST['username'];
    $password = MD5($_POST['password']);
    $result = mysqli_query($conn, "SELECT * FROM student WHERE username = '$username' AND password = '$password'");
    if (mysqli_num_rows($result) > 0) {
        $row = mysqli_fetch_assoc($result);
        echo "Selamat Datang " . $row['name'];
    } else {
        echo "User atau password salah";
    }
}
?>

<!DOCTYPE html>
<head>
    <title>"student login"</title>
</head>
<body>
     <div class="form">
     <form action="" method="POST">
         <h5 style="text-align: center;"> LOGIN </h5>
         <input type="text" placeholder="Username" name="username" required>
         <br>
         <input type="password" placeholder="Password" name="password" required>
         <br>
         <button name="submit">Login</button>
     </form>
     </div>
     <div class="result">
     <h3 style="text-align: center;"><?php echo $message; ?></h3>
     </div>
</body>
</html>


#Hasil konfigurasi mariadb dan php

restart service nginx dan coba akses 192.168.12.45/mysql.php menggunakan browser kalian dan coba untuk login menggunakan username dan password yang ada pada tabel student


#Ralat jika masih tidak bisa 

-cek lagi versi php nya denan php -v

-cek bagian kodingan html dan php nya lagi, jika masih belum bisa coba tail -f /var/log/nginx/error.log.     sudo apt install php-mysqli -y lalu sudo systemctl restart  php8.1-fpm lalu sudo systemctl restart nginx




#Konfigurasi firewall

-Perintah Menginstall ufw 

‘“sudo apt install ufw -y” 

-Mengaktifkan Service ufw 

“sudo ufw enable” 

-Cek status ufw 

“sudo ufw status” 

Pastikan Status: active


#Allow dan deny ufw

“sudo ufw allow 80” Untuk mengizinkan port http 

“sudo ufw allow 443” Untuk mengizinkan port https 

“sudo ufw deny 23” Untuk menolak port telnet 

“sudo ufw enable” Untuk menyimpan konfigurasi ufw 

“sudo ufw status” Untuk melihat rule ufw


#Allow ip tertentu ufw

“sudo ufw allow from 192.168.12.49 to any port 22” Untuk mengizinkan ip tersebut untuk mengakses port ssh
 
“sudo ufw deny 22” Untuk menolak semua ip yang ingin mengakses port ssh kecuali yang telah diizinkan 

“sudo ufw enable” Simpan konfigurasi


#Hasil ufw
-uji coba menggunakan ip yang telah diberikan izin untuk mengakses port ssh, apabila konfigurasi benar maka hasil akan seperti disamping, jika gagal maka akan muncul pesan connection refused


1 komentar:

  1. terimakasih atas informasinya, sangat membantu saya👍🏻🙏🏻

    BalasHapus

Cara Pasang Debian12 di virtualbox dan install wordpress di debian12  1. Download ISO Debian 12 Unduh file ISO Debian 12 dari situs resmi De...