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
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
Mohon panduan instalasi moodle 3.9 pada CentOS 8 dengan PHP 7.4 Nginx 1.17 MariaDB pada tutorial diatas ini.