Sistema de arquivos que não diferencia maiúsculas de minúsculas para servidor de produção?


10

A situação inicial é assim:

  • O software corporativo é baseado em PHP.
  • É entregue pelo Apache 2 em um servidor Windows 2003.
  • É grande .
  • É um legado de desenvolvedores pouco profissionais que não se importam com a distinção entre maiúsculas e minúsculas ou separadores de diretório.

A situação desejada é assim:

  • Tudo migrou para o Apache 2 sob uma distribuição Linux de sabor ainda indeciso.

Problema:

  • Infinitas toneladas de código sem se preocupar com o distinção entre maiúsculas e minúsculas ou caractere separador de diretório.

Eu já fiz algumas pesquisas, mas infelizmente não encontrei nada que fosse adequado também para um ambiente de produção. CIOPFSparece bom, mas é explicitamente destinado a não ser usado em sistemas de produção. Você pensaria mod_spellingque o Apache seria uma opção? A questão ainda não resolvida para mim é se o PHP acessa arquivos com a ajuda desse módulo ou diretamente (o que o tornaria inútil).

Devemos engolir a pílula amarga e passar por todo o código? Gostaríamos de evitar isso, pois substituiremos o ambiente atual do software, peça por peça, por novos itens de compilação (a longo prazo).


Outra possibilidade poderia ser criar algum tipo de proxy ( mod_rewrite) para o aplicativo herdado (residindo na configuração antiga) por meio do novo servidor, substituindo as peças dessa maneira ... talvez.
sr_ 23/02/12

Hospede-o no OS X em vez do Linux ... você ainda obtém seu ambiente unix, mas também obtém um sistema de arquivos que não diferencia maiúsculas de minúsculas.
Larsks

@sr_ Isso poderia fazer o trabalho. Porém, como estamos executando um grande sistema de loja on-line que já causa tráfego suficiente, pelo menos o dobro (não importa se a rede é interna ou externa). Tanto quanto eu entendo.
Peter Peter

@larsks Mesmo que eu incentive o OS X para os negócios, não acho mais que ele tenha futuro como servidor da web em larga escala. Além disso, nossa empresa está incentivando o uso de software de código aberto e se esforça para permanecer o mais independente possível da plataforma.
Peter Peter

Apenas uma atualização: infelizmente, os módulos apache não estão fazendo o trabalho, pois são os únicos invocados no caso de solicitações HTTP, a função include do PHP, por exemplo, acessa os arquivos diretamente. Vou experimentar a abordagem do samba mencionada abaixo agora.
Peter

Respostas:



3

O ZFS e o JFS podem ser configurados para não fazer distinção entre maiúsculas e minúsculas:

zfs create -o casesensitivity=insensitive filesystem

jfs_mkfs -O /dev/sdax

Editar (7 anos depois):

Como o @JorgeYanesDiez comentou, o kernel Linux finalmente adicionou ext4 por diretório, sem distinção entre maiúsculas e minúsculas, a partir da versão 5.2 e efsprogs 1.45.

Observe que Linus Torvalds foi fortemente contra o recurso .


11
Para quem vê isso em 2020, o ext4 acabou de adicionar o suporte caseFold. Você precisa do Linux Kernel 5.2 e e2fsprogs 1.45 ou posterior. Procure chattr + F
Jorge Yanes Diez

2

Você pode usar o Samba para compartilhar um sistema de arquivos local de uma maneira que não diferencia maiúsculas de minúsculas ... este artigo tem alguns detalhes.


2
Isso é completamente insano, mas a OMI é a menos insana de todas as outras opções.
Jgoldschrafe

@larsks Obrigado, vou dar uma olhada mais profunda e experimentar como funciona.
Peter Peter

@larsks Embora eu tenha seguido o artigo e tentado algumas variações, infelizmente não funcionou para nós. Obrigado mesmo assim. Acabamos decidindo reescrever tudo o que não funciona no sistema de arquivos confidenciais, pois outras alternativas parecem levar muito tempo.
Peter

1

Escreva seu próprio invólucro de fusível que não diferencia maiúsculas de minúsculas sobre qualquer outro fs? Com algum código python, isso pode ser feito rapidamente.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.