WWW.USBINOV.COMPiranti USB untuk PC, Laptop dan Raspberry Pi.

Instalasi dan Testing Web Server Mongoose Pada Raspberry Pi

Bereksperimen dengan komputer mini Raspberry Pi sangatlah menyenangkan. Meskipun Raspberry Pi sebenarnya tidak beda dengan komputer linux yang biasa kita pakai, tapi rasanya tetap saja lebih menyenangkan bereksperimen dengan Raspberry Pi. Bentuk Raspberry Pi yang mini dan embeddable serta dilengkapi dengan GPIO, HDMI, port USB, A/V dan juga kamera, membuat kita jadi banyak angan-angan ingin membuat aplikasi ini dan itu berbasis Raspberry Pi.

Nah, pada kesempatan kali ini saya akan memberikan catatan eksperimen tentang web server. Bukan Apache, bukan Lighttpd dan bukan pula Nginx. Web server yang akan saya gunakan dalam eksperimen ini adalah Mongoose.

Mongoose adalah program web server mini yang tersedia untuk platform Windows, Linux, Mac dan beberapa platform lainnya. Web server Mongoose selain ringan juga sangat mudah digunakan. Mongoose bisa diletakkan pada direktori manapun dan secara default menjadikan direktori tempat Mongoose dieksekusi sebagai webroot. Jadi kita bisa menyimpan web server dan website dalam sebuah flashdisk (atau media penyimpan portable yang lain) dan kita dapat menjalankannya di komputer manapun tanpa instalasi. Ini cocok untuk digunakan sebagai alat pendukung presentasi.

Mongoose tersedia dalam bentuk binary (siap-pakai) dan dalam bentuk sourcecode. Untuk platform Raspberry Pi (linux-arm), kita harus melakukan kompilasi sendiri dari sourcecode Mongoose. Pada saat ini versi terbaru Mongoose adalah versi 6.0. Pada versi 6.0 ini, Mongoose telah secara penuh menjadi Embedded Web Server yang mendukung berbagai protokol jaringan antara lain: .

  • plain TCP, plai UDP, SSL/TLS
  • HTTP client/server
  • Websocket client/server
  • JSON-RPC client/server
  • MQTT client/broker
  • CoAP client/server
  • DNS client/server, async resolver

Akan tetapi mohon maaf Pembaca sekalian karena pada eksperimen ini saya tidak menggunakan Mongoose 6.0 melainkan versi yang cukup lawas, yakni Mongoose 3.0. Mongoose versi 3.0 ini berfungsi sebagai program aplikasi web server pada umumnya, jadi lebih sesuai dengan judulnya yang intinya hanyalah memperkenalkan program web server Mongoose sebagai alternatif web server selain Apache, Nginx dan Lighttpd.

Berbeda dengan versi 3.0, Mongoose versi 6.0 adalah Embedded Web Server yang dengannya kita menjadi lebih mudah dalam membuat aplikasi berbasis teknologi web. Mongoose 6.0 perlu pendalaman dan eksperimen lebih lanjut mengingat fitur-fitur Mongoose 6.0 yang banyak. Sebagai gambaran saja, dengan mengintegrasikan file mongoose.c dan mongoose.h dalam program aplikasi yang kita buat, kita bisa membuat web server sederhana dalam bahasa C dengan 34 baris program saja. Selain itu, kita juga bisa membuat aplikasi berbasis websocket. Pada contoh program yang disertakan, terdapat contoh aplikasi chat dengan websocket yang panjang kode programnya hanya 80 baris saja.

Instalasi Mongoose 3.0

Langkah-langkah instalasi Mongoose 3.0 pada board Raspberry Pi adalah sebagai berikut:

  1. Download source Mongoose dengan perintah:
    wget http://mongoose.googlecode.com/files/mongoose-3.0.tgz
  2. Ekstrak dengan perintah:
    tar xvzf mongoose-3.0.tgz
  3. Masuk ke direktori mongoose dengan perintah:
    cd mongoose
  4. Kompilasi source dengan perintah:
    make linux
  5. Jika tidak ada masalah maka akan tercipta file aplikasi mongoose yang siap dijalankan.

Ketika dijalankan, Mongoose akan menyediakan layanan HTTP pada alamat lokal dengan nomor port 8080. Jadi semisal alamat IP Raspberry Pi kita adalah 192.168.1.102, maka kita bisa mengaksesnya pada browser dengan alamat http://192.168.1.102:8080.

Nah, selanjutnya kita buat file index.html untuk pengujian. Gunakan editor nano atau vi, lalu ketik skrip berikut ini.

index.html

