Sesuai janjiku di milis, ini ada beberapa hasil ato tepatnya oprekan terhadap kinerja mapserver di sandbox-ku.
Banyak yang bertanya-tanya, “Lama-kelamaan server kok makin berat ya?”
Atau, “Aduh, datanya kok ke-load sebagian? Apa salah dan dosaku?”
Dan pertanyaan-pertanyaan lainnya yang mungkin dapat membantu para webhoster untuk mulai menyediakan jasa hosting mapserver tanpa takut lagi ancaman keamanan karena hampir keseluruhan program berjalan pada mode cgi. Intinya, klo mo hosting webmapserver, pihak hoster gak harus selalu mentok pada VPS ato dedicated bahkan colocation server. Sekali lagi, maenanku saat ini semuanya content yang membutuhkan bandwidth gila-gilaan sedangkan arga bandwidth masih ajubilah mahalnya. Dan dukungan teknis (technical support) yang masih jarang. Makanya di milis aku tawarin klo mau gabung sewa satu server terpusat, kita keroyok rame-rame ntar aku yang nginstalin, tentu harganya jauh lebih murah.

Okelah, itu sekedar prolog perkenalan mengenai beberapa posting ke depan.

Mari kita lihat yang menjadi latar belakang permasalahannya, dan perlu diingat ini semacam summary yang diperoleh dari milis resmi dan situsnya mapserver plus hasil oprekan sendiri untuk pihak web hoster:

  1. Semua technical support di web hoster tentu sudah mengenal adanya google maps atau yahoomaps (go to hell live-nya m$ huehehehe), tapi berapa orang yang tau kinerja teknisnya?
  2. Ambil asumsi semua pihak technical support web hoster (atau para admin dedicated server di apapun) tau dan bisa compiling mapserver, tapi gitu mereka tau bekerja pada mode cgi, hmmm… bisa dibayangkan betapa rewelnya mereka mengatakan tidak untuk shared hosting kecuali harus vps atau dedi/colo server. (ini bahkan berlaku untuk —yang katanya webhoster terbesar di Indonesia— di gedung cyber kuningan)
  3. Karena openGIS lebih ‘berpihak’ pada PostgreSQL, berapa banyak dari mereka yang menyertakan postgis dalam paket hosting atau (bahkan ironisnya) yang menyertakan postgresql dibandingkan MySQL yang katanya akan terasa ‘kampungan’ kalo tidak disertai MySQL?
  4. Orang-orang cenderung upgrading daripada optimalisasi hardware dan software yang terlibat
  5. Dan satu lagi yang paling penting, PHP CGI !!!
    Ayo, ngacung pihak webhosting yang menyertakan php dalam mode cgi default! Yaaaa… gak ada deh. “SECURITY, MAS!!!”, jawab kalian.
    Ya ya ya, I know it! Dan satu lagi memang load komputer untuk ini menjadi sangat berat (terjadi saat PHP5 baru keluar dan ada masalah pada kompabilitas fcgi-nya). Ini terjadi waktu aku setup server di sini untuk maps dan flex [dot] lontongcorp.com-nya.
  6. Dan berapa orang developer s/w yang paham (hanya) dengan membaca phpinfo fitur-fitur yang tersedia di server itu seperti apa?

Mudah-mudahan ini menjadi semacam jembatan antara developer s/w dengan penyedia layanan dalam hosting webmapping. Ini lebih ke technical report yang pengennya sih dibukuin untuk lebih detail. O ya, sebagai contoh di sini aku menggunakan FreeBSD, PostgreSQL 8.2.x, MySQL 5.x dan PHP 5.
And I don’t like java coz it’s make my server’s load become crazy for this stuff. Sorry.

