Masalah case-sensitive di Vagrant pada OSX

Sebagai programmer, khususnya web programmer sering dong ya masalah dimana sebuah aplikasi yang kamu develop berjalan sempurna di laptop atau komputer mu, kemudian ketika handsoff ke klien atau kamu upload-in ke server mereka, tiba-tiba aplikasi kamu gak works sebagaimana mestinya, dan kamu bakal pakai alasan sejuta programmer, “ditempat saya jalan kok”.

Nah biasanya yang seperti ini terjadi karena perbedaan environment development dari mode development ke mode produksi. Contoh paling gampang, kamu develop di windows atau OSX, dan server nya umumnya menggunakan ubuntu atau distro linux lainnya. Hal ini memungkinkan setingan, atau konfigurasi atau memang behavior dari OS nya yang memang berbeda yang menyebabkan aplikasi kamu gak works. Itu baru dari sisi OS belum lagi sisi yang lebih detail misal versi server yang digunakan, versi PHP atau versi software pendukung lainnya yang ternyata berbeda dan ternyata sebagian dari kode mu masih menggunakan kode yang deprecated misalnya.

Untuk itu sudah banyak yang menggunakan vagrant, tujuannya untuk membuat virtual server di komputer / laptop lokal mereka dengan membuat setingan yang sama persis dengan keadaan server sehingga ketika pindah ke server produksi, aplikasi bisa berjalan sempurna.

Namun ternyata, walaupun sudah menggunakan vagrant menggunakan setingan yang sama dengan server salah satu klien saya, ternyata masih ada beberapa masalah yang muncul. Salah satunya adalah case sensitive issue. Pastinya kamu tau kalau linux menerapkan case sensitive untuk operasi file nya, sehingga “Folder” dan “folder” akan dianggap berbeda. Namun di windows dan OSX (baru sadar) menerapkan case sensitive, sehingga besar kecil huruf tidak berpengaruh. Nah problem muncul ketika aplikasi web yang kamu develop menggunakan windows ataupun OSX dan kamu gak rapi memberi nama file atau meload file di kode mu, maka akan jadi masalah ketika kamu upload ke server yang berbasis linux.

Loh katanya sudah pakai vagrant, sudah sama seperti server, kok masih ada issue OS seperti ini?

Iya, itu dia, saya juga baru ngeh, setelah develop salah satu web aplikasi yang cukup lama masa pengerjaannya, ada saja masa nya dimana saya khilaf memberi nama file, meng-include file, dan setelah di upload ternyata error.

Jadi si vagrant memang sudah menjalankan distro linux untuk keperluan server, namun namanya juga menumpang ke Host OS, sifat case insensitive dari Host OS ikut terbawa ke virtual server nya. (sumber)

Salah sendiri gak rapi

Iya, namanya juga manusia ada khilaf nya, dan kadang ada kode yang merupakan hasil kerja dari anggota tim lain yang gak aware dengan isu case sensitive ini (nyari kambing hitam).

Saya tidak tahu untuk pengguna windows, namun di OSX secara default memang menerapkan case-insensitive, tapi sebenarnya kita bisa memilih untuk menggunakan fitur case sensitive.

Jadi untuk mengatasi masalah ini, saya membuat partisi baru di OSX menggunakan disk utility, pada partisi baru tersebut saya pilih tipe nya case sensitive, dan non encrypted (untuk non encrypted ini personal choice, saya gak mau ribet aja dengan masalah permission dan encrypted ini ketika ntar mau backup isi hardisk).

Screen Shot 2016-02-22 at 4.42.46 PM

Sengaja dipilih di partisi baru atas beberapa pertimbangan

  1. Kalau full hd di ubah jadi case sensitive, berarti mesti install ulang yang berarti bakal ribet urusan backup file dan aplikasi yang terinstall.
  2. Apple juga punya alasan terselubung pastinya kenapa menggunakan case sensitive, kalau dirubah full hd takutnya bakal ada yang masalah di core nya.
  3. Sekalian buat backup disk, jadi ntar kalau mau install ulang, gak perlu kuatir backup file kerjaan, cukup format partisi lain nya saja, partisi yang case-insensitive yang barusan dibuat beserta file-file kerjaan bisa tetep gak kehapus tanpa harus ribet backup.

So setelah dibuat partisi baru dengan format case sensitive, lalu memindahkan semua file kerjaan saya ke partisi baru tersebut, hasilnya

Screen Shot 2016-02-22 at 5.00.41 PM

Berhasil jadi error! fiuh.. berarti sekarang web server nya sudah menerapkan mode case sensitive.

Dan ternyata, PHPStorm yang malah jadi keluar warning setelah di pindah ke case sensitive disk.

Screen Shot 2016-02-22 at 8.06.29 PM

Tapi seperti pesannya, cukup klik more details untuk benerin.

Sebenarnya masalah seperti ini bisa terjadi kalau kamu pake code style yang standar dan di approve bersama rekan 1 tim, sehingga sudah paham banget kapan mau pake huruf besar kecil, dan alasan kenapa kamu mesti rapi seperti itu. Jadi gak memberi nama file sesuai mood, misal lagi di revisi mulu ama si klien bukan berarti kamu bisa memberi nama file pake huruf kapital semua 😀 *kidding bro


Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *