Melakukan Instalasi Web Server Nginx, MySQL, PHP (LEMP) Di Centos

3 minute read
Melakukan Instalasi Web Server Nginx, MySQL, PHP (LEMP) Di Centos

Pada Sistem Operasi Linux sering kali menggunakan aplikasi berikut seperti Nginx, MariaDB, PHP atau LEMP yang merupakan sekumpulan perangakat lunak (Software) open source yang biasa dipasang secara bersamaan untuk membangun sebuah Web Server pada sistem operasi linux. Istilah ini sebenarnya adalah akronim yang mewakili sistem operasi Linux, Dengan web server Nginx (Dibaca Engine X), database MySQL (menggunakan MariaDB), dan konten dinamis yang diproses dengan menggunakan PHP.

Maka bagaimana cara untuk menginstal Nginx, MySQL, PHP (LEMP) Di Centos.

Note Selinux: Jika mengalami masalah dan Nginx tidak berjalan semestinya, pastikan untuk mengkonfigurasi Selinux menjadi mode Disable atau permissive.

Melakukan Instalasi Nginx

Karena Anda akan menggunakan web server Nginx,  karena web server ini terkesan modern bahkan di klaim lebih efisien memory, berikut langkah - langkah untuk melakukan instalasi pada centos.

# Aktifkan EPEL repository
yum -y install epel-release
# Instalasi Nginx
yum -y install nginx

Setelah instalasi selesai, Atur Nginx untuk melakukan auto start pada saat booting serta mengaktifkan nya:

systemctl start nginx
systemctl enable nginx

Jika service Firewalld berjalan, silahkan allow Protocol HTTP (80/tcp) dan HTTPS (443/tcp)

firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
firewall-cmd --reload

Instalasi MySQL (MariaDB)

Setelah Web server Nginx sudah aktif dan berjalan, sekarang saatnya menginstall MariaDB, pengganti MySQL. MariaDB adalah sebuah database manajemen sistem yang di kembangkan oleh pengembang MYSQL. Mengapa di kembangkan oleh pengembang MYSQL adalah karena MYSQL sendiri telah di ambil alih atau telah di akuisisi oleh perusahaan ORACLE yang juga merupakan perusahaan yang bergerak dalam database sehingga menyebabkan MySQL menjadi produk yang berlisensi dan akan menjadi product yang komersil.

yum -y install mariadb-server mariadb

Setelah instalasi selesai, aktifkan Mariadbd saat boot dan jalankan:

systemctl start mariadb
systemctl enable mariadb

Jika service Firewalld berjalan, dan database digunakan oleh server jauh makan silahkan allow 3306/TCP

firewall-cmd --add-service=mysql --permanent
firewall-cmd --reload

Instalasi PHP-FPM

Pada tutorial ini Anda akan menginstall PHP Versi 7.x dan hal pertama yang akan Anda lakukan adalah memasang repository CentOS tambahan yaitu repository REMI yang berisi paket yang dibutuhkan untuk PHP v7

cd /tmp
yum -y install wget
wget -q http://rpms.remirepo.net/enterprise/remi-release-7.rpm
rpm -Uvh remi-release-7.rpm

Aktifkan repository REMI menggunakan perkakas yum-utils

yum -y install yum-utils
## php70
yum-config-manager --enable remi-php70
## php71
yum-config-manager --enable remi-php71
## php72
yum-config-manager --enable remi-php72

Kemudian Install paket PHP-FPM dengan menggunakan perintah berikut:

yum -y install php-fpm php-common

Berikut beberapa modul php yang sering digunakan

yum -y install php-opcache php-pecl-apcu php-cli php-pear php-pdo php-mysqlnd php-pgsql php-pecl-mongodb php-pecl-redis php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml

Konfigurasi PHP-FPM

Sekarang Anda telah selesai menginstall paket php dan beberapa modul tambahan, namun Anda perlu melakukan sedikit perubahan konfigurasi demi alasan keamanan.

vim /etc/php.ini
## Uncomment cgi.fix_pathinfo
cgi.fix_pathinfo=0
## Set time/zone
date.timezone = Asia/Jakarta

Selanjutnya Anda akan melakukan konfigurasi pada berkas php-fpm

vim /etc/php-fpm.d/www.conf

Kemudian ubah konfigurasi sehingga menjadi seperti berikut ini.

; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
; will be used.
; RPM: apache Choosed to be able to access some dir as httpd
; user = apache
user = nginx
; RPM: Keep a group allowed to write in log dir.
; group = apache
group = nginx

; The address on which to accept FastCGI requests.
; Valid syntaxes are:
; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on
; a specific port;
; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on
; a specific port;
; 'port' - to listen on a TCP socket to all addresses
; (IPv6 and IPv4-mapped) on a specific port;
; '/path/to/unix/socket' - to listen on a unix socket.
; Note: This value is mandatory.
; listen = 127.0.0.1:9000
listen = /var/run/php-fpm/php-fpm.sock

; Set permissions for unix socket, if one is used. In Linux, read/write
; permissions must be set in order to allow connections from a web server.
; Default Values: user and group are set as the running user
; mode is set to 0660
listen.owner = nginx
listen.group = nginx
listen.mode = 0660

Kemudian jalankan php-fpm dan pastikan juga berjalan saat boot

systemctl start php-fpm
systemctl enable php-fpm

Konfigurasi Nginx

Sekarang telah selesai menginstall semua komponen LEMP. Satu-satunya perubahan konfigurasi yang masih perlu Anda lakukan adalah memberitahu Nginx untuk menggunakan PHP sebagai pemeroses konten. Web server nginx memiliki berkas konfigurasi utama nginx.conf yang tersimpan didalam directori /etc/nginx.

Namun pada tutorial ini Anda akan melakukan konfigurasi pada level Server Blocks(Server Blocks adalah istilah dalam nginx, seperti “Virtualhost” pada Apache).

vim /etc/nginx/conf.d/example.conf

Berikut adalah konfigurasi Server Blocks yang umum.

server {
listen 80;
server_name localhost;
root /var/www/example;
index index.php index.html index.htm;

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

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

jangan lupa untuk merestart service Nginx setelah mengubah konfigurasi.

systemctl restart nginx