Cara install Nginx PHP-FPM MySQL PHP 7 (LEMP) di CentOS 7

Langkahnya sebagai berikut.

Instalasi Nginx

Install dulu EPEL Release

yum -y install epel-release

Install Nginx

yum -y install nginx

Jalankan Nginx

systemctl start nginx
systemctl enable nginx

Cek apakah sudah aktif

systemctl status nginx

Mengecek versi Nginx

nginx -v

Buka browser apakah ada test page yang ditampilkan, dengan mengetik http://IP_ADDRESS atau http://HOSTNAME

Jika tidak menampilkan apapun atau layar blank bisa jadi port 80 terblokir, buka dengan menjalankan perintah berikut ini.

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

Instalasi PHP 7x

Tambahkan repositori remi dalam Centos lewat perintah

yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

Aktifkan package PHP 7x dengan perintah berikut

yum -y install yum-utils
yum-config-manager --enable remi-php71

Kemudian install packages yang dibutuhkan, jangan lupakan php-fpm

yum -y install php-fpm php-cli php-mbstring php-opcache php-curl php-gd

Selanjutnya cek status apakah sudah terinstall dengan benar

systemctl status php7.2-fpm

Instalasi MariaDB

Jalankan perintah berikut untuk melakukan instalasi MariaDB.

apt install -y mariadb-server

Untuk mengecek apakah MariaDB sudah berjalan dengan normal, cek dengan perintah berikut.

systemctl status mariadb
 mariadb.service - MariaDB 10.1.44 database server
   Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
   Active: active (running)
     Docs: man:mysqld(8)
           https://mariadb.com/kb/en/library/systemd/
 Main PID: 1975 (mysqld)
   Status: "Taking your SQL requests now..."
    Tasks: 27 (limit: 658)
   CGroup: /system.slice/mariadb.service
           └─1975 /usr/sbin/mysqld

Selanjutnya jalankan perintah berikut untuk mengamankan instalasi MariaDB.

mysql_secure_installation

Lalu jawablah semua pertanyaan yang muncul dengan konfigurasi berikut.

Enter current password for root (enter for none): isi_password
Change the root password? [Y/n] n
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Konfigurasi Virtual Host Nginx

Buat direktori baru, ganti example.com dengan domain milik Anda

mkdir -p /var/www/html/example.com

Hapus konfigurasi file standar nginx dengan perintah berikut

rm -f /etc/nginx/sites-enabled/default

Buat sebuah file baru di direktori /etc/nginx/conf.d dengan perintah berikut

vi /etc/nginx/conf.d/example.com.conf

Salin semua baris dibawah ini, lalu ganti example.com dan www.example.com dengan nama domain yang digunakan untuk VM tersebut.

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

    server_name example.com www.example.com; 
    root /var/www/html/example.com; 
    index index.php; 

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

    location ~* \.php$ { 
        fastcgi_pass unix:/run/php/php7.2-fpm.sock; 
        include fastcgi_params; 
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
        fastcgi_param SCRIPT_NAME $fastcgi_script_name; 
    }  
}

Simpan perubahan diatas, dengan menekan terlebih dulu tombol Esc lalu ketik :q dan akhiri dengan menekan Enter.

Reload nginx dengan perintah

systemctl reload nginx
systemctl restart php-fpm

Untuk membuktikan PHP 7x sudah jalan, buat sebuah file baru di direktori standar nginx yang ada di /var/www/html/example.com/ dengan perintah berikut.

vi /var/www/html/example.com/info.php

Salin baris dibawah ini kedalam file tersebut.

<?php phpinfo(); ?>

Simpan perubahan diatas, dengan menekan terlebih dulu tombol Esc lalu ketik :q dan akhiri dengan menekan Enter.

Akses file itu lewat browser dengan mengetik http://IP_ADDRESS/info.php atau http://SERVERNAME/info.php

Jika sudah muncul halaman info konfigurasi PHP, lakukan penghapusan terhadap file tersebut untuk alasan keamanan.

rm /var/www/html/example.com/info.php

Demikian tutorialnya, apabila ada yang kurang/harus diperbaiki, silahkan dikomentari yah. Have fun.

No Comments Yet