2008-11-09 5 views
0

현재 PHP와 MySQL을 사용하는 웹 응용 프로그램에서 작업하고 있지만 서버에 대한 셸 액세스 권한이 없습니다 (이미이 문제를 해결하고 있습니다 ...). 현재 로컬 컴퓨터에서 Subversion을 사용하는 소스 제어 기능이 있으며 모든 변경 작업을 수행하는 로컬 컴퓨터에 데이터베이스가 있습니다. 그런 다음 로컬 컴퓨터의 모든 업데이트를 테스트 한 후에 사이트를 수동으로 배포합니다. 나는 filezilla를 사용하여 업데이트 된 파일을 업로드 한 다음 로컬 데이터베이스를 덤프하고 배포 서버로 가져옵니다.FTP를 통해 PHP/MySQL 사이트를 배포하기위한 좋은 솔루션은 무엇입니까?

분명히 현재의 솔루션은 이상적인 곳이 아닙니다. 한가지 중요한 점은 .svn 파일을 복사하지 못하도록하는 방법이 필요하다는 것입니다. 누군가이 특정 설정에 가장 적합한 솔루션이 무엇인지 알고 있습니까? 저는 Capistrano와 Ant를 보았습니다. 그러나 쉘 액세스가없는 문제는 둘 다 보입니다 ...

답변

1

당신은 당신의 작업 복사본에서 다른 디렉토리로 (오히려 체크 아웃 이상)을 전복 수출을 할 수 있지만, 당신이 할 수 있습니다 :

현재 DB의 수준을 유지하기 위해 사이트에 구성 테이블을 추가하십시오.

개발하는 동안 각 SQL 변경 사항 집합을 하나의 파일로 저장합니다 (저는 delta_X-up.sql과 같은 것을 사용합니다). 이것들은 SVN에도 남을 것입니다. 예를 들어, delta_5에 있고 현재 릴리스와 새 릴리스 사이에 테이블을 추가하면 필요한 모든 SQL이 delta_6-up.sql에 저장됩니다.

빌드 할 시간이되면 repo를 내 보냅니다 체크 아웃을 사용하는 대신. 이것은 당신이 생산에 그것들을 필요로하지 않을 것이기 때문에 함께 오는 모든 SVN cruft를 무시할 수있게 해줍니다.

Weex을 사용하면 이러한 변경 사항을 프로덕션 환경에 적용 할 수 있습니다 (rsync를 사용했지만 해당 옵션이없는 경우). 현재 델타 레벨을 확인하려면 config DB를 검사하는 원격 스크립트를 호출하고 delta_x-up.sql 파일과 함께 디렉토리를 구문 분석하고 새로운 파일이 있는지 확인하십시오. 있는 경우, SQL을 읽고 내부에서 실행하십시오.

3

나는 FTP를 통해 서버를 동기화하기 위해 Weex을 사용하고 있습니다. Weex는 기본적으로 원격 서버의 파일/디렉토리를 자동으로 업로드하고 삭제하는 비대화 형 FTP 클라이언트입니다. 특정 경로 (예 : SVN 디렉토리)를 업로드하지 않고 특정 원격 경로 (예 : 로그 디렉토리)를 유지하도록 구성 할 수 있습니다.

불행하게도 나뿐만 아니라 MySQL 데이터베이스를 동기화하는 손에서 해결책 ... 어쩌면 당신은 "SQL 패치 스크립트"에서 데이터베이스 변경 로그 (또는 전체 덤프를 사용) 할 수

, Weex 및 전화에 그들을 업로드가 없다 나중에 SQL 패치를 실행하는 원격 PHP 스크립트. , 그것은 내가 생산에 rsync를 사용하면

2

에 대한 모든을 .svn 물건을 제거합니다

+0

좋은 아이디어. 나는 그들을 밖으로 시험 할 것이다라고 생각한다. –

관련 문제