Solusi simpel permasalahan di atas adalah:

  1. Mapserver CGI diakses menggunakan WMS online ataupun menggunakan mod_alias dan mod_rewrite apache, atau
  2. Apache untuk keamanan data dibuat seperti pada tutorial sebelumnya (MapSecuring)
  3. Data peta dasar yang besar disimpan pada database postgresql sedangkan data yang kecil disimpan pada database dbf
  4. Data point (POI/ROI/ or whatever u call it), disimpan pada mysql dengan parsing XML (GML) dalam koordinat pada client dan hanya berdasarkan area terpilih saja
  5. Generated image dibuat dengan tile-cache untuk cachingke client tanpa memberatkan server lebih lanjut
  6. Generated icon baca GML tadi dan ditampilkan terpisah dari data map
  7. PHP dipasang dengan dua mode, apache module dan CGI
  8. Gunakan tools-tools bantuan yang mungkin bisa mempercepat kinerja, semacam: FastCGI, KaMap, OpenLayers, atau implementasi AJAX lainnya kayak Adobe Flex misalnya (lagi ngoprekin ini soalnya hehe…)

Karena kepanjangan, aku lanjutkan laen kali untuk pembahasannya satu per satu dilengkapi dengan source code mapviewer. So, stay tune :p
Silahkan tinggalkan komentar di bawah, apa aja yang pengen ditambahin di tutorial kali ini yang ingin dibahas sampai habis ntarnya. Klo gak ada komen bisa-bisa malah jadi males dan lupa mo posting lagi kelanjutannya hehe…

***** fiuhhh…. bakal panjang neh keknya (padahal aku tadinya pengen ke tutorial multimedia dulu :( )


Gini bleh, Pas nginstall pertama (ato sysinstall) kan ada pilihan untuk distribusi ports. centang aja brur. klo lewat cd-nya mode minimal aja yang penting lengkap dengan ports dan src/sys (klo mo ngompail kernel juga — ntar aku kasi tau di laen post ato cari sendiri :p ).

Yang pertama, ubah dulu make.conf di /etc ato di /usr/local/etc trus install cvsup-without-gui dengan ports-tools.

nah agak2 lama tuh, jadi bisa lu tinggal makan, maen game ato ngapain lah asal jangan keterusan :D Sekarang tinggal nginstall paketnya kan. Di port FreeBSD itu digolongkan dalam kategori-nya. klo gak tau letaknya bisa coba2 ketik perintah:

whereis php5 (misalnya neh)
php5: /usr/ports/lang/php5

lu kan tinggal kasih perintah :

cd /usr/ports/lang/php5 && make install clean

Ya okelah, sekarang kukasih contoh untuk install Apache+PHP+MySQL

  1. MySQL ajalah dulu ya (yang 5.1 biar support type geometry)
    cd /usr/ports/databases/mysql51-server && make install clean
     
    /usr/local/bin/mysql_install_db
     
    chown -R mysql:mysql /var/db/mysql
     
    /usr/local/bin/mysqld_safe &
     
    /usr/local/bin/mysqladmin -u root password "password-root-mysql"
     
    /usr/local/bin/mysqladmin -u root -h nama.host.server.lu password "password-root-mysql"
     
    echo 'mysql_enable="YES"' >> /etc/rc.conf
  2. Sekarang Apache (apache22 aja lu bilang biar gaul wuehehehehe….)
    cd /usr/ports/www/apache22 && make install clean
     
    ee /usr/local/etc/apache22/httpd.conf (edit sesuai keinginan lu deh)
     
    echo 'apache22_enable="YES"' >> /etc/rc.conf
  3. Install PHP (php5?)
    cd /usr/ports/lang/php5 && make install clean
     
    echo 'AddType application/x-httpd-php .php .php3 .php4 .php5 .phtml' >> /usr/local/etc/apache22/httpd.conf
     
    echo 'AddType application/x-httpd-php-source .phps' >> /usr/local/etc/apache22/httpd.conf
  4. Install extension-nya PHP
    cd /usr/ports/lang/php5-extensions && make install clean
  5. Install Zend Optimizer
    cd /usr/ports/devel/ZendOptimizer && make install clean

Udah beres deh. Tinggal ngetest aja. Untuk pertama kali jalanin apache-nya pake perintah:

/usr/local/etc/rc.d/apache22 start

selanjutnya gak usah lagi soalnya tadi service apache kita udah kita aktifin di /etc/rc.conf. Udah ngerti, coy? Oya, kalo mo uninstall pake perintah make deinstall di folder paket-nya. Gimana?