다음은 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/www
FHS의 일부가 아니므로 /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 경로를 매핑하여 공개하도록 구성할 수 있습니다.