Friday, November 27, 2009

Forcing Apache Case-Insensitive

Pernah mengalami masalah case-sensitive dlm coding?
Atau migrasi dari platform yg case-insensitive
ke case-sensitive, maka harus periksa seluruh code,
untuk memastikan semua dlm case yg benar? Saya pernah!
Dan sampai saat ini pun terkadang masih mengalaminya.
Saya mengalami ketika project awal mulanya dikerjakan
di Windows, dan skg saya hrs migrasi ke Linux.

Sungguh menjadi pekerjaan yg banyak. Anyway saya akan
memberikan tips utk menghindari ini. Dg mengaktifkan
mod_speling, agar kesalahan-kesalahan case seperti,
adesanto_php dg Adesanto_Php, dapat diabaikan.

Caranya, karena utk Windows adalah platform
case-insensitive maka saya hanya akan membahas,
mengaktifkan mod_speling di Linux. Pastikan di folder
apache modules blm ada mod_speling.so. Jikalau sudah
ada maka anda langsung ke step no.7-9.

1. Download tar/zip apache2 (source).
2. Unzip/Untar apache2.
3. Masuk ke direktori apache2 yg telah ter-Extract,
lalu masuk ke direktori modules.
4. Jadilah superuser (root),
(fedora) # apxs -c mod_speling.c
5. # apxs -i -a -n mod_speling mod_speling.la
6. setelah kompilasi berhasil,
vi httpd.conf
7. tambahkan ,
LoadModule mod_speling mod_speling.so

<ifModule>
CheckCaseOnly on
ChecSpelling on
</ifModule>
8. restart apache.
9. pastikan module sudah jalan dg ketikan ini di
shell,
apache -M

Setelah semua langkah diatas telah selesai,
saatnya kita test, misalkan ada file adesanto_php
maka cobalah utk memanggil nya dg Adesanto_Php,
langsung dari browser atau code anda. Hal yg harus
diingat, krn ada perbedaan case maka apache akan
mencoba mencari kesamaan yg berarti ada time
overheads. Utk tingkat scale medium ini tidaklah
menjadi masalah. Cek access_log, disana tercatat
ada 2-3 atau lebih request utk filename yg sama
tetapi beda case. Utk informasi lbh lanjut
langsung ke Apache Documentation.

No comments: