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

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

0

Debian adalah salah satu sistem operasi populer yang umumnya digunakan untuk server, awal bulan Juli lalu Debian kembali merilis versi terbarunya yaitu Debian 10 Buster. Pada pembaruan tersebut banyak perubahan dan pembaruan paket antara lain nginx, apache, php, dan sebagainya.

Dalam tutorial kali ini akan mengulas tutorial memasang LEMP Stack atau bisa disebut Linux, [E]Nginx, MariaDB, dan PHP di sistem operasi Debian 10 Buster.

Persiapan

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

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

Langkah 1 — Perbarui Paket Perangkat Lunak

Sebelum memasang LEMP, alangkah baiknya untuk memperbarui perangkat lunak. Ketik perintah berikut di Terminal:

sudo apt update && sudo apt upgrade -y

Langkah 2 — Memasang Web Server Nginx di Debian 10

Nginx adalah salah satu web server yang banyak digunakan di sistem operasi Linux.

Selanjutnya pasang nginx melalui perintah berikut

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

Jika nginx-nya sudah berjalan akan tampil tulisan active (running) di sana, sekarang uji coba nginx melalui browser dengan membuka:

http://ALAMAT_IP_ANDA

Setelah dibuka akan muncul halaman selamat datang di nginx!, ini berarti nginx sudah berhasil dipasang.

Namun, jika laman tersebut tidak muncul mungkin saja firewall mencegah pemintaan ke tcp port 80. Untuk mengatasi hal ini jalankan perintah berikut:

sudo ufw allow http

atau

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

Langkah 3 — Memasang MariaDB di Debian 10

Sekarang memasuki langkah ketiga yaitu memasang database server MariaDB, ikuti instalasi berikut:

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

Demi keamanan server database, disarankan menjalankan perintah berikut:

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 terhitung sejak postingan ini dipublikasikan, masukkan perintah berikut ini untuk memasang php dengan versi paling baru.

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 mirip virtual host di Apache yang dapat digunakan untuk menghosting banyak domain.

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

sudo mkdir /var/www/nama_domain

Selanjutnya atur kepemilikan direktori:

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

Buat file untuk mengonfigurasi domain Anda:

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

Kemudian masukkan konfigurasi berikut:

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 dan ENTER untuk mengonfirmasi.

Aktifkan konfigurasi nginx:

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

Uji konfigurasi tadi, mungkin saja ada kesalahan:

sudo nginx -t

Jika tidak ada error, muat ulang nginx.

sudo systemctl reload nginx

Langkah 6 — Uji Coba PHP

Langkah terakhir ini, uji coba PHP dan server nginx apakah berjalan dengan lancar atau tidak.

Buat 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 aksesnama_domain/info.php

Anda akan melihat informasi server PHP seperti pada gambar di bawah

Ini berarti PHP sudah berjalan.

Langkah 7 — Selesai

Selamat! Anda berhasil memasang Nginx, MariaDB dan PHP di Debian 10 Buster. Lebih baik 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 membantu Anda untuk memasang Linux, Nginx, MariaDB & PHP (LEMP Stack) di Debian 10 Buster.

Aditya Pratama
Hobi nonton film dan anime, saat ini sedang belajar pemrograman secara autodidak.

LEAVE A REPLY

Please enter your comment!
Please enter your name here