Memasang Nginx, MariaDB dan PHP di GNU/Linux (LEMP)


Sebelumnya saya pernah membahas mengenai cara instalasi LAMP (Linux, Apache, MariaDB/MySQL, PHP). Artikel kali ini masih seputar web server yakni menggunakan LEMP.

LEMP adalah kependekan dari (Linux, Nginx, MariaDB/MySQL, dan PHP). Jika Anda perhatikan mengapa menggunakan kependenkan dengan kata LEMP bukan LNMP? Dikarenkan Nginx itu dibaca Engine X makanya digunakan singkatan LEMP.

Tahap Pemasangan

Pengguna Ubuntu/Debian

sudo apt-get install nginx php5 php5-fm php5-gd php5-mcrypt mysql-server

Pengguna Fedora 21 ke bawah, Centos dan RHEL

sudo yum install epel-release
sudo yum install nginx php php-fpm php-gd php-mcrypt mysql-server

NB: Pengguna Fedora 21 sampai ke atas sama dengan perintah sebelumnya, hanya mengganti yum dengan dnf.

Pengguna Archlinux

Khusus Pengguna Archlinux MySQL sudah tidak berada dalam lumbung resmi (official repository) jadi kita gunakan MariaDB.

sudo pacman -S php nginx php-fpm php-gd php-mcrypt

Tahap Konfigurasi

Konfigurasi PHP

Setelah proses instalasi selesai langkah selanjutnya adalah tahap konfigurasi agar Nginx dapat menjalankan PHP.

Pengguna Debian/Ubuntu

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

Pengguna Fedora/Centos/RHEL dan Archlinux

sudo nano /etc/nginx/nginx.conf

Lalu kemudian Anda cari server .Jika Anda menggunakan nano tekan tombol CTRL+W. Dan rubah skripnya menjadi demikian:

server {
    listen   80 default_server;
    listen   [::]:80 default_server;
    server_name  localhost;

    root  /usr/share/nginx/html;
    index index.php index.html index.htm;

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

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_intercept_errors on;
        fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include fastcgi.conf;
    }

     #error_page  404              /404.html;

     # redirect server error pages to the static page /50x.html
    
      error_page   500 502 503 504  /50x.html;
      location = /50x.html {
           root   /usr/share/nginx/html;
       }


        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        location ~ /\.ht {
            deny  all;
        }
}

Perhatian: Skrip di atas hanya untuk pengguna Archlinux. Untuk Pengguna Fedora dan Centos pada baris 15 dan 18. Yakni fastcgi_pass unix:/run/php-fpm/php-fpm.sock; dan include fastcgi.conf; ganti dengan:

fastcgi_pass php-fpm;
include fastcgi_params;

Pengguna Debian atau Ubuntu:

fastcgi_pass unix:/var/run/php5-fpm.sock;
include fastcgi_params;

Perhatian skrip di atas untuk meletakan berkas php atau html berada pada direktori /usr/share/nginx/html. Untuk Menggantinya lihat baris ke-6 yakni pada root /usr/share/nginx/html; Anda bisa ganti menjadi apapun direktorinya.

Setelah selesai langsung saja restart Nginx dan php-fpm nya.

Pengguna Systemd:

sudo systemctl restart php-fpm nginx

Pengguna SysVinit:

sudo service nginx restart
sudo service php-fpm restart

Pengaturan Database

Pengaturan database pada MariaDB atau MySQL bisa menggunakan:

sudo mysql_secure_installation

Di sana Anda akan dimintai password dari root akun MariaDB/MySQL Anda.

Tahap Testing

Selanjutnya tahap untuk percobaan apakah PHP sudah berjalan di Nginx atau belum dengan cara membuat satu buah berkas di /usr/share/nginx/html dengan cara di bawah ini:

sudo nano /usr/share/nginx/html/index.php

lalu masukan skrip berikut:

<?php
phpinfo();

Jika hasilnya sudah demikian seperti screenshot di bawah ini, maka PHP sudah dapat berjalan di Nginx Anda.

lemp-sukses

Semoga bermanfaat ?