Nur Hamim
Nur Hamim Anak desa yang gemar berkomunitas, suka menulis dan mencari hal baru seputar Unix/Linux dan Cloud. Saat ini sedang menempuh pendidikan S1 TI di Unindra dan kebetulan bekerja di PT Biznet GIO Nusantara

Membuat Koneksi PHP ke MariaDB MaxScale


Membuat Koneksi PHP ke MariaDB MaxScale

Saat ini sangat banyak bahasa pemrograman yang dapat digunakan untuk membuat sebuah website statis ataupun dinamis dan salah satu pemrograman yang paling populer bahkan bisa dibilang bahas pemrograman yang paling banyak digunakan untuk membuat sebuah website yaitu bahasa pemoragraman PHP.

PHP singkatan dari Hypertext Preprocessor. PHP sebuah bahasa pemrograman server-side biasanya digunakan bersama dengan CSS dan HTML.

Untuk membuat sebuah website dinamis kita perlu yang namanya database, database disini yang berperan untuk menyimpan data atau query dari sebuah website.

Tutorial kali ini merupakan kelanjutan dari tutorial sebelumnya, kami sudah membangun database galera cluster dan sudah di proxy atau load balancing menggunakan MariaDB MaxScale.

Kali ini kita akan mencoba bagaimana cara menghubungkan website yang berbasis PHP misalnya CMS Joomla, WordPress dan yang lainnya ke proxy atau load balancing MariaDB MaxScale.

Oleh karena itu sebelum mengikuti tutorial ini pastikan Anda sudah mencoba dan membuat database nya terlebih dahulu seperti pada tutorial kami berikut: Memanfaatkan MariaDB MaxScale Sebagai Load Balancing Untuk Galera Cluster pada CentOS 8

Berikut topologi yang akan digunakan

Berikut detail informasi dari topologi diatas:

Node 01, 02, 03 : Digunakan untuk galera cluster, Selengkapnya: Klik Disini
Node 04 : Digunakan untuk LB Mariadb MaxScale
– Hostname: mariadb-maxscale.nurhamim.my.id
– IP: 192.168.10.15
Node 05 : Digunakan untuk CMS Joomla
– Hostname: my-apps.nurhamim.my.id
– IP: 192.168.10.2

Pertama yang harus kita lakukan yaitu membuat database, username dan password Joomla melalui salah satu node galera cluster (node01, node02, atau node03). Disini kami akan buat di node01 silakan login ke database nya terlebih dahulu.

1
2
3
4
5
6
7
8
9
10
11
12
[root@galera01 ~]#
[root@galera01 ~]# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 125
Server version: 10.3.17-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

Create database, username dan password Joomla,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
MariaDB [(none)]>
MariaDB [(none)]> create database joomla;
Query OK, 1 row affected (0.522 sec)

MariaDB [(none)]> GRANT ALL ON joomla.* TO userjoomla@192.168.10.2 IDENTIFIED BY 'secret';
Query OK, 0 rows affected (0.025 sec)

MariaDB [(none)]> GRANT ALL ON joomla.* TO userjoomla@192.168.10.15 IDENTIFIED BY 'secret';
Query OK, 0 rows affected (0.035 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.024 sec)

MariaDB [(none)]> exit
Bye
[root@galera01 ~]#

Diatas user joomla di allow atau grant ke 2 IP ((node04 – LB MaxScale) dan (node05 – CMS Joomla)).

IP yang digunakan dan yang dikonfigurasi di sisi Joomla yaitu IP node04 – LB MaxScale (192.168.10.15).

Silakan test koneksi database dari node05

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[root@my-apps joomla]#
[root@my-apps joomla]# mysql -u userjoomla -h 192.168.10.15 -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 54
Server version: 10.3.17-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| joomla |
+--------------------+
2 rows in set (0.002 sec)

MariaDB [(none)]>

Selanjutnya kita akan mencoba membuat script PHP sederhana untuk mencoba koneksi ke database yang sudah kita buat sebelumnya. Silakan buat file dengan akhiran .php seperti berikut

1
2
3
[root@my-apps ~]# cd /usr/share/nginx/html/
[root@my-apps html]#
[root@my-apps html]# vim test-db.php

Berikut contoh script php untuk koneksi database

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$servername = "192.168.10.15:3306";
$database = "joomla";
$username = "userjoomla";
$password = "secret";

// untuk tulisan bercetak tebal silakan sesuaikan dengan detail database Anda
// membuat koneksi
$conn = mysqli_connect($servername, $username, $password, $database);
// mengecek koneksi
if (!$conn) {
    die("Koneksi gagal: " . mysqli_connect_error());
}
echo "Koneksi Joomla berhasil";
mysqli_close($conn);
?>

Jika sudah silakan akses IP VM Anda /test-db.php

Saat ini koneksi php ke database sudah berhasil. Selanjutnya kita akan mencoba melakukan instalasi CMS Joomla, disini kami tidak membahas installasi secara detail, untuk detail instalasi CMS Joomla Anda dapat merujuk pada link berikut: Cara Instalasi Joomla Menggunakan Nginx di CentOS 8

Pada saat ini instalasi CMS Joomla tepatnya pada saat konfigurasi database, Anda input IP Node04 – LB MariaDB MaxScale contohnya seprti capture berikut

Tunggu proses instalasi sampai selesai

Saat ini instalasi Joomla sudah berhasil dan berikut tampilan home page admin CMS Joomla

Berikut tampilan default home page Joomla

Selanjutnya kita akan memastikan di masing – masing node database apakah sudah tereplikasi atau belum

Node01

Node02

Node03

Saat ini database CMS Joomla sudah tereplikasi di masing – masing node galera.

Selanjutnya kita akan mencoba melihat koneksi di sisi proxy atau load balancing MariaDB MaxScale di node04

Selamat saat ini CMS Joomla Anda sudah menggunakan Database high availability cluster.

Selamat mencoba 😁

comments powered by Disqus