Replikasi Session Untuk PHP antar Host

High Availability HTTP Server

Dalam artikel lalu ( https://blogit.bimosaurus.com/2018/05/16/setting-dasar-haproxy-sebagai-https-load-balancer/ ), telah kita pelajari bagaimana sebuah request HTTP, akan dibagikan bebannya ke beberapa server, dengan mekanisme HTTP Load Balancing. Metode LB nya dapat bermacam-macam, seperti Round Robin, First, Least Conn, Source. Metode itu dipilih untuk dapat membagikan beban akses HTTP secara merata.

haproxy-req-scheme
Continue reading “Replikasi Session Untuk PHP antar Host”

Apache : Menonaktifkan Fungsi PHP pada Direktori

Pada model webserver dengan Apache, PHP berjalan atas ‘perintah’ Apache. PHP dapat berjalan dengan beberapa mode :

1. mod_php

2. CGI mode

3. FPM mode

PHP akan menjalankan sintaks-sintaks PHP, dan akan memberikan hasil keluarannya sebagai masukan bagi Apache. Apache akan mengeluarkan hasilnya dengan mengirimkan hasilnya pada browser, dengan format HTML.

Sebuah aplikasi berbasis web biasanya memiliki sebuah direktori (folder) tempat upload file. Direktori ini selalu harus dapat ditulisi oleh webserver (apache writable). Karena sifat writable inilah, sebuah uploadable-directory memiliki potensi risiko bahaya serangan inject. Serangan-serangan hacking, pada umumnya akan mengarah lebih dulu pada direktori-direktori sejenis itu. Penyerang melakukan upload backdoor, php-shell atau sejenisnya yang dapat digunakan untuk mengontrol seluruh direktori dan database, pada uploadable directory tersebut. Hal ini yang akan membuat dilema seorang pengelola server. Jika direktori tidak dapat ditulis (not-writable) maka file gambar dan sejenisnya tidak dapat diupload. Namun jika dapat ditulisi, akan menjadi sasaran bagi para penyerang.
Continue reading “Apache : Menonaktifkan Fungsi PHP pada Direktori”

[Trik] Query SQL Apa Yang Dapat Dikenai Fetch PHP

Ada satu pertanyaan mendasar yang ditanyakan melalui email, yang mungkin dapat langsung saya balas sekarang, melalui posting. Sayangnya penanya berharap tidak dicantumkan nama di sini, tapi tidak masalah, karena ini barangkali akan penting bagi siapapun.

Jawaban mudahnya: Fetching Result, digunakan untuk perintah SQL yang menghasilkan keluaran data, bukan sekedar mengubah data. Contoh sintaks fetching result dalam PHP adalah

  1. mysql_fetch_row (numerik)
  2. mysql_fetch_assoc (assosiatif)
  3. mysql_fetch_array (numerik assosiatif)

Sedangkan sintaks-sintaks SQL yang dapat dikenai fetching result antara lain:
Continue reading “[Trik] Query SQL Apa Yang Dapat Dikenai Fetch PHP”

[Tips] Menambah “Add More” Input Form

Tentu kita tidak asing dengan Form macam ini:
addmore
Itu adalah form pengiriman email pada GMail. Pada form tersebut, memungkinkan kita menambahkan input type file untuk penambahan attachment file, dan input type text pada kolom CC dan BCC. Semua itu hanya kita lakukan dalam satu kali klik tanpa mereload halaman. Bagaimana cara membuatnya?
Continue reading “[Tips] Menambah “Add More” Input Form”

Tutorial Membuat Aplikasi Webchat dengan PHP, MySQL, JQuery

Webchat adalah sebuah media obrol interaktif memalui web. Contoh webchat sering kita lihat di meebo atau fasilitas chat Facebook. Kita pun bisa membuat. Secara konsep sederhana, chat terdiri dari sebuah halaman POST chat, yang dikirimkan ke server, dan ditampilkan melalui halaman web. Secara standard, web tidak akan bisa menerima POST chat dan menampilkannya tanpa merefresh. Maka dengan fasilitas Javascript, kita bisa merefreshkan beberapa bagian elemen web tersebut, tanpa harus merefresh halaman secara keseluruhan. Proses merefresh elemen(div) tersebut jika kurang bijak juga akan banyak memakan resource browser dan menghabiskan memori komputer.

webchat

Disini kita belajar memahami sebuah konsep web dengan menggunakan PHP, MySQL dan JQuery. JQuery sendiri adalah sebuah library Javascript yang telah disusun untuk keperluan penyederhanaan dan optimalisasi fungsi-fungsi javascript. JQuery ini juga cukup tangguh untuk pengganti ajax terutama untuk keperluan hubungan Client Server. Marilah kita mencoba merancang sebuah skenario pembuatan sistem chat berbasis web.

Di sini saya merancang menggunakan tiga (3) file script server utama yaitu :

  • index.php
  • login.php
  • logout.php

Script Server tersebut dikunci tampilan oleh file: styles.css. Sedangkan script sisi-client (diletakkan di direktori js) yang digunakan adalah:

  • library jquery
  • chat.js

Script pendukung di sisi server (diletakkan di direktori scripts) akan dipisahkan sesuai dengan tugasnya antara lain:

  • database.php (penghubung dengan database)
  • datetime.php (pengambil value waktu terakhir chat)
  • postchat.php (pengirim kalimat chat)
  • getchat.php (pengambil kalimat chat secara real-time)
  • chatlist.php (pengambil chat yang sudah ada sebelumnya)
  • chatuserlist.php (pengambil data user yang aktif)

Secara rancangan sistem ini akan berjalan dengan kendali penuh dari script chat.js.
Continue reading “Tutorial Membuat Aplikasi Webchat dengan PHP, MySQL, JQuery”

[Tips] Membuat Multi Subdomain dan Memetakan dalam Database

Kita tentu sering menggunakan fasilitas blog dengan support subdomain, seperti wordpress.com, atau blogger.com dengan layanan blogspot.com dan lain sejenisnya. Ketika mendaftarkan sebuah blog, maka kita akan diberikan sebuah blog dengan subdomain seperti yang kita daftarkan, seperti contoh: http://bimosaurus.wordpress.com. Sedangkan kita tahu bahwa biasanya proses pembuatan subdomain atau domain saja memerlukan waktu propagasi yang cukup lama, namun dalam pembuatan blog, bisa langsung. Kok bisa?

 

DNS

Untuk masalah DNS kuncinya adalah pada DNS pointernya. Selama DNS Server kita mendukung penggunaan wilcard DNS, maka tidak akan masalah. Setiap subdomain akan langsung diarahkan ke web kita tersebut. Wilcard DNS akan ditandai dengan tanda *. Untuk anda pengguna linux console dapat melakukan pointing wilcard seperti demikian

  IN   A   IP_ADDRESS
* IN   A   IP_ADDRESS

dns

Disana artinya bahwa untuk seluruh subdomain dari domain anuanucoba.com akan diarahkan ke IP Address 111.111.222.222. Artinya segala akses semua subdomain akan diarahkan pada IP Address tersebut. Bisa juga IP tersebut adalah komputer yang digunakan untuk DNS itu sendiri. Selanjutnya, setelah data tersebut terarah ke IP Address itu, segala request web akan dilayani oleh Webserver (Apache, LightHTTPD, HTTPD dsb). Setelah membentuk wilcard DNS, proses propagasi hanya untuk propagasi wilcardnya. Sehingga setelah proses propagasi (penyebaran domain ke server server DNS) itu selesai, seluruh subdomain akan dianggap sama dengan wilcard DNS. Untuk yang biasa dengan setting WordPressMU tentu telah terbiasa cara ini.

 
Continue reading “[Tips] Membuat Multi Subdomain dan Memetakan dalam Database”

Berkreasi dengan Peta HTML dan tag Map Area [Bagian 2]

MENGAMBIL KOORDINAT SEBUAH TITIK DARI SEBUAH GAMBAR

Jika pada Posting lalu https://blogit.bimosaurus.com/2013/03/16/berkreasi-dengan-peta-html-dan-tag-map-area-bagian-1/ telah dipaparkan bagaimana cara menyajikan sebuah gabungan antara gambar peta dan data koordinat dalam source HTML, maka di bagian ini akan dijelaskan bagaimana cara mengambil koordinat sebuah gambar. Untuk mengambil value koordinat yang diperlukan oleh MAP AREA, kita akan menggunakan bantuan Javascript untuk menentukannya.

Format koordinat MAP AREA untuk kategori POLYGON adalah sebagai berikut :

x1,y1,x2,y2,x3,y3,x4,y4………xn,yn
Continue reading “Berkreasi dengan Peta HTML dan tag Map Area [Bagian 2]”