Cara install Nginx PHP-FPM MySQL PHP 7 (LEMP) di CentOS 7
Tags: centos, indonesia, mysql, nginx
Published: 2021-03-07 20:43:39

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.