2012-10-08 2 views
0

내 리눅스 VPS의 하위 디렉토리에 레일즈 애플리케이션을 실행하고 승객 문서를 트롤링하여 내 컴퓨터에 적합한 가상 호스트 설정 및 심볼릭 링크를 설정하는 방법을 잘 모르고있다.여러 개의 레일스 사이트 용 VirtualHost

나는 www.domain.eu라는 도메인 및/응용 프로그램/웹 애플리케이션에 위치한 레일 응용 프로그램을 가지고 있고, 나는

임은 확실하지 오전 www.domain.eu/webapp에서 호스팅되는 사이트를 싶습니다 몇 가지 영역 :

1.) 어디에서 webapp VirtualHost 구성 세부 정보를 입력해야합니까? apache2.conf 파일에 있거나 webapp이라는 파일을 sites-available에 만들고 config를 입력해야합니까? 상충되는 많은 예가있는 것 같습니다.

는 이전 질문 2.) 학습, 내가 다시 문서를 많이 읽어 디렉토리 www.domain.eu/webapp (아래 응용 프로그램 레일을 제공하기 위해이 apache2.conf 파일을 수정하지만, 수있는 방법이 일을 여러 가지 방법)

있을 것 같습니다
<VirtualHost *:80> 
     ServerName domain.eu 
     # !!! Be sure to point DocumentRoot to 'public'! 
     DocumentRoot /apps/webapp/public 
     <Directory /apps/webapp/public> 
     # This relaxes Apache security settings. 
     AllowOverride all 
     # MultiViews must be turned off. 
     Options -MultiViews 
     </Directory> 

     RailsBaseURI /webapp 
     <Directory /apps/webapp/public> 
     Options -MultiViews 
     </Directory> 
    </VirtualHost> 

3.) 나는 URL에 대한 디렉토리 루트를 가리 키도록 심볼릭 링크를 만들어야한다는 것을 알고 있습니다. ln -s /apps/webapp/public ./test을 시도하면 missing symlink error이 다시 나타납니다. 여기서 무엇을 권하고 싶습니까?

4. 마지막으로 레일 3 config.action_controller.relative_url_root = "/webapp"은 더 이상 사용되지 않는 것으로 보입니다. 사용하는 데 권장되는 새로운 규칙이 있습니까?

내 설정 : Linux VPS 서버에서 Ubuntu 10.04, mysql 5, apache2, phusion passenger (최신), ruby ​​1.9.3 및 rails 3.2.3을 실행합니다.

더 많은 코드가 필요하면 고맙습니다. 미리 감사드립니다.

답변

1

많은 독서 후에 나는이 일을 할 수 있었다.

나의 목적을 위해 하위 URI 사이트의 VirtualHost 정보를 내 apache2.conf 파일 하단에 추가했습니다.이 파일은 httpd.conf 일 수 있지만/etc/apache2/sites-available에 입력 할 수 있습니다 당신이 그것을 모두 분리하고 싶다면.

이 파일의 맨 위에는 서버의 기본 "홈페이지"가 ​​지정됩니다. 내 홈페이지가/var/www에 있으므로 apache2를 실행하고 있습니다. 이 아래에서 우리는 레일스의 서브 URI 옵션을 설정 했으므로 먼저 어떤 URL을 서브 URI로 지정했는지 확인한 다음 디렉토리 태그를 레일즈 앱의 공용 폴더로 지정하십시오. MultiViews는 (-)이므로 apache2.conf 파일이 완성됩니다.

<VirtualHost *:80> 
     ServerName domain.com 
     DocumentRoot /var/www 
     <Directory /var/www> 
     Allow from all 
     </Directory> 


     RailsBaseURI /webapp 
     <Directory /apps/webapp/public> 
     Options -MultiViews 
     </Directory> 
</VirtualHost> 

지금 우리가해야 할 일은 다음과 같습니다 우리의/응용 프로그램/웹 애플리케이션/공용 폴더로는/var/www /에서 웹 애플리케이션을 가리 키도록 우리의 위치 기반 폴더에 심볼릭 링크를 만드는 것입니다.

ln -s /apps/webapp/public /var/www/webapp 

이제 심볼 링크를 만들었으므로 레일스 경로 나 환경 파일에 추가 코드를 삽입 할 필요가 없습니다. RackENV 프로덕션을 사용하여 어떤 환경을 사용할지 지정할 수 있습니다 (실제로는 3 + 앱이 랙에 설치되어 있습니까? 그렇지 않은 경우 논평 해주십시오)

관련 문제