Banyak CMS PHP yang membutuhkan LEMP (LINUX,NGINX, MYSQL, PHP), untuk contoh kasus ini kita akan menginstall LEMP yang bisa digunakan untuk WordPress, Laravel 6,CodeIgniter, Drupal dan lain sebagainya.

Kebutuhan server untuk LEMP sendiri tidak terlalu besar, disini yang digunakan adalah 1 GB memory dari Linode

Update Debian

Pertama kali update repository dan package di Debian.

apt-get update; apt-get upgrade -y

Install dependency

apt-get install curl gnupg2 ca-certificates lsb-release -y

Install PHP 7.3

Di repository Debian 10, PHP 7.3 merupakan versi default, jadi kita tidak perlu menambah repository baru. Install dengan

apt-get install php7.3 php7.3-cli php7.3-common php7.3-gd php7.3-xmlrpc php7.3-fpm \
        php7.3-curl php7.3-intl php-imagick php7.3-mysql php7.3-zip php7.3-xml \
        php7.3-mbstring -y

ganti user/group yang digunakan untuk menjalankan PHP-FPM

sed -i "s/www-data/nginx/g" /etc/php/7.3/fpm/pool.d/www.conf

Install MariaDB

apt-get install mariadb-server -y

Buat database baru untuk testing, akses terminal mysql/mariadb dengan menjalankan mysql

create database dbtest;
GRANT ALL PRIVILEGES ON dbtest.* TO "jaranguda"@"localhost" IDENTIFIED BY "KcXtYtiYy7TfeEWWHU9c";

Install Nginx

Install nginx stable terbaru dari repository nginx.org. Download konfigurasi repository nginx

wget -qO - http://nginx.org/keys/nginx_signing.key | apt-key add -
echo "deb http://nginx.org/packages/debian/ $(lsb_release -sc) nginx" >> /etc/apt/sources.list

Install nginx

apt-get update
apt-get install nginx -y

Hapus server block (vhost) yang ada di rm -f /etc/nginx/conf.d/default.conf

rm -f /etc/nginx/conf.d/default.conf

lalu buat baru yang isinya

server {
    listen       80;
    server_name  debian default_server;
    root   /var/www/;
    index index.php index.html;
    location / {
        try_files $uri $uri/ /index.php?$args;
    }
    location ~ \.php(?:$|/) {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_param HTTPS on;
        fastcgi_param modHeadersAvailable true; #Avoid sending the security headers twice
        fastcgi_pass unix:/run/php/php7.3-fpm.sock;
        fastcgi_intercept_errors on;
    }
}

Di debian folder /var/www tidak langsung dibuat, maka buat manual dengan

mkdir -p /var/www

buat file /var/www/index.php yang isinya

<?php
phpinfo();

satu lagi buat file /var/www/mysql.php

<?php
 
$DB_SERVER = "localhost";
$DB_USER = "jaranguda";
$DB_PASSWORD = "KcXtYtiYy7TfeEWWHU9c";
$DB_NAME = "dbtest";
$mysqli = new mysqli("$DB_SERVER","$DB_USER","$DB_PASSWORD","$DB_NAME");
 
echo "<pre>";
var_dump($mysqli);
die;

sesuaikan dengan credential yang dibuat diatas.

Services LEMP

Jalankan services PHP FPM NGINX dan MARIADB

systemctl restart php7.3-fpm.service
systemctl restart mariadb
systemctl restart nginx

aktifkan services tersebut waktu boot

systemctl enable php7.3-fpm.service
systemctl enable mariadb
systemctl enable nginx

Testing

sekarang buka http://IP/index.php
php info php7.3

satu lagi buka http://IP/mysql.php
mysq info php
php berhasil mengakses database MySQL yang dibuat sebelumnya.

Leave a comment

Your email address will not be published. Required fields are marked *