LINUXSEC

Tutorial Instalasi LEMP Stack di CentOS 7

Tutorial Instalasi LEMP Stack di CentOS 7 - Sebelumnya saya pernah membahas tentang instalalasi LEMP Stack di Ubuntu. Sebenarnya untuk CentOS caranya sama saja. Tapi berhubung tadi ada yang tanya yasudah sekalian saya buat tutorialnya.

Sebelum memulai tutorial ini, pastikan kalian sudah mengaktifkan repo EPEL karena paket seperti Nginx adalah paket ekstra dan hanya tersedia di repo EPEL dan REMI. Untuk mengaktifkan repo EPEL dan REMI bisa baca di tutorial berikut:

Jika sudah, baru kita lanjut ke tutorial.

Install Web Server Nginx

Pertama kita install Web Server Nginx terlebih dahulu.

sudo yum install nginx

Selanjutnya jalankan Nginx dengan perintah

service nginx start

Sampai disini Nginx sudah berjalan. Namun belum bisa diakses karena firewall masih memblokir port 80 serta 443. Ubah rule firewalld dengan perintah

sudo firewall-cmd --zone=public --permanent --add-service=http  
sudo firewall-cmd --zone=public --permanent --add-service=https  
sudo firewall-cmd --reload

Sekarang coba cek di browser, apakah Nginx sudah berjalan.

Jika tidak ada error, sekarang kita enable service nginx agar langsung berjalan saat server CentOS kita booting.

systemctl enable nginx

Langkah instalasi Nginx selesai. Lanjut ke proses instalasi MariaDB.

Install MariaDB Server
Selanjutnya install MariaDB server. MariaDB merupakan versi pengembangan terbuka dan mandiri dari MySQL. Sejak diakuisisinya MySQL oleh Oracle pada September 2010, Monty Program sebagai penulis awal kode sumber MySQL memisahkan diri dari pengembangan dan membuat versi yang lebih mandiri yakni MariaDB.

sudo yum install mariadb-server

Selanjutnya jalankan service MariaDB dan juga enable service nya agar jalan saat booting.

systemctl start mariadb  
ystemctl enable mariadb  
systemctl status mariadb

Selanjutnya jalankan perintah untuk mengamankan MariaDB dengan mengatur root password, menonaktifkan remote login menggunakan user root, dll.

mysql_secure_installation

Pada saat muncul konfirmasi password MariaDB “Enter current password for root”, enter saja karena ini fresh install. Kita baru akan mengatur passwordnya.

Set root password? [Y/n] y  
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

Test login ke MariaDB dengan perintah

mysql -u root -p

Lalu masukkan password root yang kalian atur sebelumnya.

Oke, sampai disini tidak ada masalah. Kita lanjut ke proses instalasi PHP.

Install PHP 7

Berbeda dengan di Ubuntu terbaru yang sudah menyediakan PHP7 , repository default Centos 7 sekalipun masih menggunakan PHP5. Nah untuk menggunakan PHP7 dari repo EPEL dan REMI. Itulah kenapa di awal saya anjurkan memasang repo REMI dan EPEL. Karena selain untuk menyediakan paket yang tidak tersedia di repo default, juga agar kita mendapatkan paket yang terupdate.

Disini saya menggunakan PHP 7.3

yum-config-manager --enable remi-php73

Selanjutnya tinggal install biasa dengan perintah

sudo yum install php-fpm php-mysql php-cli php-gd php-json php-xml

Disini saya menginstall php-fpm beserta modul yang sering dipakai. Jika ada modul lain yang ingin diinstall kalian bisa sesuaikan sendiri.

Oke setelah php terinstall, kalian perlu melakukan sedikit perubahan terhadap file konfigurasi php.
Pertama, secara default value cgi.fix_pathinfo di set ke 1. Dan untuk alasan keamanan pengaturan ini kurang bagus karena ini akan membuat PHP mengeksekusi file dengan nama yang mirip jika file yang diminta tidak ditemukan. Ubah value nya menjadi 0.

sudo nano /etc/php.ini

Ubah value cgi.fix_pathinfo menjadi 0.

cgi.fix_pathinfo=0

Kedua, proses php-fpm secara default dijalankan oleh user apache. Ubah agar listen ke user nginx.

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

Temukan baris user dan group dan ubah menjadi

user = nginx  
group = nginx

Temukan juga baris listen.owner dan listen.group dan ubah menjadi seperti berikut

listen.owner = nginx  
listen.group = nginx  
listen.mode = 0660

Terakhir, masih di file yang sama ubah baris listen = 127.0.0.1:9000 agar php-fpm listen menggunakan unix socket.

listen = /var/run/php-fpm/php-fpm.sock

Oke sampai disini proses instalasi selesai. Untuk mengatur agar php-fpm berjalan saat booting, gunakan perintah

systemctl enable php-fpm

Konfigurasi LEMP Stack
Selanjutnya adalah membuat serverblock Nginx yang menggunakan PHP-FPM sebagai prosesor file php nya.
nano /etc/nginx/nginx.conf
Lalu tambahkan konfigurasi berikut kedalam block server.

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;
    }

Atau kira kira lengkapnya menjadi seperti berikut:

...........
    server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  _;
        root         /usr/share/nginx/html;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {
        try_files $uri $uri/ =404;
        }
        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;
        }
        error_page 404 /404.html;
            location = /40x.html {
        }
.............

Selanjutnya kita coba jalankan script phpinfo di server.

echo "php phpinfo(); ?" > /usr/share/nginx/html/info.php

Sekarang cek di browser dengan mengakses file info.php yang baru dibuat.

Oke, jika dirasa sudah tidak ada yang error, hapus file phpinfo tadi.

rm /usr/share/nginx/html/info.php

Selesai. Kalian sudah berhasil menginstall LEMP Stack di CentOS 7. Oke mungkin itu saja tutorial kali ini. Jika ada yang ingin ditanyakan silahkan komentar.

Komentar

    Tinggalkan Komentar

    Silahkan tinggalkan komentar jika ada masukan, pertanyaan, kritik ataupun dukungan. Namun pastikan untuk berkomentar secara sopan.