Selain menggunakan hosting untuk membuat website dan menyimpan data penting, kamu juga bisa menggunakan server pribadi yang biasa disebut Virtual Private Server (VPS) atau cloud server yang berbasis cloud atau penyimpanan awan. Cara mengelolanya mudah, jika tidak menggunakan control panel, kamu bisa menggunakan LEMP Stack. Pada artikel ini, kamu akan mempelajari bagaimana cara instalasi LEMP Stack di CentOS 8.

LEMP Stack

LEMP (Linux, Nginx, MariaDB, PHP) Stack adalah salah satu stack yang diciptakan untuk memenuhi kebutuhan deployment website ke server tanpa menggunakan control panel sehingga tidak ada Graphical User Interface (GUI) untuk mengelola website menggunakan LEMP Stack.

Jika pada sebelumnya kami sudah membahas Cara Install LEMP di CentOS 7, maka kali ini tutorial instalasi LEMP akan dilakukan pada CentOS 8, versi terbaru CentOS 7 yang sudah tersedia sejak September 2019 dan dapat digunakan secara bebas (open source).

Apa itu DNF

DNF atau Dandified YUM merupakan generasi terbaru dari package manager untuk distribusi berbasis .rpm yang dirilis pada 2018. Pada command atau perintah di CentOS 8 ini, kita akan lebih banyak menggunakan DNF.

Sebelum mulai mempraktikkan cara instalasi LEMP Stack, pastikan kamu sudah memenuhi beberapa persyaratan berikut:

  • VPS dengan OS CentOS 8.
  • Domain yang sudah diarahkan ke IP VPS.
  • Akses root.

Cara Instalasi LEMP Stack di CentOS 8

Update Packages CentOS 8

Kamu perlu melakukan update package pada CentOS 8 terlebih dulu menggunakan perintah DNF, kemudian reboot server.

 

$ dnf update

$ reboot

 

Install Nginx Web Server

 

$ dnf install nginx

 

Jika instalasinya sudah selesai, start dan enable Nginx on boot.

 

$ systemctl enable nginx

$ systemctl start nginx

$ systemctl status nginx

 

  • nginx.service – The nginx HTTP and reverse proxy server

   Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor prese>

   Active: active (running) since Wed 2020-05-20 00:28:47 UTC; 3s ago

  Process: 26093 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)

  Process: 26091 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)

  Process: 26090 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, statu>

 Main PID: 26095 (nginx)

    Tasks: 2 (limit: 6071)

   Memory: 3.9M

   CGroup: /system.slice/nginx.service

           ├─26095 nginx: master process /usr/sbin/nginx

           └─26096 nginx: worker process

 

Untuk melakukan pengecekan pada versi Nginx, kamu bisa menggunakan perintah di bawah ini.

 

$ nginx -v

 

nginx version: nginx/1.14.1

Install MariaDB 

Di sini kami menggunakan MariaDB sebagai database open source pengganti MySQL, karena MySQL sudah deprecated alias tidak up-to-date.

 

$ dnf install mariadb-server mariadb

 

Jika instalasinya sudah selesai, start dan enable MariaDB on boot.

 

$ systemctl enable mariadb

$ systemctl start mariadb

 

Jangan lupa untuk mengecek status MariaDB, apakah sudah berjalan atau belum.

 

