Outsider's Dev Story

Stay Hungry. Stay Foolish. Don't Be Satisfied.
RetroTech 팟캐스트 44BITS 팟캐스트

Redmine과 Apache 연동시 Passenger의 "no such file to load" 오류

호스팅 받고 있는 서버에 이런 저런 셋팅중에 있습니다. 이전에는 Trac을 더 좋아했었는데 이런저런 레드마인의 장점이 많이 있어서 Redmine을 설치했습니다. Redmine에 대한 설치도 좀 정리할려고 했는데 깔끔하게 설치되지 않고 이런저런 삽질은 좀 한터라 다음에 기회되면 정리를 해야겠네요. ㅎ

레드마인 설치방법들을 찾아보면 레드마인과 아파치의 연동을 위해서 보통 Phusion Passenger를 사용하고 있습니다. 그래서 Passenger를 설치하고 아파치에서 가상호스트로 연동을 했는데 잘 되지 않았습니다. 사실 대부분의 강좌에는 가상호스트가 레드마인 설치폴더로 연결이 되어 있었는데 여러가지를 찾아보다가 "레드마인설치폴더/public" 로 가상호스트의 DocumentRoot를 연결하자 Passenger가 동작을 했습니다 하지만 아래와 같은 오류메시지가 떴습니다.(일단 동작만 한걸로도 순간 기쁨이....) (Ubuntu 9.10, Redmine 0.9 환경입니다.)

passenger 오류화면

에러메시지는 "no such file to load -- application (MissingSourceFile)" 이고 에러클래스는 "Passenger::UnknownError" 입니다. 관련글을 찾아보니 이런 글이 있었습니다.  레드마인 폴더의 app/controllers/application_controller.rb의 심볼릭 링크를 application.rb로 같은 폴더에 생성하라는 내용이었습니다.

ln -s application_controller.rb application.rb

이렇게 application.rb라는 이름의 심볼릭 링크를 생성하자 레드마인 사이트가 떴습니다.(레일즈의 버전에 관련된 내용인지 passenger가 application.rb를 사용하는듯 합니다.)



추가로 이렇게 셋팅했을때 레드마인은 정상적으로 나왔지만 정적파일들(js나 css같은 파일)에서 500 error가 나오면서 로드되지 않았습니다. 이문제의 정확한 원인이 Passenser와 연관이 있는지 잘 몰라서 그냥 함께 남깁니다.
정적파일이 로딩안된 레드마인 화면

"The server encountered an internal error or misconfiguration and was unable to complete your request."라는 오류메시지로 500 Internal Server Error가 발생했으며 아파치의 오류로그(/var/log/apache2/error.log)를 보면 아래와 같은 남겨져 있었습니다.

/설치폴더/redmine-0.9/public/.htaccess: Invalid command 'RewriteEngine', perhaps misspelled or defined by a module not included in the server configuration

ActionController::RoutingError (No route matches "/stylesheets/" with {:method=>:get}):

레드마인 설치관련해서 찾으면서 .htaccess파일 삭제해 대한 내용을 본적이 있어서 일단 백업해두고 .htaccess파일을 삭제하니까 레드마인이 정상적으로 돌아갔습니다.
2010/05/17 04:02 2010/05/17 04:02