Apache and mime types

A few days ago I started a project of upgrading a CRM system written in PHP.

Now, the current server is using Apache 1.3.33 and PHP 5.1.6, old, right?, and, hold on, the server has a dual core x86 CPU, 4Gb of memory, which holds it for day to day use, but starts to squeak every now and then.

The new server has 8 cores, 8Gb of memory which can be upgraded since it is a Virtual Machine, a 64bit version of gentoo linux installed, and it runs Apache 2.2.24 with PHP 5.4.13 as a mod and is constantly updated.

I thought that the PHP syntax and function changes would be a pain, apparently that was nothing, Apache upgrade and non-planned configurations in the php code and file namings, they made the transfer more difficult.

The problem was that one specific file, a JS dictionary file with the name dict.hebrew.utf-8.js was being served with the encoding iso-8859-8 (Visual Hebrew), what made all the content seem like gibberish, funny, hu?

Snooping and searching the web, I tried simply setting the AddDefaultCharset UTF-8, but that did nothing, so I looked at my wall and saw the page saying RTFM, and so I did…

http://httpd.apache.org/docs/2.2/mod/mod_mime.html

Then it hit me, the setting AddCharset iso-8859-8 .hebrew is set before AddCharset UTF-8 .utf8 .utf-8 (I added the last one for compatibility) so I commented out the utf8 line and copied it to be the first AddCharset line, and WALLA, it did it.

So, to conclude my messy post… Remember Remember

  • First come first served
  • Name static files with language or encoding names thoughtfully
  • Try and read what the plans are for the technologies you are using for the system you are building
  • If your system has some hiccups, try to RTFM
  • The fifth of November

Yehuda