권장 사용법에 따라 웹 사이트가 / var / 또는 / usr /에 있어야합니까?


62

에 따르면 리눅스 디렉토리 구조에 대한 가이드 , /usr/응용 프로그램 파일에 대한, 그리고 /var/(나는이 "응용 프로그램에 속하는 파일"을 의미 가정) 변경되는 파일입니다. 이 올바른지?

이 경우 어느 쪽을 사용하든 약간 찢어진 것입니다. 웹 사이트는 응용 프로그램 (동적이라면 말하면)이지만 다른 경우에는 Apache에서 사용되는 파일 모음 일뿐입니다.

기본 www가 디렉토리가 사는 곳 /var/www/, 그래서 우리는 사용하여 소송을 따라야한다 /var/websites/(유사하거나 뭔가를) 또는 선택 /usr/websites/그들이 응용 될 수 있기 때문에?

이것은 매우 사소한 질문이지만 그럼에도 불구하고 나를 괴롭 힙니다. /usr/web우리 웹 사이트는 모두 응용 프로그램이기 때문에 우리 의 경우에는 그와 비슷한 것을 기대하고 있습니다.

최신 정보:

이것은 회사 웹 사이트를위한 것입니다. 공유 호스팅 서버가 아니므로 서버를 분리 /home/하거나 그와 비슷한 것을 걱정할 필요가 없습니다 .


10
나는 그 질문이 사소한 것이라고 생각하지 않습니다. 실제로는 다소 좋은 편입니다. 흥미 롭군
Aron Rotteveel

답변:


63

에 따르면 FHS , /usr입니다 shareable, read-only data당신이 웹 사이트를 넣어 싶지 않은 곳 -. 여기에 코드를 넣어야합니다 (예 : Fedora는 Wordpress에서이를 수행함). Fedora 용 웹 자산 패키징 안내서 도 참조하십시오 .

/var"가변 데이터 파일입니다. 여기에는 스풀 디렉토리 및 파일, 관리 및 로깅 데이터, 임시 및 임시 파일이 포함됩니다." 더 낫지 만 여전히 옳지는 않지만 많은 시스템이 사용할 것입니다 /var/www. 따라서 잘못 배치하더라도 좋은 회사에 있습니다.

/srv"이 시스템에서 제공하는 사이트 별 데이터"입니다. -일치하는 것 같지만보다 일반적이지 않습니다 /var/www.

사이트 파일을 저장하는 다른 일반적인 위치는 /home- website등 의 특수 사용자를 만든 다음 해당 사용자의 homedir (예 :) 안에 파일을 배치하는 것 /home/website입니다.


4
아, 내 작품을 사용 /srv합니다. 전에 본 적이없는 것처럼, 나는 그들이 만든 것이라고 생각했습니다. Redhat / CentOS입니까?
Nick Bolton

12
/var/www배포판을 만질 수 없기 때문에 기본값은로만 설정됩니다 /srv. 시스템 관리자가 구성해야합니다. 그래서 그것이 "훨씬 덜 일반적이며"올바른 이유입니다.
Michael Hampton

28

Filesystem Hierarchy Standard ( Wikipedia )를 살펴보십시오 . 본인은 / srv / web / $ domain / {htdocs, logs, cgi-bin, ...}을 사용하고 있습니다.


3
나도 이렇게 좋아하지만 "www"대신 항상 "httpd"서비스 이름을 사용합니다. 따라서 / srv / httpd / $ domain ... 또는 / srv / smbd / sharename ...이 있습니다. 이렇게하면 파일을 제공하는 서비스를 쉽게 확인할 수 있습니다. 예 : 일부 시스템에서 우리는이 / SRV /의 nginx / $ 도메인
라파엘 Luthiger

9

웹 사이트는 사용자의 홈 디렉토리에 있어야합니다. 이들은 사용자 데이터이며 사이트 당 사용자별로 격리되어야하며 동적 콘텐츠는 적절한 권한이 부여 된 경우 동적 콘텐츠를 읽고 수정해야하는 파일과 함께 별도의 사용자로 다시 실행해야합니다.

최신 정보:

공유 호스팅 서버가 아니라고해서 좋은 보안 방법을 사용하지 말고 독립적 인 역할을 자체 보안 영역으로 분리해서는 안됩니다.


7

결정적인 안내서는 그것이 적절한 장소 라고 말하는 파일 시스템 계층 표준 입니다 /srv.


2
나는 그런 식으로 읽지 않습니다. 또는 적어도이 시점에서 모호한 것으로 읽습니다. 대부분의 웹 사이트는 단순한 by this system서비스가 아니라 전체 시스템 클러스터에서 제공됩니다. 그리고 시작하는 두 문장 This setup will differ from host to host.은 이것이 많은 서버에서 공유되는 파일의 장소가 아니라는 것을 암시합니다. 보다 확실히 더 적절한 - 그래도 상당히 가능성이 장소입니다 /usr, 그리고보다 틀림없이 더 나은/var
제임스 Polley

1
FHS가 결정적인 것은 아니라고 생각합니다. Re : (Wikipedia에서) : 대부분의 Linux 배포판은 FHS를 따르고 FHS 준수를 유지하기위한 자체 정책을 선언합니다. 그러나 Free Standards Group의 구성원이 개발 한 배포판을 포함하여 대다수 (2009 년 기준) 배포판은 제안 된 표준을 완전히 따르지 않습니다.
Michael Graff

