Config and Install LEMP Stack on Ubuntu 20.04 Server/Desktop GNU/Linux


Assalamualaikum Wr.Wb...
dengan diberikan nikmat dan rezeki dari Allah SWT, saya Mr.Gagaltotal666 akan
berbagi kepada anda yaitu tentang cara Config and Install LEMP Stack
on Ubuntu 20.04 Server/Desktop GNU/Linux.

Tumpukan perangkat lunak/software adalah seperangkat alat perangkat
lunak atau disebut tools yang dibundel bersama.
LEMP adalah singkatan dari Linux, Nginx (Engine-X), MariaDB/MySQL
dan PHP, yang semuanya open source dan gratis untuk digunakan.
Lemp ini adalah tumpukan perangkat lunak paling umum yang
mendukung situs web dinamis dan aplikasi web.
Linux adalah sistem operasinya, Nginx adalah server webnya,
MariaDB/MySQL adalah server database dan
PHP adalah bahasa skrip sisi server yang bertanggung jawab
untuk menghasilkan halaman web dinamis.

Prasyarat Untuk mengikuti tutorial ini, Anda memerlukan
OS Ubuntu 20.04 yang berjalan di komputer lokal Anda atau di server jauh.

oke langsung saja ikuti langkah berikut

update package

$ sudo apt update

install nginx dan enable nginx

$ sudo apt install nginx
$ sudo systemctl enable nginx
$ sudo systemctl start nginx
$ sudo systemctl status nginx

Jika koneksi ditolak atau gagal diselesaikan, mungkin ada firewall
yang mencegah permintaan masuk ke port TCP 80.
Jika Anda menggunakan firewall iptables, maka Anda perlu
menjalankan perintah berikut untuk membuka port TCP 80.

$ sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT

Jika Anda menggunakan firewall UFW,
jalankan perintah ini untuk membuka port TCP 80.

$ sudo ufw allow http

Terakhir, kita perlu menjadikan www-data (pengguna Nginx)
sebagai pemilik direktori web. Secara default,
itu dimiliki oleh pengguna root.

$ sudo chown www-data:www-data /usr/share/nginx/html -R

Install DB Mysql/MariaDB dan enable

$ sudo apt install mariadb-server mariadb-client

$ sudo systemctl start mariadb
$ sudo systemctl enable mariadb

Sekarang jalankan skrip keamanan pasca instalasi.

$ sudo mysql_secure_installation

Saat diminta untuk memasukkan kata sandi root MariaDB,
tekan tombol Enter karena kata sandi root belum disetel.
Kemudian masukkan y untuk mengatur kata sandi root
untuk server MariaDB/Mysql.

Selanjutnya, Anda dapat menekan Enter untuk menjawab
semua pertanyaan yang tersisa, yang akan menghapus
pengguna anonim, menonaktifkan login root jarak jauh,
dan menghapus database pengujian. Langkah ini merupakan
persyaratan dasar untuk keamanan database MariaDB.
(Perhatikan bahwa Y dikapitalisasi, yang berarti itu adalah jawaban default.)

Secara default, paket MaraiDB di Ubuntu menggunakan
unix_socket untuk mengotentikasi login pengguna, yang pada
dasarnya berarti Anda dapat menggunakan nama pengguna
dan kata sandi OS untuk masuk ke konsol MariaDB. Jadi Anda
dapat menjalankan perintah berikut untuk login tanpa
memberikan kata sandi root MariaDB.

$ sudo mysql -u root

$ exit;

Install Package PHP

$ sudo apt install php7.4 php7.4-fpm php7.4-mysql php-common php7.4-cli php7.4-common php7.4-json php7.4-opcache php7.4-readline php7.4-mbstring php7.4-xml php7.4-gd php7.4-curl

Memasang ekstensi PHP ini memastikan seuatu website maupun CMS
Anda berjalan dengan lancar. Sekarang mulai php7.4-fpm.

$ sudo systemctl start php7.4-fpm

enable untuk auto bootime

$ sudo systemctl enable php7.4-fpm

$ systemctl status php7.4-fpm

Blok server Nginx seperti host virtual di Apache. tidak akan
menggunakan blok server default karena tidak memadai
untuk menjalankan kode PHP dan jika memodifikasinya
menjadi berantakan. Jadi hapus symlink default di direktori
yang diaktifkan situs dengan menjalankan perintah berikut

$ sudo rm /etc/nginx/sites-enabled/default

Kemudian gunakan editor teks baris perintah seperti Nano dan Vim
untuk membuat file blok server baru di bawah

$ sudo nano /etc/nginx/conf.d/default.conf
$ sudo vim /etc/nginx/conf.d/default.conf

Rekatkan teks berikut ke dalam file. Cuplikan berikut
akan membuat Nginx mendengarkan pada port IPv4 80
dan IPv6 port 80 dengan nama server catch-all.

varian default local /usr/share/nginx/html/

