Rails 앱을 어느 디렉터리에 배포해야 하나요?

Rails 앱을 어느 디렉터리에 배포해야 하나요?

Linux 시스템에 프로덕션 Rails 앱을 배포할 합리적이고 논리적인 디렉터리는 무엇입니까?

일부 후보자들…

/var/rails  <= There's a /var/www so this would be consistent with that 
               pattern. But I.T. guys have complained about stuff in /var 
               before.

/home/my_home_dir/rails  <= OK, not /var, but I'm not the only developer. 
                            Seems like it really ought to be a systemwide
                            location.

/home/rails  <= I don't know. That just seems weird.

/rails  <= Seems even weirder.

여기서 할 수 있는 가장 덜 놀랍고 가장 일반적인 일은 무엇입니까?

public(배경 정보 - Rails 앱은 JavaScript, CSS 및 약간의 HTML이 포함된 디렉토리 와 함께 Ruby로 작성된 서버 측 코드 묶음입니다 . public디렉토리는 Apache 가상 호스트에 매핑됩니다. Apache는 모듈을 통해 Ruby 코드를 처리합니다. Passenger 또는 이라고 합니다 mod_rails.)


도움을 주셔서 감사합니다. 내 생각에는 와 함께 갈 것 같아요 /opt/deployed_rails_apps. (나는 길고 설명적인 디렉토리 이름과 탭 완성을 좋아합니다.) /var/...또한 좋은 곳이지만 거기에 물건을 배포하려고 할 때 IT로부터 엄격한 불평을 받았습니다. 내 컴퓨터라면 /var또는 을 사용할 수 있습니다 /srv.

답변1

제 생각에는/고르다위한 장소가 될 것입니다애플리케이션이와 같이. 나는 chmeee가 제안한 FHS를 따르는 데 동의하지만 Rails 앱이 그 자체로 서비스라는 점에는 동의하지 않습니다.

답변2

당신은FHS(파일 시스템 계층 표준)그리고 그것을 넣어

/srv : Data for services provided by this system

편집하다:

나는 그것을 다음 위치에 두지 않을 것입니다 /opt:

/opt : Add-on application software packages

그 목적은 다음과 같습니다.

/opt는 추가 응용 프로그램 소프트웨어 패키지 설치용으로 예약되어 있습니다.

/opt에 설치될 패키지는 별도의 /opt/ 또는 /opt/ 디렉토리 트리에서 정적 파일을 찾아야 합니다. 여기서 는 소프트웨어 패키지를 설명하는 이름이고 는 공급자의 LANANA 등록 이름입니다.

저는 개발된 애플리케이션이 '소프트웨어 패키지'라고 생각하지 않습니다.

에 대한 근거 /srv

이를 지정하는 주요 목적은 사용자가 특정 서비스에 대한 데이터 파일의 위치를 ​​찾을 수 있도록 하고 읽기 전용 데이터, 쓰기 가능한 데이터 및 스크립트(예: cgi 스크립트)에 대한 단일 트리가 필요한 서비스를 합리적으로 배치할 수 있도록 하는 것입니다.

Rails 앱은 CGI 스크립트이므로 /srv.

답변3

CentOS Linux 배포판(및 후속 RedHat)에서 httpd 패키지(Apache 2용)를 설치하면 가 생성되고 /var/www가상 호스트가 여기에서 웹 콘텐츠를 가리킬 것으로 예상합니다. 기본 가상 호스트는 일반적으로 에 덤프되고 /var/www/htdocs후속 사이트/앱은 에 배치되어야 합니다 /var/www/sitename.

실제 위치는 크게 중요하지 않지만 , /opt/www/sitename, /var/www/sitename또는 단순히 /opt/www또는 으로 표시되는 것이 일반적입니다 /var/www.

다른 위치(예: /home)가 이에 적합하지 않은 이유에 대해 이미 몇 가지 설명하셨습니다.

/var/www/sitename개인적으로 저는 Apache와 Rails에 친숙하고 시스템 전반에 적용되므로 선호합니다 .

답변4

debian/ubuntu 기반 시스템에서 이러한 응용 프로그램은 일반적으로 /usr/share 폴더(예: /usr/share/ruby)에 설치됩니다. 이는 컴파일되지 않은 파일(/usr/lib에 저장됨)이기 때문입니다. 귀하의 응용 프로그램은 표준 응용 프로그램이 아니기 때문에 시스템 업데이트로 덮어쓰지 않도록 /usr/local/share에 넣을 수 있습니다.

/opt는 여기에서도 확실히 가능합니다.

관련 정보