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 😁