server {
  listen 80;
  listen [::]:80;
  server_name _;
  root /usr/share/nginx/html/;
  index index.php index.html index.htm index.nginx-debian.html;

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

  location ~ \.php$ {
    fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    include snippets/fastcgi-php.conf;
  }

 # A long browser cache lifetime can speed up repeat visits to your page
  location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ {
       access_log        off;
       log_not_found     off;
       expires           360d;
  }

  # disable access to hidden files
  location ~ /\.ht {
      access_log off;
      log_not_found off;
      deny all;
  }
}

vairan untuk di local /var/www/html/

server {
  listen 80;
  listen [::]:80;
  server_name _;
  root /var/www/html/;
  index index.php index.html index.htm index.nginx-debian.html;

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

  location ~ \.php$ {
    fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    include snippets/fastcgi-php.conf;
  }

 # A long browser cache lifetime can speed up repeat visits to your page
  location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ {
       access_log        off;
       log_not_found     off;
       expires           360d;
  }

  # disable access to hidden files
  location ~ /\.ht {
      access_log off;
      log_not_found off;
      deny all;
  }
}

Simpan dan tutup file. (Untuk menyimpan file di editor teks Nano,
tekan Ctrl+O, lalu tekan Enter untuk mengonfirmasi.
Untuk keluar, tekan Ctrl+X.)

untuk di text editor Vim, tekan ESC, lalu tekan :w untuk save,
untuk keluar tekan :q

Kemudian uji konfigurasi Nginx. dan reload/restart

$ sudo nginx -t
$ sudo systemctl reload nginx

Tes file PHP, buat file php di directory /var/www/html
contoh info.php

$ sudo nano /var/www/html/info.php
$ sudo vim /var/www/html/info.php

<?php phpinfo(); ?>

Simpan dan tutup file. Sekarang di buka alamat browser,
masukkan server-ip-address/info.php. Ganti sever-ip-address
dengan IP Anda yang sebenarnya. Jika Anda mengikuti tutorial
ini di komputer lokal Anda,
ketik 127.0.0.1/info.php atau localhost/info.php.

Selamat! Anda telah berhasil menginstal Nginx, MariaDB
dan PHP7.4 di Ubuntu 20.04. Untuk keamanan server Anda,
Anda harus menghapus file info.php
sekarang untuk mencegah peretas melihatnya.

$ sudo rm -r /var/www/html/info.php

Install Package PHPMyadmin

$ sudo apt install phpmyadmin

buat user baru Mysql/MariaDB
untuk login hak akses full di PHPMyadmin [disini]

Untuk dapat mengakses antarmuka web phpMyAdmin,
kita perlu membuat blok server Nginx
dengan menjalankan perintah berikut.

$ sudo nano /etc/nginx/conf.d/phpmyadmin.conf
$ sudo vim /etc/nginx/conf.d/phpmyadmin.conf

mengkonfigurasinya sehingga dapat mengakses phpMyAdmin
melalui sub-domain dan IP Publik maupun IP local.
Rekatkan teks berikut ke dalam file.
Ganti example.com dengan sub-domain Anda yang sebenarnya
dan jangan lupa untuk membuat catatan DNS A untuk itu.
bisa juga anda menggunakan localhost dan IP contoh 192.168.100.143
dan kita simpan phpmyadmin berbeda segment di Port 8080

server {
  listen 8080;
  listen [::]:8080;
  server_name example.com;
  root /usr/share/phpmyadmin/;
  index index.php index.html index.htm index.nginx-debian.html;

  access_log /var/log/nginx/phpmyadmin_access.log;
  error_log /var/log/nginx/phpmyadmin_error.log;

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

  location ~ ^/(doc|sql|setup)/ {
    deny all;
  }

  location ~ \.php$ {
    fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    include snippets/fastcgi-php.conf;
  }

  location ~ /\.ht {
    deny all;
  }
}

varian IP Local

server {
  listen 8080;
  listen [::]:8080;
  server_name 192.168.100.143;
  root /usr/share/phpmyadmin/;
  index index.php index.html index.htm index.nginx-debian.html;

  access_log /var/log/nginx/phpmyadmin_access.log;
  error_log /var/log/nginx/phpmyadmin_error.log;

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

  location ~ ^/(doc|sql|setup)/ {
    deny all;
  }

  location ~ \.php$ {
    fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    include snippets/fastcgi-php.conf;
  }

  location ~ /\.ht {
    deny all;
  }
}

File phpMyAdmin Anda ada di direktori /usr/share/phpmyadmin/
Simpan dan tutup file. Kemudian uji konfigurasi Nginx.
beserta reload/restart Nginx

$ sudo nginx -t
$ sudo systemctl reload nginx
$ sudo systemctl restart nginx





Video Tutorial


oke mungkin itu saja mengenai Config setup LEMP Stack
kalau ada kesalahan dan kekurangan nya
mohon berikan masukan nya ya

sekian dan semoga bermanfaat...

Wasalamualaikum Wr.Wb..

Post a Comment

0 Comments