Groß- und Kleinschreibung wird für den Produktionsserver nicht berücksichtigt?

10

Die Ausgangssituation sieht folgendermaßen aus:

  • Die Unternehmenssoftware basiert auf PHP.
  • Es wird von Apache 2 auf einem Windows 2003 Server bereitgestellt.
  • Es ist groß .
  • Es ist ein Vermächtnis von eher unprofessionellen Entwicklern, denen Groß- und Kleinschreibung oder Verzeichnis-Trennzeichen nichts ausmachten.

Die gewünschte Situation sieht so aus:

  • Alles wurde unter einer Linux-Distribution mit noch unentschlossenem Flair auf Apache 2 migriert.

Problem:

  • Unendlich viel Code, ohne sich um die Groß- und Kleinschreibung oder das Verzeichnis-Trennzeichen zu kümmern.

Ich habe bereits recherchiert, aber leider nichts gefunden, was auch für eine Produktionsumgebung geeignet wäre. CIOPFSsieht gut aus, ist aber ausdrücklich dazu gedacht, nicht auf Produktionssystemen verwendet zu werden. Würden Sie denken, mod_spellingdass Apache eine Option wäre? Die noch ungelöste Frage für mich ist, ob PHP mit Hilfe dieses Moduls oder direkt auf Dateien zugreift (was es unbrauchbar machen würde).

Sollten wir die bittere Pille schlucken und den gesamten Code durchgehen? Wir möchten dies vermeiden, da wir die aktuelle Software-Umgebung Stück für Stück (langfristig) durch neues Build-Material ersetzen werden.

Peter
quelle
Eine andere Möglichkeit könnte darin bestehen, mod_rewriteüber den neuen Server eine Art Proxy ( ) für die Legacy-Anwendung (im alten Setup) zu erstellen und die Teile auf diese Weise zu ersetzen ... vielleicht.
sr_
Hosten Sie es unter OS X anstelle von Linux ... Sie erhalten immer noch Ihre Unix-Umgebung, aber Sie erhalten auch ein Dateisystem, bei dem die Groß- und Kleinschreibung nicht berücksichtigt wird.
Larsks
@sr_ Das könnte den Job machen. Da wir jedoch ein großes Online-Shop-System betreiben, das bereits so viel Verkehr verursacht, würde es diesen mindestens verdoppeln (unabhängig davon, ob das Netzwerk intern oder extern ist). So weit ich das verstehe.
Peter
@larsks Obwohl ich OS X für Unternehmen ermutige, glaube ich nicht mehr, dass es als Webserver für große Unternehmen eine Zukunft hat. Auch unser Unternehmen fördert den Einsatz von Open Source-Software und ist bestrebt, so plattformunabhängig wie möglich zu bleiben.
Peter
Nur ein Update: Apache-Module erledigen den Job leider nicht, da sie nur bei HTTP-Anfragen aufgerufen werden. Die Include-Funktion von PHP greift beispielsweise direkt auf die Dateien zu. Ich werde jetzt den unten erwähnten Samba-Ansatz ausprobieren.
Peter

Antworten:

3

Sehen Sie einfach meinen Beitrag hier auf Ubuntuforums:

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

Erstellen Sie eine virtuelle Festplatte

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

Formatieren Sie es

mkfs.vfat virtual.dsk

Montieren Sie es

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

PS: Dauerhaft montieren:

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

Zusammen mit zusätzlichen Informationen hier: http://fatter-keine.dk/helptipsguides/ubuntu/understanding_fstab.html

Dilemma
quelle
3

Sowohl ZFS als auch JFS können so konfiguriert werden, dass die Groß- und Kleinschreibung nicht berücksichtigt wird:

zfs create -o casesensitivity=insensitive filesystem

jfs_mkfs -O /dev/sdax

Bearbeiten (7 Jahre später):

Wie @JorgeYanesDiez kommentierte, fügte der Linux-Kernel ab Version 5.2 und efsprogs 1.45 schließlich ext4 pro Verzeichnis hinzu .

Beachten Sie, dass Linus Torvalds stark gegen die Funktion war .

jlliagre
quelle
1
Für diejenigen, die sich dies im Jahr 2020 ansehen, hat ext4 gerade caseFold-Unterstützung hinzugefügt. Sie benötigen den Linux Kernel 5.2 und e2fsprogs 1.45 oder höher. Suchen Sie nach chattr + F
Jorge Yanes Diez
2

Sie können Samba verwenden, um ein lokales Dateisystem ohne Berücksichtigung der Groß- und Kleinschreibung freizugeben. Dieser Artikel enthält einige Details.

Larsks
quelle
2
Dies ist völlig verrückt, aber IMO die am wenigsten verrückte aller anderen Optionen.
Jgoldschrafe
@larsks Danke, ich werde es mir genauer ansehen und ausprobieren, wie es funktioniert.
Peter
@larsks Obwohl ich dem Artikel gefolgt bin und einige Variationen ausprobiert habe, hat es bei uns leider nicht funktioniert. Trotzdem danke. Am Ende haben wir uns entschlossen, alles neu zu schreiben, was bei einem sensiblen Dateisystem nicht der Fall ist, da andere Alternativen zu lange dauern.
Peter
1

Schreiben Sie Ihren eigenen Sicherungs-Wrapper, der die Groß- und Kleinschreibung gegenüber anderen fs nicht berücksichtigt? Mit etwas Python-Code könnte dies schnell gehen.

Leon
quelle