Cara Install LEMP di Ubuntu 20.04
Published: 2022-03-24 20:20:34

## Apa itu LEMP ???

LEMP merupakan singkatan dari Linux, Nginx, Mysql dan PHP / Perl / Pyhton. Komponen-komponen tersebut membentuk sebuah `stack` yang digunakan untuk menjalankan `web server`.

- Linux
berperan sebagai sistem operasi utama untuk dapat menjalankan komponen-komponen lainnya. Beberapa OS yang populer antara lain: Ubuntu, Centos, Cloudlinux dan lain-lain.

- Nginx
dibaca “engine-ex” adalah sebuah perangkat lunak web server yang berfungsi untuk melayani HTTP/S, proxy, load-balance dan proxy email untuk protokol IMAP, POP3 dan SMTP.

- Mysql
Komponen ini merupakan sistem database yang sering digunakan bersama PHP.

- PHP/Perl/Python
Bahasa pemrograman yang digunakan untuk membangun halaman web.

## Langkah Instalasi

**Install Nginx**

```
sudo apt-get update -y
sudo apt-get install nginx -y
```

Untuk cek apakah nginx sudah berhasil di install, bisa dengan mengunjungi ip pada server, atau jalankan command dibawah:
```
nginx -v
service nginx status
```
Jika berhasil command diatas akan memunculkan versi dan status service nginx.

![command screenshot](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/opvtwf4yigyxmhsp6nbb.png)

**Install Mysql**

```
sudo apt-get install mysql-server -y
```

Setelah instalasi mysql berhasil, disarankan untuk menjalankan `command` ini untuk meningkatkan sistem keamanan.

```
sudo mysql_secure_installation
```

Setelah melakukan `command` diatas, kita bisa coba cek koneksi ke database dengan `sudo mysql`. Secara bawaan mysql menggunakan `unix_socket` untuk otentikasi user login.

Biasanya nanti akan muncul masalah seperti `Access denied for user 'root'@'localhost'`. Untuk memperbaikinya kita perlu mengubah sistem otentikasi pada mysql. Ikuti `command` dibawah ini:

```
sudo mysql
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'CodingIsC00l';
```

**Install PHP**

```
sudo apt-get install php-fpm -y
php --version
```

Output
```
PHP 7.4.3 (cli) (built: Mar  2 2022 15:36:52) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies
```

**Configure Nginx**

Setelah semua komponen sudah terinstall, langkah berikutnya adalah konfigurasi nginx. Untuk tutorial kali ini, kita hanya menampilkan output dari `phpinfo`. Ikuti `command` dibawah:

```
sudo chown -R $USER:$USER /var/www/html
echo '<?php phpinfo();' >> /var/www/html/index.php
```
Pertama, kita ubah `ownership` untuk folder `/var/www/html`. Lalu kita membuat file .php yang nanti akan menampilkan php info saat website kita dikunjungi.

```
sudo unlink /etc/nginx/sites-enabled/default
sudo mv /etc/nginx/sites-available/default /etc/nginx/sites-available/default.bak
sudo nano /etc/nginx/sites-available/default
```

Command ini akan membuat file baru, silahkan masukan `basic-config` dibawah ini:

```
server {
    listen 80;
    server_name _;
    root /var/www/html;

    index index.html index.htm index.php;

    location / {
        try_files $uri $uri/ =404;
    }

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

    location ~ /\.ht {
        deny all;
    }

}
```

Lalu buat `symlink` untuk file config nginx, cek config dan restart nginx.

```
sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/
sudo nginx -t
sudo service nginx restart
```

![phpinfo](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vcygqxrqv6xwli4lnkoa.png)
 
Oke, sekian tutorial kali ini. Semoga tutorial ini dapat membantu kalian yang ingin belajar `setup LEMP` di Ubuntu. Ditunggu tutorial-tutorial berikutnya.

Terimakasih,