2010-01-01 10 views
16

사람들이 CakePHP 응용 프로그램을 배포하는 방법을 찾는 데 관심이 있습니다. 나는 프리랜서 CakePHP 개발에 대해 최근 접근 해왔다. 프레젠테이션 계층에서 약간의 경험을 얻을 수있는 좋은 기회가 될 것이다. (FT 일은 비즈니스 및 지속성 계층에서 Java EE 개발을 수행한다.)CakePHP 응용 프로그램 배포

내 생각이 시점에서 해산 조금,하지만 난 다음 시나리오를 고려 중이 야 :

는 IDE에서 작업
  • 개발자가 (배경) 자동적으로 파일을 수정하는 동기를 개발 웹 서버는 로컬에서 실행됩니다. 이 시나리오는 내가 개발을하는 것을 이상적으로 바라는 것입니다 ... 변화를 만들고 추가 단계없이 행동 변화를 볼 수 있어야합니다.

  • IDE에서 작업하는 개발자는 원격으로 실행되는 개발 웹 서버와 FTP를 통해 백그라운드에서 자동으로 동기화되는 파일을 수정합니다. 이 시나리오는 넷북을 사용하여 여행 할 때 유용합니다 (IDE가 느리게 실행되므로 웹 서버가 없어도됩니다).

  • 관리자는 CakePHP 응용 프로그램의 최신 버전을 소스 코드 저장소에서 로컬로 실행되는 웹 서버에 배포합니다.
  • 관리자는 FTP를 통해 소스 코드 저장소의 웹 서버에 최신 버전의 CakePHP 응용 프로그램을 배포합니다.
  • 관리자는 소스 코드 저장소에서 로컬로 실행되는 웹 서버로 이전 버전의 CakePHP 응용 프로그램을 배포합니다.
  • 관리자는 FTP를 통해 소스 코드 저장소의 웹 서버에 이전 버전의 CakePHP 응용 프로그램을 배포합니다.

가장 편한 개발 도구는 Eclipse, Ant 및 Subversion입니다. 내 취향을 계속 사용하는 것입니다,하지만 그렇게하면 시나리오를 쉽게 달성 할 수 있도록 전환을 고려할 것입니다.

질문 :

  • 이 합리적인 시나리오, 아니면 내가 다른 방법으로 개발 및 배포에 대해 생각해야해야합니까?
  • 개발/배포를 단순화하는 데 도움이되는 도구는 무엇입니까? 개미, 스크립트 등으로 내 솔루션을 롤업하는 것이 나을 것인가?
  • 배포 중에 데이터베이스 문제를 어떻게 처리합니까? 특정 배포에 대해 데이터베이스 연결 속성을 어떻게 지정합니까? CakePHP 애플리케이션의 새로운 버전으로의 업데이트 (또는 이전 버전으로 되돌리기)가 데이터베이스 스키마와 데이터 마이그레이션을 변경해야한다면 어떻게 될까요?
  • 배포마다 다른 속성을 구성하는 방법은 무엇입니까? 예를 들어 개발 중에 사용 된 디버그 및 로깅 수준이 증가하여 개발 중 지불 게이트웨이로 지불이 보내지지 않는 것을 고려하십시오.
  • 배포 업그레이드 또는 되돌리기는 고객에게 어떤 영향을 줍니까? 예를 들어 거래가 진행 중일 때 (예 : 제품 구매)?
  • 다른 CakePHP 설치 유형을 어떻게 처리합니까? 설치 유형에 따라 파일을 다른 위치에 설치해야 할 수도 있습니다. 파일을 어디에 설치해야하는지 어떻게 알 수 있습니까? CakePHP 책은 개발, 생산 및 고급 설치에 대해 설명합니다.

한 게시물에서 많은 질문을 드려 죄송합니다. 질문은 모두 관련되어 있으며 한 곳에서 토론을 유지하는 것이 유용 할 것이라고 생각했습니다.

답변

12

이러한 합리적인 시나리오가 있습니까, 아니면 다른 방식으로 개발 및 배포를 고려해야합니까?

FTP 동기화를 사용하면 Dreamweaver에 대한 생각이 들지만 합리적인 것처럼 보입니다. :)

어떤 도구

가 개발/배포를 단순화 할 수있을 ... 당신이 (S) FTP를 통해 서버에 연결하거나 다음 중 하나를 사용 할 수있는 IDE를 사용하는 것이 좋습니다? 개미, 스크립트 등으로 내 솔루션을 롤업하는 것이 나을 것인가?

Jenkins, Capistrano, Phing, 개미, git push/pull, rsync

우리가 어떻게 배포 중에 데이터베이스 문제를 처리합니까? 특정 배포에 대해 데이터베이스 연결 속성을 어떻게 지정합니까? CakePHP 애플리케이션의 새로운 버전으로의 업데이트 (또는 이전 버전으로 되돌리기)가 데이터베이스 스키마와 데이터 마이그레이션을 변경해야한다면 어떻게 될까요?

cake schema generatecake schema run update을 사용하십시오.

배포마다 다른 속성을 구성하려면 어떻게해야합니까? 예를 들어 등을 개발하는 동안 지불 게이트웨이로 전송되는 것을 따라 (core.php.dev 대 예. core.php.prd) 다른

이름의 파일을 지불을 방지, 개발 과정에서 사용 증가 디버그 및 로깅 수준을 고려하여 설치에 이름을 바꿉니다.

배포 업그레이드 또는 되돌리기는 고객에게 어떤 영향을 미칩니 까? 예를 들어 거래가 진행 중일 때 (예 : 제품 구매)?

응용 프로그램 파일이 일관성없는 상태로 끝나지 않으므로 새 응용 프로그램 복사본을 새 폴더로 체크 아웃해야합니다. 모든 사용자가 제출 한 파일을 복사하고 *.prd 파일의 이름을 바꾼 다음 이전 복사본을 새 복사본으로 바꾸십시오 (심볼 링크 이름 바꾸기 또는 사용). 세션 (예. php 또는 database보다는 cake) 업그레이드를 살아남을 것입니다 어딘가에 저장해야합니다.

어떻게 우리가 다른 CakePHP의 설치 유형을 처리합니까? 설치 유형에 따라 파일을 다른 위치에 설치해야 할 수도 있습니다. 파일을 어디에 설치해야하는지 어떻게 알 수 있습니까? CakePHP 책은 개발, 생산 및 고급 설치에 대해 설명합니다.개발 설치

은 (당신이/잘못 구성 mod_rewrite 및 PHP 제거하지 않는 사람들이 코드를 볼 수 없습니다) 요청을 리디렉션 .htaccess 파일을 사용하는 PHP 애플리케이션만큼 안전합니다. 실제 설치는 가상 호스트의 문서 루트를 편집 할 수 없다면 약간 더 복잡합니다. 고급 설치는 파일 시스템의 어느 곳에서나 Cake를 설치할 수있게하지만 복잡성을 더합니다 (파일이 두 개의 별도 위치에 있지만 단일 레포에 저장 될 수 있기 때문에).

+0

대체 DB 마이그레이션 스크립트는 http : /stackoverflow.com/questions/2522372/good-db-migrations-for-cakephp – deizel