Cara Pasang Linux, Nginx, MariaDB, PHP di Debian 10 Buster

Debian merupakan salah satu sistem operasi populer yang umumnya digunakan untuk server.

Pada 6 Juli 2019 lalu, Debian kembali merilis versi terbarunya, yaitu Debian 10 Buster.

Pada rilis tersebut banyak pembaruan paket, antara lain, nginx, mariadb, dan php.

Pada tutorial kali ini, saya akan membahas bagaimana cara memasang LEMP Stack atau biasa disebut Linux, [E]Ngine x, MariaDB, dan PHP pada sistem operasi Debian 10 Buster.

Persiapan

Agar bisa mengikuti tutorial ini, pastikan Anda telah memiliki vps Debian 10 Buster dan mempunyai akses root ke sistem operasi tersebut.

Jika Anda membutuhkan VPS (Virtual Private Server), Anda dapat membelinya di penyedia vps lokal seperti Niagahoster, Hostinger & Rumahweb atau penyedia vps luar seperti Digital Ocean, Vultr & Linode.

Langkah 1 — Perbarui Paket Perangkat Lunak

Sebelum memasang LEMP, alangkah baiknya untuk memperbarui perangkat lunak. Ketik perintah berikut ini pada Terminal.

sudo apt update && sudo apt upgrade -y

Langkah 2 — Memasang Web Server Nginx di Debian 10

Lakukan pemasangan nginx pada vps Anda.

sudo apt install nginx

Setelah itu, cek status nginx.

systemctl status nginx

Output:

 nginx.service - A high performance web server and a reverse proxy server    Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)    Active: active (running) since Sun 2019-10-13 20:44:06 WIB; 58s ago      Docs: man:nginx(8)   Process: 375 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)   Process: 476 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)  Main PID: 477 (nginx)     Tasks: 2 (limit: 1979)    Memory: 21.7M    CGroup: /system.slice/nginx.service            ├─477 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;            └─478 nginx: worker process

Setelah nginx berjalan, konfigurasikan firewall supaya situs web dapat diakses. Sebagai contoh, saya di sini menggunakan ufw.

Cukup jalankan perintah berikut ini apabila Anda tidak ingin mengkonfigurasi SSL pada situs web.

Jadi, hanya perlu membuka port 80.

sudo ufw allow 'Nginx HTTP'

Lakukan verifikasi firewall.

sudo ufw status

Pastikan trafik HTTP tersedia seperti pada contoh berikut ini.

Status: active
 To                         Action      From
 --                         ------      ----
 OpenSSH                    ALLOW       Anywhere
 Nginx HTTP                 ALLOW       Anywhere
 OpenSSH (v6)               ALLOW       Anywhere (v6)
 Nginx HTTP (v6)            ALLOW       Anywhere (v6)

Setelah itu, akses http://ip_server_anda melalui web browser, apabila muncul laman seperti di bawah ini, artinya nginx telah berhasil dijalankan.

Langkah 3 — Memasang MariaDB di Debian 10

Sekarang, memasuki langkah ketiga, yaitu memasang database server MariaDB, mari ikuti perintah instalasi berikut ini.

sudo apt install mariadb-server

Kemudian cek status MariaDB.

systemctl status mariadb

Output:

 mariadb.service - MariaDB 10.3.17 database server
   Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2019-10-13 20:44:09 WIB; 55s ago
     Docs: man:mysqld(8)
           https://mariadb.com/kb/en/library/systemd/
  Process: 374 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld (code=exited, status=0/SUCCESS)
  Process: 385 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
  Process: 388 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= ||   VAR=/usr/bin/galera_recovery; [ $? -eq 0 ]   && systemctl set-environment _WSREP_START_POSITION=$VAR
  Process: 578 ExecStartPost=/etc/mysql/debian-start (code=exited, status=0/SUCCESS)
  Process: 580 ExecStartPost=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
 Main PID: 471 (mysqld)
   Status: "Taking your SQL requests now…"
    Tasks: 33 (limit: 1979)
   Memory: 166.4M
   CGroup: /system.slice/mariadb.service
           └─471 /usr/sbin/mysqld

Supaya server database aman, disarankan menjalankan perintah berikut ini.

