Cara Install Nginx 1.15, MariaDB 10 dan PHP 7 di CentOS 7


Pada artikel ini kami akan menjelaskan cara memasang tumpukan LEMP (Linux, Nginx, MariaDB, PHP) bersama dengan PHP-FPM di server RHEL/CentOS 7/6 dan Fedora 26-29 menggunakan paket yum dan dnf Pengelola.

Selama proses tersebut kami akan menginstal dan mengaktifkan repositori Epel, Remi, Nginx dan MariaDB agar dapat instal versi terbaru dari paket-paket ini.

Baca Juga: Instal Apache, MySQL 8 atau MariaDB 10 dan PHP 7 di CentOS 7

Langkah 1: Menginstal Repositori EPEL dan Remi

EPEL (Paket Ekstra untuk Linux Perusahaan) adalah repositori berbasis komunitas yang menawarkan paket perangkat lunak tambahan untuk distribusi Linux berbasis RHEL.

Remi adalah repositori tempat Anda dapat menemukan versi terbaru tumpukan PHP (fitur lengkap) untuk instalasi di distribusi Fedora dan Enterprise Linux.

Di RHEL/CentOS 7

yum update && yum install epel-release
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

------ For RHEL 7 Only ------
subscription-manager repos --enable=rhel-7-server-optional-rpms

Di RHEL/CentOS 6

yum update && yum install epel-release
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

------ For RHEL 6 Only ------
subscription-manager repos --enable=rhel-6-server-optional-rpms

Di Fedora 24-29

rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-29.rpm  [On Fedora 29]
rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-28.rpm  [On Fedora 28]
rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-27.rpm  [On Fedora 27]
rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-26.rpm  [On Fedora 26]
rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-25.rpm  [On Fedora 25]
rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-24.rpm  [On Fedora 24]

Langkah 2: Menginstal Repositori Nginx dan MariaDB

Repositori Nginx hanya diperlukan di distribusi RHEL dan CentOS. Buat file bernama /etc/yum.repos.d/nginx.repo dan tambahkan baris berikut ke dalamnya.

Untuk RHEL 7/6:

[nginx] 
name=nginx repo 
baseurl=http://nginx.org/packages/rhel/$releasever/$basearch/ 
gpgcheck=0 
enabled=1 

Untuk CentOS 7/6:

[nginx] 
name=nginx repo 
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ 
gpgcheck=0 
enabled=1 

Untuk mengaktifkan repositori MariaDB, buat file bernama /etc/yum.repos.d/mariadb.repo dengan konten berikut:

[mariadb] 
name = MariaDB 
baseurl = http://yum.mariadb.org/10.1/centos7-amd64 
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB 
gpgcheck=1 

Langkah 4: Menginstal Ngnix dan MariaDB

Nginx (Engine X) adalah server Web sumber terbuka, kuat, ringan, dan berkinerja tinggi, server proksi terbalik, dan juga server proksi email untuk protokol HTTP, SMTP, POP3, dan IMAP. Untuk rincian lebih lanjut, kunjungi http://wiki.nginx.org/Overview.

MariaDB adalah cabang dari MySQL yang terkenal, salah satu Sistem Manajemen Basis Data Relasional (RDBMS) terpopuler di dunia. Ini sepenuhnya dikembangkan oleh komunitas dan oleh karena itu dimaksudkan untuk tetap FOSS dan kompatibel dengan GPL.

Untuk menginstal Ngnix dan MariaDB, jalankan perintah berikut.


----------- Installing on RHEL/CentOS 7/6 ----------- 
yum --enablerepo=remi install nginx MariaDB-client MariaDB-server php php-common php-fpm 

----------- Installing on Fedora ----------- 
dnf --enablerepo=remi install nginx MariaDB-client MariaDB-server php php-common php-fpm 

Langkah 3: Menginstal PHP Menggunakan Remi Repository

PHP (Hypertext Preprocessor) adalah bahasa skrip sisi server Sumber Terbuka dan Gratis yang paling cocok untuk pengembangan web. Ini dapat digunakan untuk menghasilkan halaman web dinamis untuk situs web dan paling sering ditemukan di server *nix. Salah satu kelebihan PHP adalah mudah dikembangkan melalui penggunaan berbagai macam modul.

Untuk menginstal PHP, pertama-tama Anda perlu mengaktifkan repositori Remi dengan menginstal yum-utils, kumpulan program berguna untuk mengelola repositori dan paket yum.

yum install yum-utils

Setelah terinstal, Anda dapat menggunakan yum-config-manager yang disediakan oleh yum-utils untuk mengaktifkan repositori Remi sebagai repositori default untuk menginstal versi PHP yang berbeda seperti yang ditunjukkan.

Misalnya, untuk menginstal versi PHP 7.x, gunakan perintah berikut.

------------- On CentOS & RHEL ------------- 
yum-config-manager --enable remi-php70 && yum install php       [Install PHP 7.0]
yum-config-manager --enable remi-php71 && yum install php       [Install PHP 7.1]
yum-config-manager --enable remi-php72 && yum install php       [Install PHP 7.2]
yum-config-manager --enable remi-php73 && yum install php       [Install PHP 7.3]

------------- On Fedora ------------- 
dnf --enablerepo=remi install php70      [Install PHP 7.0]
dnf --enablerepo=remi install php71      [Install PHP 7.1]
dnf --enablerepo=remi install php72      [Install PHP 7.2]
dnf --enablerepo=remi install php73      [Install PHP 7.3]

