10

The initial situation looks like this:

  • The corporate software is PHP-based.
  • It is delivered by Apache 2 on a Windows 2003 Server.
  • It is big.
  • It is a legacy of rather unprofessional developers who did not mind about case sensitivity or directory separators.

The desired situation looks like that:

  • Everything migrated to Apache 2 under a Linux distribution of yet undecided flavor.

Problem:

  • Endless tons of code without any caring about the case-sensitivity or directory separator character.

I did some research already, but unfortunately did not find anything which would be suitable also for a production environment. CIOPFS looks nice but is explicitly meant not to be used on production systems. Would you think mod_spelling for Apache would be an option? The yet unresolved question for me is, if PHP accesses files with help of that module or directly (which would make it useless).

Should we swallow the bitter pill and go through all the code? We would like to avoid that, as we will replace the current software environment piece by piece with new build stuff (in long term).

7
  • Another possibility could be to create some kind of proxy (mod_rewrite) for the legacy application (residing in the old setup) via the new server, replacing the parts this way...maybe.
    – sr_
    Feb 23, 2012 at 11:30
  • Host it under OS X instead of Linux...you still get your unix environment, but you also get a case insensitive filesystem out of the box.
    – larsks
    Feb 23, 2012 at 12:40
  • @sr_ That could do the job. But as we are running an large online shop system which causes enough traffic already as it is, it would at least double it (does not matter if network internal or external). As far as I understand.
    – Peter
    Feb 23, 2012 at 15:54
  • @larsks Even though I encourage OS X for business, I do not think anymore that it has future as a webserver for large scale. Also our company is encouraging the use of open source software and strives to remain as platform independent as possible.
    – Peter
    Feb 23, 2012 at 15:54
  • Just an update: apache modules are sadly not doing the job as the only get invoked in case of HTTP requests, PHP's include function for example accesses the files directly. I'll try out the samba approach mentioned below now.
    – Peter
    Feb 27, 2012 at 8:36

4 Answers 4

3

Just see my post here on ubuntuforums:

http://ubuntuforums.org/showthread.php?t=1497253

Create a virtual disk

dd if=/dev/zero of=virtual.dsk bs=1048576 count=150

Format it

mkfs.vfat virtual.dsk

Mount it

sudo mkdir -p /mnt/vfat
sudo mount virtual.dsk /mnt/vfat -t vfat -o loop

PS: Permanently mount:

/path/to/virtual.dsk /mnt/vfat vfat loop,owner,group,umask=000 0 0

Along with additional information here: http://fatter-keine.dk/helptipsguides/ubuntu/understanding_fstab.html

3

Both ZFS and JFS can be configured to be case insensitive:

zfs create -o casesensitivity=insensitive filesystem

jfs_mkfs -O /dev/sdax

Edit (7 years later):

As @JorgeYanesDiez commented, Linux kernel finally added ext4 per directory optional case insensitivity starting from version 5.2 and efsprogs 1.45.

Note that Linus Torvalds was strongly against the feature.

1
  • 1
    For those looking at this in 2020, ext4 just added caseFold support. You need the Linux Kernel 5.2 and e2fsprogs 1.45 or later. Look for chattr +F Mar 7, 2020 at 8:24
2

You can use Samba to share a local filesystem in a case insensitive manner...this article has some details.

3
  • 2
    This is completely insane, but IMO the least insane of all other options. Feb 23, 2012 at 14:26
  • @larsks Thank you, I will take a deeper look into it and will try out how it works.
    – Peter
    Feb 23, 2012 at 15:55
  • @larsks Even though I followed the article and tried out some variations, it sadly did not work for us. Thank you though. We ended up deciding to rewrite all the stuff which does not in case sensitive file system as other alternatives seem to take too much time.
    – Peter
    Feb 28, 2012 at 8:13
0

Write your own fuse-wrapper that does case-insensitivity over any other fs? With some python code this could be done quick.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.