<head>
  <title>Mongoose RPi</title>
  <H1>Testing Web Server Mongoose Pada Raspberry Pi</H1></head>

<body>
  <p>Halaman ini dilayani oleh webserver Mongoose yang running di Raspberry Pi.</p>
  <p>Keren, kan?</p>
  <table border="1" cellpadding="5">
	<tr>
		<th>Satu</th>
		<th>Dua</th>
		<th>Tiga</th>
	</tr>
	<tr>
		<td>Empat</td>
		<td>Lima</td>
		<td>Enam</td>
	</tr>
  </table>
  <br><br><br>
  <hr><a href=http://raspi.teknikelektrolinks.com>http://raspi.teknikelektrolinks.com</a>
</body>

Setelah file index.html selesai dibuat, kita bisa menjalankan web server mongoose dengan perintah:

$ ./mongoose

Dan program akan menampilkan tulisan: Mongoose web server v.3.0 started on port(s) 8080 with web root [.] yang artinya web server Mongoose telah running dan siap melayani permintaan HTTP melalui port 8080 dengan direktori dimana Mongoose dijalankan menjadi webroot. Kita bisa mengujinya dengan membuka browser kesayangan kita melalui salah satu komputer dalam jaringan dan masukkan alamat URL sesuai dengan alamat IP Raspberry Pi dengan port 8080. Untuk mengetahui alamat IP sistem kita bisa gunakan perintah ifconfig sebagai berikut.

raspi_ifconfig

Raspberry Pi yang saya gunakan dalam eksperimen ini kebetulan memiliki alamat IP 192.168.1.108, jadi alamat URL yang saya masukkan pada browser adalah http://192.168.1.108:8080. Dan hasilnya adalah sebagai berikut:

mongoose_raspi_indexhtml

Alhamdulillaah, berarti web server Mongoose telah bekerja dengan baik. Sekarang kita akan mencoba kemampuan Mongoose dalam memroses file CGI. Kita akan membuat file CGI untuk membuat tampilan halaman web sederhana menggunakan bahasa C. Nah, berikut adalah listing programnya.

#include <stdio.h>
#include <time.h>

int main()
{
	int i;
	time_t t;

	time(&t);

	printf("Content-type: text/html\r\n\r\n");
	printf("<!doctype html>");
	printf("<html><title>Mongoose CGI RPi</title>");
	printf("<head><h1>Testing Mongoose CGI Pada Raspberry Pi</h1><hr></head>");
	printf("<body><p>File hello.cgi ini dibuat menggunakan bahasa C dan dikompilasi menggunakan GCC.</p>");
	printf("<p>Tanggal hari ini: %s</p><p>", ctime(&t));
	printf("<p>Perulangan for...</p>");
	for (i=0; i<=20; i++) printf("%4d", i);
	printf("</p><br><br><br><br><hr>");
	printf("<p>Mongoose Web Server on Raspberry Pi<br>");
	printf("http://raspi.teknikelektrolinks.com</p>");
	printf("</body></html>");
	return 0;
}

Program ini akan menampilkan judul, sedikit keterangan, tanggal server dan deret bilangan 0-20. Ketik dan simpan listing program di atas dengan nama file hello.c lalu kompilasi dengan perintah:

gcc –o hello.cgi hello.c

Proses kompilasi tersebut akan menghasilkan file aplikasi hello.cgi. Selanjutnya kita akan coba memanggilnya dari browser dengan alamat http://192.168.1.108:8080/hello.cgi. Berikut adalah hasilnya.

mongoose_raspi_hellocgi

Alhamdulillaah…

Wow, lumayan bukan? Mongoose bisa menjadi alternatif bila Anda membutuhkan web server yang ringan dan mudah digunakan. Dan jika Anda menginginkan yang lebih keren, Anda bisa menggunakan Mongoose 6.0.

Kabar Baik Untuk Anda

Kabar baik saya sampaikan kepada Anda karena jika Anda berminat untuk melakukan eksperimen ini, Anda tidak perlu melakukan sendiri seluruh proses di atas karena Anda bisa mendapatkan aplikasi web server monggose, file index.html, hello.c dan hello.cgi dengan cara menulis komentar pada kolom komentar di bawah tulisan ini. Tuliskan komentar Anda beserta nama dan alamat email dan saya akan mengirimkan file-file tersebut langsung ke alamat email Anda dalam bentuk file terkompresi.

Nah, sekian dulu Catatan Eksperimen Raspberry Pi kali ini Semoga bermanfaat dan selamat berkarya.

23 Comments

Add a Comment

Your email address will not be published. Required fields are marked *