프로덕션 서버의 대소 문자를 구분하지 않는 파일 시스템?


10

초기 상황은 다음과 같습니다.

  • 회사 소프트웨어는 PHP 기반입니다.
  • Windows 2003 Server에서 Apache 2로 제공됩니다.
  • 그것은이다 .
  • 대소 문자를 구분하지 않거나 디렉토리 구분 기호를 신경 쓰지 않은 오히려 전문가가 아닌 개발자의 유산입니다.

원하는 상황은 다음과 같습니다.

  • 결정되지 않은 풍미의 Linux 배포판에서 모든 것이 Apache 2로 마이그레이션되었습니다.

문제:

  • 대소 문자 구분 또는 디렉토리 구분 문자를 신경 쓰지 않고 끝없이 많은 코드.

나는 이미 약간의 연구를했지만 불행히도 프로덕션 환경에도 적합한 것을 찾지 못했습니다. CIOPFS보기 좋지만 프로덕션 시스템에서는 사용하지 않아야합니다. mod_spellingApache가 옵션 이라고 생각 하십니까? 아직 해결되지 않은 질문은 PHP가 해당 모듈의 도움으로 파일에 액세스하거나 직접 사용하면 쓸모가 없게됩니다.

쓴 알약을 삼키고 모든 코드를 통과해야합니까? 우리는 현재 소프트웨어 환경을 새로운 빌드 물 (장기적으로)로 대체 할 것이기 때문에이를 피하고 싶습니다.


또 다른 가능성은 mod_rewrite새 서버를 통해 레거시 응용 프로그램 (이전 설정에 있음)에 대한 일종의 프록시 ( )를 만들어서이 방법으로 부품을 교체하는 것일 수 있습니다.
sr_

Linux 대신 OS X에서 호스팅하십시오 ... 여전히 유닉스 환경을 얻을 수 있지만 대소 문자를 구분하지 않는 파일 시스템을 얻을 수 있습니다.
larsks

@sr_ 그 일을 할 수 있습니다. 그러나 우리는 이미 충분한 양의 트래픽을 발생시키는 대형 온라인 상점 시스템을 운영하고 있기 때문에 적어도 두 배가 될 것입니다 (네트워크 내부 또는 외부에 상관없이). 내가 이해하는 한도에서는.
Peter

@larsks 비즈니스 용으로 OS X를 권장하더라도 더 이상 대규모 웹 서버로 미래가 있다고 생각하지 않습니다. 또한 우리 회사는 오픈 소스 소프트웨어의 사용을 장려하고 있으며 가능한 한 플랫폼 독립적으로 유지하기 위해 노력하고 있습니다.
Peter

단지 업데이트 : 아파치 모듈은 HTTP 요청의 경우에만 호출되므로 PHP의 include 함수는 파일에 직접 액세스하는 것처럼 슬프게도 작업을 수행하지 않습니다. 아래에 언급 된 삼바 접근 방식을 시도해 보겠습니다.
Peter

답변:


3

우분투 포럼에 대한 내 게시물을 참조하십시오.

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

가상 디스크 생성

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

그것을 포맷

mkfs.vfat virtual.dsk

마운트

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

PS : 영구적으로 마운트 :

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

추가 정보와 함께 여기에 : http://fatter-keine.dk/helptipsguides/ubuntu/understanding_fstab.html


3

ZFS와 JFS는 모두 대소 문자를 구분하지 않도록 구성 할 수 있습니다.

zfs create -o casesensitivity=insensitive filesystem

jfs_mkfs -O /dev/sdax

편집 (7 년 후) :

@JorgeYanesDiez가 언급했듯이 Linux 커널은 마침내 5.2 버전부터 efsprogs 1.45부터 디렉토리 옵션 대소 문자 구분없이 ext4를 추가했습니다 .

Linus Torvalds는 이 기능강력하게 반대했습니다 .


1
2020 년에 이것을보고자하는 사람들을 위해 ext4는 caseFold 지원을 추가했습니다. Linux Kernel 5.2 및 e2fsprogs 1.45 이상이 필요합니다.
Jorge Yanes Diez

2

Samba를 사용하여 대소 문자를 구분하지 않는 방식으로 로컬 파일 시스템을 공유 할 수 있습니다. 이 기사 에는 세부 정보가 있습니다.


2
이것은 완전히 미쳤지 만 IMO는 다른 모든 옵션 중에서 가장 미쳤습니다.
jgoldschrafe

@larsks 감사합니다. 자세히 살펴보고 작동 방식을 시험해 보겠습니다.
Peter

@larsks이 기사를 따라 변형을 시도했지만 슬프게도 우리에게는 효과가 없었습니다. 그래도 감사합니다. 우리는 다른 대안이 너무 많은 시간을 소비하는 것처럼 민감한 파일 시스템의 경우를 제외하고 모든 것을 다시 작성하기로 결정했습니다.
Peter

1

다른 fs보다 대소 문자를 구분하지 않는 고유 한 퓨즈 래퍼를 작성 하시겠습니까? 일부 파이썬 코드를 사용하면 신속하게 수행 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.