2010-04-24 7 views
1

현재 Ruby on Rails를 배우고 있습니다. 현재 내 랩톱에서 모든 작업을 수행합니다. 그러나 나는 모든 "현실 세계"상황에서 사이트를 보유 할 전용 서버에 연결한다는 것을 알고 있습니다.웹 개발 학습 env

여기 내 질문이 있습니다. 내가 사용하는 컴퓨터에서 개발하는 것과 다른 서버에서 웹 사이트를 실행하는 것의 장단점은 무엇입니까?

답변

3

로컬 개발의 문제점은 일반적으로 인프라에 대해 신경 쓰지 않는다는 것입니다. 예를 들어 프론트 엔드 웹 서버 나 우리의 개발 환경에 어떤 보석이 설치되어 있는지 잊어 버렸습니다. 프로덕션 환경을 실제로 시뮬레이트하려면 apache webserver + Passenger (승객은 mod_rails, Apache 웹 서버의 레일을 실행하는 모듈)를 설치해야합니다.

내가 제공하는 몇 가지 팁은 다음과 같습니다. 프로덕션 환경에서 사용하는 것과 동일한 sql 서버를 설치하십시오 (sqlite3을 사용하여 개발하고 mysql을 실행하는 환경에 두지 마십시오). 개발 워크 스테이션에서 apache + passenger를 로컬로 사용하고 당신이 개발을 시작한 이래로 설치 한 모든 문서 (아마도 명령 젬 목록의 출력은 여러분이 사용하는 것을 식별하는데 도움이 될 것입니다.)

내가하고 싶은 것은 다음과 같습니다. 필요한 모든 소프트웨어가 필요한 실제 OS에서 실행되는 가상 머신 (가상 박스)을 실행합니다. 가상 기기. 첫 번째 테스트 이후이 접근법을 사용하면 내 응용 프로그램이 어떻게 프로덕션 환경에서 작동하는지 알 수 있으며 향후에는 너무 많은 놀라움을 피할 수 있습니다.

결론 : 인프라에 대해 생각하고 일관성을 유지하며 일찍 배포하십시오. 이 3 단계를 통해 RoR 개발에 성공할 수있는 좋은 기회를 갖게됩니다.

0

글쎄, 차이점이 없습니다. 일단 레일 애플리케이션을 완성하면 완전히 배치 할 준비가됩니다! 레일 규칙!

아마 레일 서버 문제를 실행하는 것입니다! 따라서 스크립트/서버를 사용하여 컴퓨터에서 응용 프로그램을 실행하는 경우 웹 프론트 서버에서 Passenger와 같은 것을 사용해야합니다.

+0

승객이란 무엇이며 어떤 역할을합니까? –

+0

AKA mod_rails. Apache 플러그인을 사용하여 레일 앱을 실행할 수 있습니다. env * .rb 파일에서 config.gem '모든 gem'을 가지고 웹 서버에서해야 할 일은 아파치 용 가상 호스트 용 앱의 공개 폴더를 정의한 다음 마이그레이션을 실행하는 것입니다. 생산 및 레이크 보석 : 설치! – amrnt

0

나는 모든 개발 작업을 로컬에서 수행합니다. (나는 과거에 다른 환경에서 원격 개발 작업을 해왔지만, 정말 고통 스럽다 ... J2EE 내가 너를보고있다).

로컬과 원격 사이의 설정 차이가 문제 일 수 있지만 레일스와 루비는이 문제를 많이 처리합니다.

대상 배포를 반영하는 특정 Ruby 및 GEM 버전으로 환경을 설정하려면 RVM (Ruby Version Manager)을 사용합니다. 반짝이는 새로운 Gem Bundler를 사용하여 응용 프로그램 종속성의 목록을 만들 수 있습니다.

배포 된 환경과 동일한 데이터베이스를 로컬로 사용하는 것이 좋습니다. DB 사이에 미묘한 차이가 있습니다. 단순한 시스템에서는 그다지 문제가되지 않지만 여러 모델에서 복잡한 쿼리를 작성하거나 집계 함수를 사용하면 원격 서버에서 직접 디버깅 할 수 있습니다.

스테이징 및 테스트를 위해 무료 Heroku 계정을 사용하여 작업을 배포 및 확인합니다 ... 설치가 쉽고 멋진 체크를 제공합니다.