회사에서 하는 간단한 웹 서비스를 위해서, ROR 을 도입하여 , 프로토 타입을 만들어 보기로 하였다 .

일단, 개발에 걸린 시간은 3시간, 오호라.. 역시 빠르군. 코딩도 별로 하지 않았어. 좋아좋아.
그런데 삽질은 이제부터...
사실 프로토 타입이라 아파치 연동이라던가 밸런서 세팅같은 것은 별로 고려하지 않았었지만,
일단 시작하니, 멈출수가 없었다.

구글링을 통해서 알아보고 세팅 하기로한 조합은 다음과 같다.

RoR + apache2 + mongrel + mongrel_cluster + proxy_balancer

한국 웹페이지 중 가장 많은 참조를 받은 문서는 이것. => http://iadle.tistory.com/36

하지만, 이대로 했다가 실패하였다. 원인은, 나같은 서버세팅 초심자들이 해줘야 할 것들이 문서에는
빠져 있었던것.

주변 분들의 도움을 받아 해결한 삽질기를 공개한다 . 실질적인 세팅은 구글링 해보시길. ^^;
여기엔 내가했던 실수만 공개함.

  1. Virtual Host Setting 만 먼저 해본다.
    - 이 단계 에서는 레일스와 전혀 상관이 없다. 일단 Virtual Host 가 동작해야 Proxy 도 동작한다.
  2. proxy 세팅
    - proxy module 의 설정파일에서 ProxyRequests 를 On 으로 설정!!
    - proxy module 의 설정파일에서 Allow from all 로 세팅!!
  3. Virtual Host 세팅 파일에서 proxy 설정
    - KAE 님의 문서에서는 proxy_balancer 를 사용하는데, 결국에는 실패하고, 그냥 Proxy 서버로써
    내부적으로 돌아가고 있는 mongrel 서버에 연결해주는 데서 그쳐야 했다.

흠. 정리하니 간단하네 -_-;

Trackback Address :: http://jslee.tistory.com/trackback/154

댓글을 달아 주세요

회사에서 하는 일을 기준으로 잊어먹지 않기위해 정리해 둡니다. ^^

기본적인 과정은 다음과 같다.


동일한 소스코드를 가지고, target 을 세개를 만든다.


1. i386 빌드를 위한 타켓 -> BSD Dynamic Library

2. PPC 빌드를 위한 타켓 -> BSD Dynamic Library

3. 두개 타겟을 가지고 lipo 이용한 스크립트를 실행시켜 universal binary 만들 타겟 -> Special Targets Aggregate


일단, MakeFile 있는 빌드 옵션들을 x-code 환경에 적어줘야 한다.


여기서 설명하는 x-code 버전은 3.0 기준으로 한다.


1. i386 타겟을 더블클릭한다.

2. Build -> Architectures -> Valid Architectures 항목을 i386으로 정해준다.

3. Build -> Build Locations -> Base SDK Path 값을 $(DEVELOPER_SDK_DIR)/MacOSX10.4u.sdk 으로 변경

4. Build -> Linking -> Other Linker Flags 값을


-Wl,-executable_path,/Users/jslee/Documents/DEV/FF-Extension/mozilla-u/build/ppc/dist/universal/xulrunner/XUL.framework/Versions/Current -lxpcomglue_s -lxpcom -lnspr4 -lplds4 -lplc4 -liconv


5. Build -> Search Paths -> Header Search Paths 값을 미리 컴파일한 "gecko sdk path"/include 경로를 적어준다. 이때 주의사항은 i386 이면 i386 gecko sdk path 적어주고, PPC 타겟이면 ppc gecko sdk path 적어준다.


6. Build -> Search Paths -> Library Search Paths 값을 미리 컴파일한 "gecko sdk path"/lib 경로와, 미리 universal binary 컴파일한 XUL.Framework 링크 시켜준다.

7. Build -> GCC 4.0 - Language -> Other C++ Flags 값에 -fshort-wchar 적어준다.

8. Build -> GCC 4.0 - Preprocessing -> Preprocessor Macros 값에 XP_UNIX=1 XP_MACOSX=1 값을 차례로 넣어준다.


이렇게 한후 하나씩 빌드해서 무리없이 빌드 되는것을 확인한다.


9. universal binary 만들 타겟 선택하여 new -> New Build Phase -> New Run Script Build Phase 실행

10. 9 에서 나오는 창에 script 란에 다음을 입력


lipo -create $TARGET_BUILD_DIR/libfpweblink-i386.dylib $TARGET_BUILD_DIR/libfpweblink-ppc.dylib -output $TARGET_BUILD_DIR/fpweblink.dylib


11. universal binary 로 만들 타겟 을 더블클릭하여 정보 창을 띄운다. 정보창에서 Direct Dependencies 에


- PPC Target

- i386 Target

두가지를 등록한다.


12. universal binary 타겟을 clean target 후 build 하면 의존성 걸려 있는 타겟들 부터 새로 빌드한후, universal binary 까지 만드는 것을 볼 수 있다.





Trackback Address :: http://jslee.tistory.com/trackback/153

댓글을 달아 주세요

offline 에서도 ruby on rails 의 api document 가 보고 싶다면 다음과 같이 하면 된다.

$ rails rails_2.0.2
$ cd rails_2.0.2
$ rake rails:freeze:gems
$ rake doc:rails

위와 같이 하면 HTML 문서가 쫘르륵 생성 된다. 생성된 후에 doc/api/index.html 을 브라우저에 북마크 시켜 놓고 필요할때 마다 열어보면 된다. ^^

이올린에 북마크하기(0) 이올린에 추천하기(0)

Trackback Address :: http://jslee.tistory.com/trackback/152

댓글을 달아 주세요