File system senza distinzione tra maiuscole e minuscole per server di produzione?


10

La situazione iniziale è simile alla seguente:

  • Il software aziendale è basato su PHP.
  • Viene fornito da Apache 2 su un server Windows 2003.
  • È grande .
  • È un'eredità di sviluppatori piuttosto poco professionali a cui non importava la distinzione tra maiuscole e minuscole o separatori di directory.

La situazione desiderata appare così:

  • Tutto è migrato su Apache 2 sotto una distribuzione Linux di sapore ancora indeciso.

Problema:

  • Infinite tonnellate di codice senza preoccuparsi della distinzione tra maiuscole e minuscole o del carattere separatore di directory.

Ho già fatto delle ricerche, ma sfortunatamente non ho trovato nulla che fosse adatto anche per un ambiente di produzione. CIOPFSsembra carino ma è esplicitamente pensato per non essere utilizzato sui sistemi di produzione. Pensi che mod_spellingper Apache sarebbe un'opzione? La domanda ancora irrisolta per me è se PHP accede ai file con l'aiuto di quel modulo o direttamente (il che lo renderebbe inutile).

Dovremmo ingoiare la pillola amara e passare attraverso tutto il codice? Vorremmo evitarlo, poiché sostituiremo l'ambiente software corrente pezzo per pezzo con nuovi elementi di build (a lungo termine).


Un'altra possibilità potrebbe essere quella di creare una sorta di proxy ( mod_rewrite) per l'applicazione legacy (residente nella vecchia configurazione) tramite il nuovo server, sostituendo le parti in questo modo ... forse.
sabato

Ospitalo su OS X invece di Linux ... ottieni ancora il tuo ambiente unix, ma ottieni anche un filesystem insensibile al maiuscolo e al di fuori della scatola.
Larks

@sr_ Questo potrebbe fare il lavoro. Ma poiché stiamo eseguendo un grande sistema di negozi online che causa abbastanza traffico già così com'è, almeno lo raddoppierebbe (non importa se la rete interna o esterna). Per quanto ho capito.
Peter,

@larsks Anche se incoraggio OS X per le aziende, non penso più che abbia un futuro come server Web su larga scala. Inoltre, la nostra azienda sta incoraggiando l'uso di software open source e si impegna a rimanere il più indipendente possibile dalla piattaforma.
Peter,

Solo un aggiornamento: i moduli apache purtroppo non stanno facendo il lavoro in quanto vengono solo invocati in caso di richieste HTTP, la funzione include di PHP ad esempio accede direttamente ai file. Proverò ora l'approccio alla samba menzionato di seguito.
Peter,

Risposte:



3

Sia ZFS che JFS possono essere configurati per distinguere tra maiuscole e minuscole:

zfs create -o casesensitivity=insensitive filesystem

jfs_mkfs -O /dev/sdax

Modifica (7 anni dopo):

Come ha commentato @JorgeYanesDiez, il kernel di Linux ha finalmente aggiunto l'insensibilità al case ext4 per directory opzionale a partire dalla versione 5.2 e efsprogs 1.45.

Nota che Linus Torvalds era fortemente contrario alla funzionalità .


1
Per chi lo guarda nel 2020, ext4 ha appena aggiunto il supporto caseFold. È necessario Linux Kernel 5.2 ed e2fsprogs 1.45 o successivo. Cerca chattr + F
Jorge Yanes Diez

2

Puoi usare Samba per condividere un filesystem locale senza distinzione tra maiuscole e minuscole ... questo articolo contiene alcuni dettagli.


2
Questo è completamente folle, ma IMO è il meno folle di tutte le altre opzioni.
jgoldschrafe,

@larsks Grazie, approfondirò e proverò come funziona.
Peter,

@larsks Anche se ho seguito l'articolo e provato alcune varianti, purtroppo non ha funzionato per noi. Grazie comunque. Alla fine abbiamo deciso di riscrivere tutto ciò che non nel case system sensibile al maiuscolo / minuscolo in quanto altre alternative sembrano richiedere troppo tempo.
Peter,

1

Scrivi il tuo involucro dei fusibili che fa distinzione tra maiuscole e minuscole rispetto a qualsiasi altro fs? Con un po 'di codice Python questo potrebbe essere fatto rapidamente.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.