sudo mysql_secure_installation

Output:

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
       SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!
 In order to log into MariaDB to secure it, we'll need the current
 password for the root user.  If you've just installed MariaDB, and
 you haven't set the root password yet, the password will be blank,
 so you should just press enter here.
 Enter current password for root (enter for none): TEKAN ENTER

Setting the root password ensures that nobody can log into the MariaDB
 root user without the proper authorisation.
 Set root password? [Y/n] TEKAN y JIKA INGIN MENGATUR PASSWORD

By default, a MariaDB installation has an anonymous user, allowing anyone
 to log into MariaDB without having to have a user account created for
 them.  This is intended only for testing, and to make the installation
 go a bit smoother.  You should remove them before moving into a
 production environment.
 Remove anonymous users? [Y/n] TEKAN ENTER

Normally, root should only be allowed to connect from 'localhost'.  This
 ensures that someone cannot guess at the root password from the network.
 Disallow root login remotely? [Y/n] TEKAN ENTER

By default, MariaDB comes with a database named 'test' that anyone can
 access.  This is also intended only for testing, and should be removed
 before moving into a production environment.
 Remove test database and access to it? [Y/n] TEKAN ENTER 

Reloading the privilege tables will ensure that all changes made so far
 will take effect immediately.
 Reload privilege tables now? [Y/n] TEKAN ENTER

Langkah 4 — Memasang PHP di Debian 10

Versi PHP saat ini adalah PHP7.3 per postingan ini dipublikasikan.

Lakukan instalasi PHP seperti pada perintah berikut ini.

sudo apt install php-fpm php-mysql

Cek versi PHP.

php --version

Output:

PHP 7.3.9-1~deb10u1 (cli) (built: Sep 18 2019 10:33:23) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.9, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.3.9-1~deb10u1, Copyright (c) 1999-2018, by Zend Technologies

Cek status PHP.

systemctl status php7.3-fpm

Langkah 5 — Mengonfigurasi Nginx Server Block

Nginx Server Block dapat digunakan untuk menghosting beberapa situs web dalam satu server.

Sekarang, buat folder nama_domain Anda di direktori /var/www:

sudo mkdir /var/www/nama_domain

Selanjutnya, atur kepemilikan direktori menjadi www-data.

sudo chown -R www-data:www-data /var/www/your_domain

Buatlah sebuah file untuk mengonfigurasi domain Anda.

sudo nano /etc/nginx/sites-available/nama_domain

Kemudian masukkan konfigurasi berikut ini.

server {
    listen 80;
    listen [::]:80;
    
    root /var/www/nama_domain;
    index index.php index.html index.htm;
    server_name nama_domain;
    
    location / {
        try_files $uri $uri/ /index.php$is_args$args;
    }

    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }

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

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

Simpan dan tutup dengan menekan Ctrl+X lalu ENTER untuk mengonfirmasinya.

Buatlah symbolic link konfigurasi nginx server block.

sudo ln -s /etc/nginx/sites-available/nama_domain /etc/nginx/sites-enabled/

Uji konfigurasi untuk memastikan tidak ada yang error.

sudo nginx -t

Jika tidak ada yang error, muat ulang nginx.

sudo systemctl reload nginx

Langkah 6 — Uji Coba PHP

Pada langkah terakhir ini, lakukan uji coba PHP.

Buatlah file info.php di folder domain Anda.

nano /var/www/nama_domain/info.php

Tempelkan kode berikut kemudian tutup dan simpan.

<?php phpinfo(); ?> 

Buka kembali browser Anda kemudian akses http://nama_domain/info.php

Jika muncul halaman seperti di atas, artinya PHP berhasil dijalankan.

Langkah 7 — Selesai

Selamat! Anda berhasil memasang Nginx, MariaDB dan PHP di Debian 10 Buster. Sebaiknya hapus file info.php demi keamanan server Anda.

sudo rm /var/www/nama_domain/info.php

Terima kasih sudah membaca tutorial kali ini, semoga saja bisa membantu Anda untuk memasang Linux, Nginx, MariaDB & PHP (LEMP Stack) di Debian 10 Buster.

Tinggalkan komentar