Cara Memisahkan Apache Web Server dan MariaDB Database Server

Memisahkan Apache dan MariaDB pada mesin server yang berbeda bertujuan agar pemakaian sumber daya (RAM, CPU, I/O) terpisah, tidak saling membebani. Pemisahan server ini dapat dilakukan dengan mengkonfigurasi MariaDB agar dapat diakses secara remote.

Tutorial ini menggunakan Ubuntu Server 16.04 10.0.8.38 = Apache Web Server 10.0.8.119 = MariaDB Database Server

-Konfigurasi MariaDB Server-

Edit file config MariaDB

[INPUT]

1 sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Ganti bind-address dari 127.0.0.1 menjadi IP Server MariaDB

[INPUT]

1 bind-address = 10.0.8.119

Restart service MariaDB

[INPUT]

1 sudo systemctl restart mysql

Membuat user agar MariaDB dapat diakses dari IP 10.0.8.38.

[INPUT]

1 2 3 4 mysql -u root -p CREATE USER ‘webapps’@’10.0.8.38’ IDENTIFIED BY ‘webapps’; GRANT ALL PRIVILEGES ON *.* TO ‘webapps’@’10.0.8.38’; FLUSH PRIVILEGES;

-Pengujian Akses-

Pengujian via MariaDB Client (Console)

Setelah melakukan konfigurasi pada MariaDB, selanjutnya melakukan pengujian mengakses MariaDB server dari mesin Apache server dengan menggunakan aplikasi mariadb-client.

Install mariadb-client

[INPUT]

1 apt install mariadb-client

Login ke MariaDB Server

[INPUT]

1 mysql -u webapps -h 10.0.8.119 -p

Cek status MariaDB

[INPUT]

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 MariaDB [(none)]> \s ————– mysql  Ver 15.1 Distrib 10.0.29-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2   Connection id:          33 Current database: Current user:           webapps@apache.lxd SSL:                    Not in use Current pager:          stdout Using outfile:          ” Using delimiter:        ; Server:                 MariaDB Server version:         10.0.29-MariaDB-0ubuntu0.16.04.1 Ubuntu 16.04 Protocol version:       10 Connection:             10.0.8.119 via TCP/IP Server characterset:    utf8mb4 Db     characterset:    utf8mb4 Client characterset:    utf8mb4 Conn.  characterset:    utf8mb4 TCP port:               3306 Uptime:                 52 sec   Threads: 2  Questions: 94  Slow queries:   Opens: 15  Flush tables: 1  Open tables: 78  Queries per second avg: 1.807 ————–

Bandingkan status MariaDB jika diakses langsung dari mesin servernya. Pada status Connection terlihat koneksi yang digunakan untuk mengakses MariaDB.

[INPUT]

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 MariaDB [(none)]> \s ————– mysql  Ver 15.1 Distrib 10.0.29-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2   Connection id:          32 Current database: Current user:           root@localhost SSL:                    Not in use Current pager:          stdout Using outfile:          ” Using delimiter:        ; Server:                 MariaDB Server version:         10.0.29-MariaDB-0ubuntu0.16.04.1 Ubuntu 16.04 Protocol version:       10 Connection:             Localhost via UNIX socket Server characterset:    utf8mb4 Db     characterset:    utf8mb4 Client characterset:    utf8mb4 Conn.  characterset:    utf8mb4 UNIX socket:            /var/run/mysqld/mysqld.sock Uptime:                 17 sec   Threads: 1  Questions: 91  Slow queries:   Opens: 15  Flush tables: 1  Open tables: 78  Queries per second avg: 5.352 ————–

Pengujian via PHP

Pengujian dilakukan dengan membuat file koneksi database PHP.

Membuat file koneksi

[INPUT]

1 nano /var/www/html/database.php

Isinya

[INPUT]

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

Akses http://IP_WEB_SERVER/database.php, jika berhasil tampil pesan Sukses terhubung ke database.

-phpMyAdmin-

Secara default phpMyAdmin hanya untuk mengakses database MariaDB/MySQL yang berada pada server yang sama dengan web server. Agar dapat mengakses database MariaDB/MySQL secara remote yang berada pada server yang lain kita harus menambahkan konfigurasi database server.

Edit file config phpMyAdmin

[INPUT]

1 2 3 cd /etc/phpmyadmin cp config.sample.inc.php config.inc.php nano config.inc.php

Tambahkan config MariaDB server pada baris paling bawah.

[INPUT]

1 2 3 4 5 6 7 8 9 $i++; $cfg[‘Servers’][$i][‘verbose’] = ‘Server 10.0.8.119’; $cfg[‘Servers’][$i][‘host’] = ‘10.0.8.119’; $cfg[‘Servers’][$i][‘port’] = ‘3306’; $cfg[‘Servers’][$i][‘socket’] = ”; $cfg[‘Servers’][$i][‘connect_type’] = ‘tcp’; $cfg[‘Servers’][$i][‘extension’] = ‘mysqli’; $cfg[‘Servers’][$i][‘auth_type’] = ‘cookie’; $cfg[‘Servers’][$i][‘AllowNoPassword’] = false;

Akses http://IP_WEB_SERVER/phpmyadmin. Ada tambahan pilihan Server Choice. Login menggunakan user dan password yang sudah dibuat sebelumnya.

Lihat info Database server, no IP 10.0.8.119.

selamat mencoba 🙂

Leave a Reply

Your email address will not be published.