Selanjutnya, kita akan menginstal semua modul PHP berikut ini.

------ On RHEL/CentOS 7/6 ------
yum --enablerepo=remi install php-mysqlnd php-pgsql php-fpm php-pecl-mongo php-pdo php-pecl-memcache php-pecl-memcached php-gd php-xml php-mbstring php-mcrypt php-pecl-apcu php-cli php-pear

------ On Fedora ------
dnf --enablerepo=remi install php-mysqlnd php-pgsql php-fpm php-pecl-mongo php-pdo php-pecl-memcache php-pecl-memcached php-gd php-xml php-mbstring php-mcrypt php-pecl-apcu php-cli php-pear

Langkah 6: Menghentikan dan Menonaktifkan Layanan Apache

Secara default, Apache dan Nginx mendengarkan di port yang sama (TCP 80). Oleh karena itu, jika Apache terinstal di server Anda, Anda harus menghentikannya dan menonaktifkan/menyamarkannya (versi penonaktifan yang lebih kuat yang menghubungkan layanan ke /dev/null) untuk menggunakan Nginx , atau Anda dapat menghapusnya jika Anda tidak berencana menggunakannya lagi.

systemctl stop httpd 
systemctl disable httpd 
or 
systemctl mask httpd 

Langkah 7: Memulai/Menghentikan Nginx, MariaDB dan PHP-FPM

----------- Enable Nginx, MariaDB and PHP-FPM on Boot ----------- 
systemctl enable nginx 
systemctl enable mariadb 
systemctl enable php-fpm 
 
----------- Start Nginx, MariaDB and PHP-FPM ----------- 
systemctl start nginx 
systemctl start mariadb 
systemctl start php-fpm 

Langkah 8: Mengonfigurasi Nginx dan PHP-FPM

Sekarang mari kita buat struktur direktori untuk situs web Anda (host virtual, atau blok server seperti yang disebut di Nginx) di bawah /srv/www/. Dalam contoh ini kita akan menggunakan linux-console.net, namun silakan memilih domain dan direktori utama lain jika Anda mau.

mkdir -p /srv/www/tecmint/public_html 
mkdir /srv/www/tecmint/logs 
chown -R nginx:nginx /srv/www/tecmint  

Langkah 9: Mengonfigurasi Direktori Virtual Host Nginx

Seperti yang Anda ketahui, kemampuan menjalankan beberapa situs dari mesin yang sama merupakan salah satu fitur yang membedakan server web utama. Sekarang mari kita lanjutkan membuat direktori untuk menyimpan blok server kita (dikenal sebagai host virtual di Apache) di bawah /etc/nginx.

mkdir /etc/nginx/sites-available 
mkdir /etc/nginx/sites-enabled 

Baris kode berikut, yang harus dimasukkan sebelum menutup blok http di /etc/nginx/nginx.conf, akan memastikan bahwa file konfigurasi di dalam /etc/nginx/sites-enabled Direktori akan diperhitungkan saat Nginx berjalan:

## Load virtual host conf files. ## 
include /etc/nginx/sites-enabled/*; 

Untuk membuat blok server untuk linux-console.net, tambahkan baris kode berikut ke /etc/nginx/sites-available/tecmint (file ini akan dibuat saat Anda masuk jalur lengkap untuk memulai editor teks pilihan Anda). Ini adalah file konfigurasi host virtual dasar.

server { 
	listen 80 default; 
	server_name tecmint; 
	access_log /srv/www/tecmint/logs/access.log; 
	error_log /srv/www/tecmint/logs/error.log; 
	root /srv/www/tecmint/public_html; 
	location ~* \.php$ { 
	fastcgi_index   index.php; 
	fastcgi_pass    127.0.0.1:9000; 
	include         fastcgi_params; 
	fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name; 
	fastcgi_param   SCRIPT_NAME        $fastcgi_script_name; 
	} 
} 

Proses “mengaktifkan” host virtual terdiri dari pembuatan tautan simbolik dari definisi host virtual tecmint ke /etc/nginx/sites-enabled.

ln -s /etc/nginx/sites-available/tecmint /etc/nginx/sites-enabled/tecmint 

Untuk benar-benar menerapkan perubahan yang telah kita lakukan, sekarang kita perlu me-restart Nginx. Terkadang berguna untuk memeriksa kesalahan sintaksis pada file konfigurasi sebelum melakukannya:

nginx -t 
systemctl restart nginx 
systemctl status nginx 

Untuk mengakses host virtual yang baru Anda buat, Anda perlu menambahkan baris berikut ke /etc/hosts sebagai metode dasar resolusi nama domain.

192.168.0.18	linux-console.net linux-console.net 

Langkah 10: Menguji Nginx, MySQL, PHP dan PHP-FPM

Mari kita tetap menggunakan cara klasik dalam menguji PHP. Buat file bernama test.php di bawah /srv/www/tecmint/public_html/ dan tambahkan baris kode berikut ke dalamnya.

Fungsi phpinfo() menampilkan banyak informasi tentang instalasi PHP saat ini:

<?php 
	phpinfo(); 
?> 

Sekarang arahkan browser web Anda ke http://tecmint/test.php dan periksa keberadaan modul yang diinstal dan perangkat lunak tambahan:

Selamat! Anda sekarang memiliki instalasi tumpukan LEMP yang berfungsi. Jika ada sesuatu yang tidak berjalan sesuai harapan, jangan ragu untuk menghubungi kami menggunakan formulir di bawah ini. Pertanyaan dan saran juga diterima.