턱시도 파일Linux 디렉토리 구조는 다음과 같습니다.
/var
:이 디렉토리에는 시스템이 실행되는 동안 변경되는 변수 데이터가 포함되어 있습니다.
주파수 호핑 켜짐/var
다음과 같이 말해보세요:
/var
가변 데이터 파일을 포함합니다. 여기에는 스풀 디렉터리 및 파일, 관리 및 로깅 데이터, 임시 및 임시 파일이 포함됩니다.
그런 다음 로그, 메일, 스풀러 등이 해당 폴더에 저장된다고 말합니다.
전통적으로 Ubuntu Linux에 Apache, Nginx 또는 Arch를 정기적으로 설치하면 디렉터리가 /var/www/
.
제 생각에는 파일이나 기타 거의 영구적인 콘텐츠가 포함된 디렉터리를 저장하는 데 이상적인 장소는 아닙니다.
왜 그렇게 자주 투자합니까 /var
?
좀 더 주관적으로 말하자면, 디렉토리 구조를 기준으로 볼 때 이것이 이상적인 위치입니까?
답변1
의 사용법은 /var/www
언뜻 보면 혼란스럽습니다.
FHS에 따르면 웹 서버 데이터는 /srv
.
그러나 결정의 구조는 /srv
전적으로 지역 관리자의 책임이라고 명시되어 있습니다! 그러므로 가방에는 아무 것도 넣어서는 안 되며 /srv
,기본(아파치) 패키지는 그 안과 그 아래에 무엇이 있는지 /srv
모르기 때문에 문서 루트는 가 될 수 없습니다 . /srv
일반 텍스트 비밀번호 및 기타 내용이 포함된 전복 저장소일 수도 있습니다. 따라서 기본 external 이 있어야 합니다 /srv
. 기본값은 입니다 /var/www
.
/var/www
주로 자리 표시자입니다. 패키지는 /usr/share
정적 HTML 콘텐츠 또는 /var/lib
동적 변수 콘텐츠 에 사용됩니다 . 많은 사람들은 HTML을 /var/www
. 그래서 최근에 그들은 /var/www/html
포장을 발명했습니다. 사람들이 새로운 디렉토리를 다시 만들어야 하기 때문에 그것을 사용하지 않기를 바랍니다.
요약: /srv
그에 따라 Apache 가상 호스트를 사용하고 구성해야 합니다.
답변2
실제로는 전혀 "전통적인" 위치가 아닙니다. 전통적으로 운영 체제 이후에 설치한 모든 항목은 에 들어가며 /usr/local
실제로 이것이 오늘날까지 "고전적인 Apache 경로 레이아웃"(그들의 표현)이었습니다. 오랫동안 이랬습니다 /home/httpd
.
보시다시피 특정 운영 체제(Red Hat Linux, Mac OS X, GNU 등)용으로 구성된 Apache는 이 위치를 사용자 정의합니다. Apache의 소스 코드는 이를 위해 신중하게 설계되었습니다. 실제로 소스 파일에서 ServerRoot 값을 추적하면 해당 파일에서 시작되는 것을 볼 수 있습니다.config.layout
:
파일의 일부 발췌 내용을 보면 문서 루트 위치에 많은 변경 사항이 있음을 알 수 있습니다.
IIRC /var/www
저는 Red Hat Linux 7.x(Red Hat Enterprise Linux 아님)의 2000-2001 릴리스와 함께 제 삶에 들어왔습니다. 위에서 언급한 모든 이유로 인해 이것이 별 의미가 없다고 생각합니다. 그러나 현실은 현대 시대에는 어쨌든 위치 이동과 관련된 다른 많은 도구와 기술이 있다는 것입니다.
# Classical Apache path layout.
<Layout Apache>
prefix: /usr/local/apache2
datadir: ${prefix}
# GNU standards conforming path layout.
# See FSF's GNU project `make-stds' document for details.
<Layout GNU>
exec_prefix: ${prefix}
datadir: ${prefix}/share+
# Mac OS X Server (Rhapsody)
<Layout Mac OS X Server>
prefix: /Local/Library/WebServer
datadir: ${prefix}
# Darwin/Mac OS Layout
<Layout Darwin>
prefix: /usr
datadir: /Library/WebServer
# Red Hat Linux 7.x layout
<Layout RedHat>
prefix: /usr
datadir: /var/www
# SuSE 6.x layout
<Layout SuSE>
prefix: /usr
datadir: /usr/local/httpd
# BSD/OS layout
<Layout BSDI>
prefix: /var/www
datadir: ${prefix}
# Solaris 8 Layout
<Layout Solaris>
prefix: /usr/apache
datadir: /var/apache
답변3
나는 akond의 답변에 동의하지만 더 중요한 측면이 있다고 생각합니다. 대부분의 다른 위치는 일반적으로 시스템(패키지 관리자)에 의해 관리됩니다. /var
일반적으로 패키지 관리자가 관리하지 않는 파일(시스템 전체 "데이터")의 위치입니다.
나는 또한 정의가 다음에서 비롯된 것이라고 생각합니다.FHS더 정확하게 말하면(데이터가 "지속적으로 변경"될 필요는 없음):
/var에는 가변 데이터 파일이 포함되어 있습니다. 여기에는 스풀 디렉터리 및 파일, 관리 및 로깅 데이터, 임시 및 임시 파일이 포함됩니다.
그러나 [FHS](http://www.pathname.com/fhs/pub/fhs-2.3.html#PURPOSE16A)에는 www 데이터가 `/srv`에 들어가야 한다고 명시되어 있습니다.
/srv에는 이 시스템에서 제공하는 사이트별 데이터가 포함되어 있습니다.
이를 지정하는 주요 목적은 사용자가 특정 서비스에 대한 데이터 파일의 위치를 찾을 수 있고 읽기 전용 데이터, 쓰기 가능한 데이터 및 스크립트(예: cgi 스크립트)에 대한 단일 트리가 필요한 서비스를 합리적으로 배치할 수 있도록 하는 것입니다. .
/srv 하위 디렉터리의 이름을 지정하는 데 사용되는 방법은 현재 이를 수행하는 방법에 대한 합의가 없기 때문에 지정되지 않습니다. /srv에서 데이터를 구조화하는 한 가지 방법은 프로토콜을 사용하는 것입니다. ftp, rsync, www 및 cvs.
답변4
제 경험상(저는 웹 개발자입니다) 웹사이트 콘텐츠는 안정적이지 않습니다. 동적으로 생성된 콘텐츠는 물론이고 html 파일도 끊임없이 변경됩니다(수정, 누락 등).
그래서 제 관점에서는 그것들은 변수입니다. 따라서 아무 문제 없이 /var 디렉토리에 잘 들어맞습니다.