개발, 테스트 및 릴리스


10

Wordpress 사이트를 어떻게 개발, 테스트 및 배포 할 수 있습니까?

특히 데이터베이스가 염려되는 곳에서 항상 찾은 요소 중 하나입니다. 주로 테스트 사이트에는 완전히 새로운 데이터베이스를 배포해야하기 때문에 모든 링크가 실제 사이트 대신 테스트 사이트 URL.

마찬가지로 버그를 수정하거나 새로운 것을 개발해야 할 때부터 사용자가 업로드 한 모든 업로드는 테스트 사이트로 복사해야합니다.

다른 사람들은 어떻게합니까? 그냥 faff를 참을 수 있습니까? 도움이되는 현명한 버전 관리 시스템을 사용하십니까?

감사


호스트 파일 변경을 중심으로 시스템을 회전 시키면 테스트 DB를 사용할 필요가 없습니다. ( wordpress.stackexchange.com/a/10943/9142 )
Alexander Bird

답변:


12

배포 워크 플로에 들어가는 약간의 개인적인 철학이 있습니다. 서버 및 버전 관리 경험, 운영 체제, 호스팅, 클라이언트 경험 및 기술 문화 등에 대한 지식을 모르고도 대답하기 쉬운 질문은 아닙니다.

  1. 여기 에 많은 설명이 있는 비슷한 질문 이 있습니다.
  2. 콘텐츠 배포의 경우 Crowd Favorite의 RAMP 플러그인을 확인할 수 있습니다 .
  3. WP Hackers는 배포에 대한 좋은 정보를 찾기위한 훌륭한 스레드입니다.

개인적으로, 나는 테마에 절대 URL을 하드 코딩하지 않도록합니다. bloginfo () 또는 코드 관련 URL을 사용하십시오. 내 wp-config.php 파일에서 많은 조건을 사용합니다. 다음은 내 wp-config 편집의 바닐라 버전입니다.

switch($_SERVER['SERVER_NAME']){
    case 'dev.yourdomain.com':
        $db_host = '';
        $db_pass = '';
        //define debugging
        break;
    case 'stage.yourdomain.com':
        $db_host = '';
        $db_pass = '';
        break;
    default: //Live
        $db_host = '';
        $db_pass = '';
}
define('DB_PASSWORD', $db_pass);
define('DB_HOST', $db_host);

//You could also set this as a variable above
define('WP_HOME', 'http://'.$_SERVER['SERVER_NAME']));
define('WP_SITEURL', 'http://'.$_SERVER['SERVER_NAME']));

나는 다음을 따르는 많은 사이트에서 일한다.

  • 내 랩톱 웹 서버의 로컬 (개인 해킹 :))>
  • dev (클라이언트 서버에서 테스트)>
  • 단계 (품질 보증을위한 안정적인 소스-콘텐츠 수정)>
  • 생산 (라이브 사이트)

마지막으로 GIT 또는 SVN과 같은 배포를 지원하기 위해 버전 관리 도구를 사용하는 것이 좋습니다. 프로세스를 크게 줄이고 환경 간 소스 무결성을 유지합니다. 현지 및 지역에 대한 커밋은 스테이지 및 프로덕션의 명령 줄을 통해 쉽게 업데이트됩니다. 발견하는 동안 개발자가 프로젝트에서 작업중인 경우 처음부터 사용하려는 버전 제어를 정의하는 것이 가장 좋습니다. 개인적으로 버전 관리에 GIT를 사용합니다. 그러나 클라이언트가 SVN을 사용하는 경우 로컬에서 두 가지를 혼합하여 리포지토리를 유지하면서 리포지토리를 유지합니다.

한 환경에서 다른 환경으로 마이그레이션하는 데 문제가 거의 없습니다. 우리는 임베디드 미디어 등에 따라 URL을 변경하기 위해 DB에서 찾기 / 바꾸기를 수행합니다 ...


이것은 매우 유용합니다! :) 대단히 감사합니다. 따라서 각기 다른 서버에 배포 할 때마다 라이브 사이트에서 데이터베이스를 복제합니까? QA 및 컨텐츠 편집을 위해 준비 서버 (stage.domain.com)에 배포한다고 가정합니다. 라이브 사이트에서 스테이지 서버를 실행하는 동안 데이터베이스가 변경되면 어떻게됩니까? 즉, 귀하 또는 귀하의 고객이 무대에 로그인하여 일부 컨텐츠를 업데이트하지만 동시에 기고자가 라이브 사이트에 새 기사를 게시합니까? 라이브 사이트의 컨텐츠 편집 내용에 영향을 미치나요? 데이터베이스 구조 변경을 어떻게 처리합니까?
Thomas Clayson

모든 질문에 대해 죄송합니다! : p 나는 당신의 시간과 도움에 매우 감사합니다.
Thomas Clayson

새로운 기능 세트에서는 prod> stage에서 가져올 수 있습니다. 새 기능의 컨텐츠를 추가 한 후 stage> prod를 다시 누르십시오. 거기에서 stage는 고음질의 prod 사본이며 stage> dev를 가져올 수 있습니다. 우리는 종종 무대에서 DB를 끌어 당기는 것은 아닙니다. DB와의 대부분의 교환은 기능이 DB 아키텍처를 변경하지 않는 한 단계적으로 진행됩니다.
Brian Fegter

콘텐츠 배포에 스테이지를 사용하고 제품을 만지지 않으려면 이전에 게시 한 RAMP 플러그인을 확인하십시오.
Brian Fegter

어떤 자극적 인 플러그인은 URL을 직렬화 된 배열로 저장해야한다고 주장하면서 위의 모든 것을 +1하여 한 env의 DB에서 다른 env의 DB로 이동하는 것을 망칠 수 있습니다. 문제는 직렬화 된 배열이 문자열 길이를 저장하고 길이가 변경 될 때 borken된다는 것입니다. 따라서 dev.example.com, tst.example.com, www.example.com 등 가능한 경우 env의 도메인 이름을 동일하게 유지하는 것이 좋습니다.
webaware
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.