LEMP ini sebenarnya adalah singkatan dari Linux, Nginx(Engine X), MariaDB dan PHP. Dari singkatannya saja sudah kelihatan kan kalau LEMP ini adalah kumpulan software yang kamu butuhkan untuk menjalankan sebuah website di servermu.
Dan kali ini saya akan share cara untuk menginstall LEMP stack di Centos.
Sebelum kita melakukan installasi LEMP, kita akan melakukan persiapan awal terlebih dahulu. yaitu:
- Update OS dengan menggunakan perintah:
yum update
- Install package yang akan kita butuhkan nanti:
yum install epel-release yum install yum-utils
Step 1: Install Nginx
Sebelum kita menginstall Nginx, kita tambahkan dulu repository Nginx dengan menggunakan perintah:
cat << EOF > /etc/yum.repos.d/nginx.repo [nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/7/\$basearch/ gpgcheck=0 enabled=1 EOF
Setelah repo ditambahkan, bisa kita lanjutkan dengan menginstall Nginx. Untuk caranya dengan menggunakan perintah:
yum install nginx
Sekarang kita jalankan dan aktifkan service Nginx saat booting:
systemctl enable nginx systemctl start nginx
Step 2: Install MariaDB
Setelah web server Nginx sudah terinstall sekarang kita install database servernya, apalagi kalau bukan MariaDB.
Sama seperti proses installasi Nginx, kita install terlebih dahulu repository MariaDB dengan perintah:
cat << EOF > /etc/yum.repos.d/MariaDB.repo # MariaDB 10.3 CentOS repository list - created 2018-07-28 04:18 UTC # http://downloads.mariadb.org/mariadb/repositories/ [mariadb] name = MariaDB baseurl = http://yum.mariadb.org/10.3/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1 EOF
Setelah itu kita lanjutkan dengan menginstall MariaDB server dan juga MariaDB client:
yum install MariaDB-server MariaDB-client
Sekarang jalankan service MariaDB dan aktifkan juga servicenya saat booting:
systemctl start mariadb systemctl enable mariadb
Jangan lupa juga untuk mengamankan MariaDBmu dengan menggunakan perintah:
mysql_secure_installation
Step 3: Install PHP
Install web server sudah, install database server juga sudah. Sekarang waktunya kita untuk menginstall PHP dan versi PHP yang akan di install kali ini adalah PHP 7.2. Dan yang pertama kita lakukan adalah menginstall repository Remi dengan menjalankan perintah:
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
Dan aktifkan repo Remi untuk PHP 7.2 dengan perintah:
yum-config-manager --enable remi-php72
Sekarang kita install PHP beserta module yang kita butuhkan dengan perintah:
yum install php php-fpm php-mysqlnd php-common
Konfigurasi PHP-FPM
Setelah PHP terinstall, kita akan melanjutkan dengan melakukan konfigurasi PHP-FPM.
Pertama kita edit terlebih dahulu file konfigurasi php.ini
vi /etc/php.ini
Lalu kita cari setting cgi.fix_pathinfo dan lalu uncomment setting tersebut dengan menghapus tanda ; yang ada dibagian depan. Lalu setting value cgi.fix_pathinfo dari 1 menjadi 0. Kurang lebih nanti hasilnya akan seperti berikut:
; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. ; http://php.net/cgi.fix-pathinfo cgi.fix_pathinfo=0
Setelah itu kita edit file konfigurasi PHP-FPM
vi /etc/php-fpm.d/www.conf
Dan kita setting agar PHP-FPM menggunakan socket dengan merubah listen menjadi seperti berikut:
listen = /var/run/php-fpm/php-fpm.sock
Lalu rubah owner dan group socket PHP-FPM dengan merubah listen.owner dan listen.group menjadi seperti berikut:
listen.owner = root listen.group = nginx
Selanjutnya rubah user dan juga group dari apache menjadi nginx:
user = nginx group = nginx
Setelah itu simpan konfigurasi yang baru dan keluar dari editor.
Dan sekarang kita jalankanservice PHP-FPM dan juga mengaktifkan servicenya saat booting:
systemctl start php-fpm systemctl enable php-fpm
Step 4: Konfigurasi Nginx dan PHP-FPM
Sekarang semua komponen LEMP sudah terinstall, namun masih ada konfigurasi yang harus dilakukan yaitu menghubungkan Nginx dengan PHP-FPM. Hal ini karena Nginx tidak dapat memproses konten dinamis.
Lalu bagaimana caranya? Saya coba contohkan dengan menggunakan konfigurasi default Nginx. Pertama kita buka default konfigurasi Nginx:
vi /etc/nginx/conf.d/default.conf
Lalu rubah konfigurasi menjadi seperti berikut:
server { listen 80; server_name domain_name; #rubah menjadi nama domainmu atau IP server root /usr/share/nginx/html; index index.php index.html index.htm; location / { try_files $uri $uri/ =404; } error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } 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; } }
Simpan konfigurasi dan keluar dari editor, setelah itu reload konfigurasi Nginx dengan menggunakan perintah:
systemctl reload nginx
Test Nginx dan PHP
Sekarang saatnya kita melakukan test Nginx dan PHP yang sudah kita konfigurasi tadi. Cara mudah adalah dengan menggunakan phpinfo. Caranya kamu bisa menjalankan perintah:
echo "<?php phpinfo(); ?>" > /usr/share/nginx/html/info.php
Lalu coba akses melalui url http://ipserver/info.php
dan akan muncul halaman dengan tampilan seperti berikut:
Dengan begitu proses installasi LEMP di server CentOSmu sudah selesai.