Disini kita akan membahas cara install PHP Mysql/MariaDB dan NGINX di CentOS 8, cara ini bisa digunakan untuk menginstall CodeIgniter 4, Laravel, WordPress, Moodle CMS dan lain sebagainya. Karena dari antara CMS CMS tersebut yang paling penting adalah koneksi antara NGINX PHP Mariadb bisa dijalankan dengan sempurna.

Jika ini adalah server pertama anda, waktu yang dibutuhkan tidak lebih dari 30 menit dari server kosong sampe bisa menjalankan PHP MySQL NGINX. Ikuti langkah-langkahnya dibawah ini

Install EPEL

Install repository EPEL

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

Install Remi Repo

Repository untuk PHP 7.4 diambil dari REMI

dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm

Install PHP 7.4

dnf module reset php
dnf module install php:remi-7.4

Update config PHP

sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g' /etc/php.ini
sed -i 's/;date.timezone =/date.timezone = Asia\/Jakarta/g' /etc/php.ini
sed -i 's/user = apache/user = nginx/g' /etc/php-fpm.d/www.conf
sed -i 's/group = apache/user = nginx/g' /etc/php-fpm.d/www.conf

Verifikasi PHP 7.4 telah terinstall

php -v
# output
PHP 7.4.4 (cli) (built: Mar 17 2020 10:40:21) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies

Jalankan PHP FPM

systemctl enable php-fpm
systemctl restart php-fpm

Install Database Server MariaDB

Di repository Centos 8, versi MariaDB yang digunakan akan 10.3. Kali ini kita tidak perlu menambah repository baru, cukup jalankan

yum install -y mariadb-server

Buat user dan database baru untuk kebutuhan testing

create database jaranguda;
GRANT ALL PRIVILEGES ON jaranguda.* TO "jaranguda"@"localhost" IDENTIFIED BY "aV37tkpeWtmMepKcyA3z";

Jalankan MariaDB

systemctl enable mariadb
systemctl restart mariadb

Install Nginx

Default Centos 8 Nginx version 1.14.1
Tambahkan repository NGINX

cat >/etc/yum.repos.d/nginx.repo <<'EOL'
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
EOL

Install nginx versi terbaru (saat ini 1.17.9) dengan

yum install nginx -y

Hapus default server block nginx rm -f /etc/nginx/conf.d/default.conf, ganti dengan

server {
    listen       80;
    server_name  centos8.jaranguda.com;
    root   /var/www/html/;
    index index.php index.html;
    location / {
        try_files $uri $uri/ /index.php?$args;
    }
    location ~ \.php(?:$|/) {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_param HTTPS on;
        fastcgi_param modHeadersAvailable true; #Avoid sending the security headers twice
        fastcgi_pass unix:/run/php-fpm/www.sock;
        fastcgi_intercept_errors on;
    }
}

Jalankan NGINX

systemctl enable nginx
systemctl restart nginx

Testing

1. NGINX ke PHP

Buat script info.php di /var/www/html/info.php, yang berisi

<?php
phpinfo();

Buka http://IPSERVER
php info centos 8

2. PHP ke MySQL

Install library mysql untuk PHP

yum install -y php-mysqlnd

Setelah diatas berhasil, kita test konfigurasi PHP MySQL dan NGINX. Buat file /var/www/html/sql.php yang berisi

<?php
$DB_SERVER = "localhost";
$DB_USER = "jaranguda";
$DB_PASSWORD = "aV37tkpeWtmMepKcyA3z";
$DB_NAME = "jaranguda";
$mysqli = new mysqli("$DB_SERVER","$DB_USER","$DB_PASSWORD","$DB_NAME");
 
if ($mysqli->connect_errno) {
  echo "Errno: " . $mysqli->connect_errno . "\n";
  echo "Error: " . $mysqli->connect_error . "\n";
  exit;
}
echo "<pre>";
var_dump($mysqli);

lalu buka di IP-Server/sql.php
PHP mysql nginx centos 8

Join the Conversation

1 Comment

Your email address will not be published. Required fields are marked *

  1. Mohon panduan instalasi moodle 3.9 pada CentOS 8 dengan PHP 7.4 Nginx 1.17 MariaDB pada tutorial diatas ini.