6
표준에 대한 좋은 점입니다. 선택할 수있는 것이 너무 많습니다! :)
James Polley

3

그들이 디스크에 사는 곳은 거의 중요하지 않습니다. 당신이 그들을 원하는 곳입니다.

모든 컴퓨터에 / www에서 실제 거주하는 곳으로의 symlink가 있으므로 컴퓨터마다 궁금 할 필요가 없습니다. 일부 구형 컴퓨터에는 사용자 디스크 용 / u0 및 / u1이 있으며 웹에 배치합니다. 일부는 / home이 직접 마운트되어 있으므로 거기로 이동하지만 / www는 항상 올바른 위치를 가리 킵니다.

또한 / usr 또는 / var에 구성을 두지 않습니다. 그것은 / local에 들어갑니다 (이것은 / u0 또는 / u1 어딘가의 심볼릭 링크입니다). 이렇게하면 일을 쉽게 백업 할 수 있습니다. 방금 사용자 디스크를 백업했습니다.

물론, 내가 선택한 OS 인 NetBSD에 대한 마스터 배포 사이트가 있습니다. 이 메인 머신 (실제로 xen 인스턴스)과 rsync / usr에서 원하는대로 시스템을 만듭니다. 내 인생을 쉽게 만듭니다.


6
한 사람의 작업이거나 서로 긴밀히 협력하고 서로의 친척에 친숙한 소규모 팀이라면 괜찮습니다. '올바른'방법을 배우는 것이 단순히하는 것보다 오래 걸릴 것입니다 그것. 대규모 작업을하면서 신입 사원을 자주 데려 오는 경우, 레이아웃과 같은 속도로 직원을 속 여야하는 데 많은 시간이 걸립니다. FHS는 다음과 같습니다. 팀에 새로 온 모든 사람과 시간을 절약 할 수 있습니다.
James Polley

5
8 개의 서로 다른 OS를 사용하는 경우 사내 표준은 각 자체 방식보다 배우기 훨씬 쉽습니다.
Michael Graff

1
@James Polley 새로운 직원에게 "우리는 물건을 넣었습니다"라고 말하는데 얼마나 시간이 걸립 /path/we/chose니까?
ceejayoz

@ceejayoz 만약 "stuff"카테고리가 두 개 이상 있다면 "stuff"카테고리에 대한 추가 세부 사항이 필요할지라도 "FHS 준수"라고 말하는 것이 훨씬 간단합니다.
tripleee

3

Apache 웹 서버에는 / var / www / 아래에 기본 웹 사이트가 있지만 다른 웹 사이트를 / srv / 아래에 두는 것이 좋습니다

우분투 서버 14.04 LTS에서 이것을 보았습니다. 기본 apache2.conf 파일에는 주석 처리 된 블록이 포함됩니다.

#<Directory /srv/>
#   Options Indexes FollowSymLinks
#   AllowOverride None
#   Require all granted
#</Directory>

2

나에 따르면 인터넷 시스템을 공용 시스템 영역에 두지 말아야합니다.

인터넷 서비스 (Apache / Tomcat / SSH 등)는 정문이며, 이러한 서비스를 시스템 영역에 넣으면 일부 공격에 취약 할 수 있습니다.

다른 분리형 파티션과 같은 안전한 샌드 박스 영역에 다른 서비스를 넣은 것 이상입니다.

사용할 수있는 구조의 예는 다음과 같습니다.

/ --> Root System --> On SDA1 --> Root and System security operator access only
 |
 | -->/usr /etc /var etc.

/SRV --> Web Root --> On SDB1 --> Web users access with minimal rights access.
 |
 |-->/srv/bin & /srv/dta
      |
      |-->/srv/bin/apache (or any other APPLICATION Binaries)
      |-->/srv/dta/SQL (or any other APPLICATION Datas like a 
                        database or web PHP files etc.)

1
"공통 시스템 영역"을 확장 할 수 있습니까? 그것은 이전에 들었던 용어가 아니며 당신이 무엇을 의미하는지 잘 모르겠습니다. 이진이 아닌 데이터를위한 /srv/binFHS를 위반 한 것으로 보입니다/srv
James Polley

Well Common System Zone은 계정, 비밀번호, 관리자 바이너리 및 라이브러리와 같은 모든 시스템 구성 요소를 저장하는 OS의 일부를 의미합니다. 설치시 FHS를 완전히 존중하지는 않지만 OS를 두 부분으로 나눌 수 있습니다. 1 ° /-상당히 수정 된 시스템 (업데이트 및 관리 도구 설치 제외) 2 ° /-응용 프로그램, 데이터 및 USers Homeland. 이렇게하면 시스템이나 데이터에 문제가 발생하더라도 모든 데이터를 잃어 버리지 않습니다.
Dr I

내가 참조. 예를 들어 대부분의 데스크톱 /home이 별도의 파티션에 배치 된 이유는 이치 에 맞습니다. 비 /home파티션의 모든 것을 날려 버릴 수 있으며 사용자 데이터 손실에 대해 걱정할 필요가 없습니다. 데이터 분리를 위해 +1
James Polley
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.