Linux에서 웹 애플리케이션을 어디에 배치해야 합니까?

Linux에서 웹 애플리케이션을 어디에 배치해야 합니까?

다음은 Linux 배포판의 파일 구조 예입니다. https://www.centos.org/docs/5/html/Deployment_Guide-en-US/s1-filesystem-fhs.html

각 디렉토리에는 특정한 목적이 있으며, 웹 애플리케이션은 폴더에 캡슐화되기보다는 서로 다른 디렉토리에 배포되어야 하는 것 같습니다.

내 웹 애플리케이션의 초기 구조는 다음과 같습니다.

/home/username/appname/appsource...
/home/username/appname/appconfiguration...
/home/username/appname/apptempdata...
/home/username/appname/applogdata...
/home/username/appname/appdata...
/home/username/public_html/appname/appsite/...

응용 프로그램은 Linux 시스템 내의 최소 디렉터리에 패키지되어 있습니다. 하나는 웹 소스/웹 사이트(페이지, 자바 스크립트, CSS, 웹 사이트 이미지)용이고 다른 디렉터리(/home/username/appname/.. .)는 나머지 응용 프로그램용입니다. 프로그램 파일.

처음에는 단순히 일부 웹 도구를 사용하여 웹 응용 프로그램 개발이 시작된 곳이기 때문에 사용자 폴더에 응용 프로그램이 배치되었지만 이제는 웹 도구 및 서버 사용자와 응용 프로그램을 분리하고 설치 방법을 만들어야 합니다(결국, Linux 시스템에서 권한이 부여된 경우 특정 Linux 서버의 다른 관리자 사용자가 교대로 응용 프로그램 파일을 관리하게 됩니다.

내 연구에 따르면 (참조FHS 사양), 제가 이해한 바에 따르면, 애플리케이션 파일은 다음과 같이 재배포되어야 합니다:

/usr/lib/appname/appsource...
/etc/appname/appconfiguration...
/var/www/html/appname/appsite...
/var/tmp/appname/apptempdata...
/var/log/appname/applogdata...
/var/lib/appname/appdata...

지금 작업하려면 /var/lib 및 /var/www/html 디렉토리에 모든 것을 넣습니다.

/var/lib/appname/appsource...
/var/lib/appname/appconfiguration...
/var/www/html/appname/appsite...
/var/lib/appname/apptempdata...
/var/lib/appname/applogdata...
/var/lib/appname/appdata...

이렇게 해야 하나요? 그렇지 않다면 주된 이유가 무엇인지, 그리고 샘플 파일을 어떻게 위치시켜야 하는지 설명해 주십시오.

답변1

저는 이 주제에 대한 전문가는 아니지만 FHS 사양을 읽고 생각해낸 원래 솔루션이 실제로는 정확하거나 매우 유사한 것 같습니다. 그리고 심지어 다음을 발견했습니다.기사, RPM의 출현으로 /opt디렉토리가 더 이상 필요하지 않다고 기사에서는 이러한 디렉토리가 이제 더 이상 사용되지 않으며 시스템 관리자와 사용자의 삶을 덜 쉽게 만든다고 말합니다./usr/local

내 모든 웹 애플리케이션 은 PHP로 작성되었습니다. 즉, 내 애플리케이션에는 바이너리가 포함되어 있지 않으므로 모든 애플리케이션 을 /usr/lib. 내 앱에는 문서나 매뉴얼이 (아직) 포함되어 있지 않기 때문에 둘 중 하나를 사용 하지 않습니다 ./usr/bin/usr/sbin/usr/share/doc/usr/share/man

/var/wwwFHS의 일부가 아니므로 /var/www/html/appsite웹 서버 애플리케이션(Apache, Nginx 등)을 구성하는 방법에 따라 다른 곳에 배치될 수 있는 파일입니다.

반면에 OP의 두 번째 접근 방식은 게으르고 실제로 FHS를 준수하려고 시도하지 않기 때문에 폐기됩니다.

그래서 내 결론은 다음과 같습니다.

/usr/lib/appname/appsource...
/etc/appname/appconfiguration...
/var/www/html/appname/appsite...
/var/tmp/appname/apptempdata...
/var/log/appname/applogdata...
/var/lib/appname/appdata...

고쳐 쓰다:

또한 많은 공용 파일을 소스 코드 폴더 내의 공용 폴더에 넣는 것이 합리적입니다. 그 중 다수는 스크립트(html, js, css도 포함)이므로 소스 코드의 일부이고 나머지 공용 파일은 다른 공용 폴더에:

/usr/lib/appname/appsourceprivatefiles... (ej: php classes and functions)
/usr/lib/appname/www/appsourcepublicfiles... (ej: php scripts)
/usr/share/appname/appprivateresources... (images, raw text, xml resources, json resources, audio...)
/usr/share/appname/www/apppublicresources... (images, raw text, xml resources, json resources, audio...)
/etc/appname/appconfiguration...
/var/tmp/appname/apptempdata...
/var/log/appname/applogdata...
/var/lib/appname/appdata...

Apache와 같은 웹 서버 애플리케이션은 www 경로를 매핑하여 공개하도록 구성할 수 있습니다.

관련 정보