$ systemctl status mariadb

 

  • mariadb.service – MariaDB 10.3 database server

   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor pre>

   Active: active (running) since Wed 2020-05-20 00:30:21 UTC; 43s ago

     Docs: man:mysqld(8)

           https://mariadb.com/kb/en/library/systemd/

  Process: 26790 ExecStartPost=/usr/libexec/mysql-check-upgrade (code=exited, s>

  Process: 26655 ExecStartPre=/usr/libexec/mysql-prepare-db-dir mariadb.service>

  Process: 26631 ExecStartPre=/usr/libexec/mysql-check-socket (code=exited, sta>

 Main PID: 26758 (mysqld)

   Status: “Taking your SQL requests now…”

    Tasks: 30 (limit: 6071)

   Memory: 85.8M

   CGroup: /system.slice/mariadb.service

           └─26758 /usr/libexec/mysqld –basedir=/usr

 

Lakukan command di bawah ini untuk memulai inisialisasi setup MariaDB.

 

$ mysql_secure_installation

 

Enter current password for root (enter for none):

OK, successfully used password, moving on…

 

Set root password? [Y/n] y

New password:

Re-enter new password:

Password updated successfully!

Reloading privilege tables..

 … Success!

 

Remove anonymous users? [Y/n] y

 … Success!

 

Disallow root login remotely? [Y/n] y

 … Success!

 

Remove test database and access to it? [Y/n] y

 – Dropping test database…

 … Success!

 – Removing privileges on test database…

 … Success!

 

Reload privilege tables now? [Y/n] y

 … Success!

 

Cleaning up…

 

All done! If you’ve completed all of the above steps, your MariaDB

installation should now be secure.

 

Thanks for using MariaDB!

Instal PHP 7

PHP yang digunakan berikut adalah PHP versi 7, karena versi sebelumnya sudah deprecated atau tidak up-to-date.

Instal EPEL Repository

 

$ dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

Instal YUM-Utils

 

$ dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm

 

Untuk melihat PHP module yang tersedia untuk diinstal, gunakan command di bawah ini.

 

$ dnf module list php

 

Remi’s Modular repository for Enterprise Linux  248 kB/s | 567 kB     00:02

Safe Remi’s RPM repository for Enterprise Linux 458 kB/s | 1.5 MB     00:03

CentOS-8 – AppStream

Name      Stream       Profiles                       Summary

php       7.2 [d]      common [d], devel, minimal     PHP scripting language

php       7.3          common, devel, minimal         PHP scripting language

 

Remi’s Modular repository for Enterprise Linux 8 – x86_64

Name      Stream       Profiles                       Summary

php       remi-7.2     common [d], devel, minimal     PHP scripting language

php       remi-7.3     common [d], devel, minimal     PHP scripting language

php       remi-7.4     common [d], devel, minimal     PHP scripting language

 

Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled

 

Dari output di atas, PHP versi 7.4 adalah versi terbaru yang akan digunakan sebagai bagian rangkaian cara instalasi LEMP Stack berikut, tapi kamu perlu melakukan reset PHP module terlebih dulu dengan memasukkan command di bawah ini.

 

$ dnf module reset php

 

Dependencies resolved.

Nothing to do.

Complete!

 

Kemudian, enable PHP versi 7.4.

 

$ dnf module enable php:remi-7.4

 

Dependencies resolved.

================================================================================

 Package           Architecture     Version             Repository         Size

================================================================================

Enabling module streams:

 php                                remi-7.4

 

Transaction Summary

================================================================================

 

Is this ok [y/N]: y

Complete!

 

Kemudian instal kebutuhan PHP extension yang lain seperti di bawah ini.

 

$ dnf install php php-opcache php-gd php-curl php-mysqlnd

 

Untuk mengecek versi php yang digunakan.

 

$ php -v 

 

PHP 7.4.6 (cli) (built: May 12 2020 08:09:15) ( NTS )

Copyright (c) The PHP Group

Zend Engine v3.4.0, Copyright (c) Zend Technologies

    with Zend OPcache v7.4.6, Copyright (c), by Zend Technologies

 

Start dan enable php-fpm on boot

 

$ systemctl enable php-fpm

$ systemctl start php-fpm

 

Untuk melihat status php-fpm

$ systemctl status php-fpm

 

  • php-fpm.service – The PHP FastCGI Process Manager

   Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; enabled; vendor pre>

   Active: active (running) since Wed 2020-05-20 00:51:08 UTC; 5s ago

 Main PID: 27747 (php-fpm)

   Status: “Ready to handle connections”

    Tasks: 6 (limit: 6071)

   Memory: 23.6M

   CGroup: /system.slice/php-fpm.service

           ├─27747 php-fpm: master process (/etc/php-fpm.conf)

           ├─27748 php-fpm: pool www

           ├─27749 php-fpm: pool www

           ├─27750 php-fpm: pool www

           ├─27751 php-fpm: pool www

           └─27752 php-fpm: pool www

 

Mengingat versi default php-fpm digunakan oleh Apache, maka kamu perlu mengubah konfigurasi php-fpmnya.

 

$ nano /etc/php-fpm.d/www.conf

 

Sebelum:

User = apache

Group = apache

 

Sesudah:

User = nginx

Group = nginx

 

Kemudian, restart Nginx dan php-fpm

 

$ systemctl restart nginx

$ systemctl restart php-fpm

Tes Akses

Usai mengikuti langkah untuk cara instalasi LEMP Stack di CentOS 8, sekarang kamu dapat melakukan tes akses pada domain atau alamat IP kamu.

cara instalasi lemp stack nginx test page

Kemudian, tambahkan script di bawah ini pada info.php supaya dapat ditampilkan di website.

 

<?php

 phpinfo ();

?> 

 

Simpulan

Jika kamu mengikuti cara instalasi LEMP Stack di atas dengan benar, seharusnya saat ini kamu sudah dapat mengelola VPS atau cloud server melalui CentOS 8. Jika ada kendala pada website yang tidak kamu pahami, kamu juga bisa menanyakan langsung ke tim Ninja Support 24 jam melalui website, ticket di client dashboard, atau sambungan telepon.

Demikian artikel ini, jangan sungkan untuk meninggalkan ide-ide topik yang ingin kamu baca di blog Dewaweb, ya. Semoga artikel ini membantu!

Daftar dan tonton webinar Dewatalks