워드 프레스 및 Git 워크 플로우


23

나는이 질문이 수천 번 요청되었음을 알고 있지만 실제로 WordPress로 작업 할 때 Git을 최대한 활용하는 방법을 찾으려고 노력하고 있습니다.

웹을 검색하고 수십 개의 기사를 읽었으며 주제를 간략하게 다루는 것 같습니다. 최근에 읽은 가장 주목할만한 몇 가지가 있습니다.

-버전 제어 워드 프레스

-Git으로 WordPress 테마 배포 관리

-FTP 대신 git을 사용하여 사용자 정의 WordPress 테마 관리

현재 내 워크 플로는 다음과 같습니다.

  • 로컬로 WordPress 설치
  • 테마 개발
  • 로컬 서버에서 WordPress 데이터베이스 내보내기
  • 원격 서버로 WordPress 데이터베이스 가져 오기
  • FTP를 통해 WordPress 파일 및 테마 업로드
  • 고객이 변경
  • FTP를 통해 WordPress 파일 및 테마 다운로드 및 원격 서버에서 WordPress 데이터베이스 내보내기
  • 파일을 로컬로 교체
  • 개발 변경
  • FTP를 통해 다시 업로드, 데이터베이스를 내보내고 원격 서버로 가져 오기

Git이이 프로세스를 간소화 할 수 있다는 것을 알고 있습니다. 이를 수행하는 가장 좋은 방법은 추적 할 필요가없는 특정 디렉토리를 무시하고 로컬 및 원격 wp-config.php 파일을 모두 갖는 .gitignore 파일을 갖는 것입니다.

그러나 데이터베이스를 어떻게 처리합니까? 고객은 일반적으로 게시물 (페이지 / 페이지 / 플러그인)을 변경합니다. 여전히 원격 데이터베이스에서 내보내고 로컬 서버로 다시 가져와야합니까?

누군가 나를 위해 최고의 워크 플로우를 제안 할 수 있습니까? 그리고 단계를 안내해주세요.

또한 GitHub와 달리 Bitbucket을 비공개 저장소로 무료로 사용하고 싶습니다.

도움을 주시면 감사하겠습니다.

미리 감사드립니다!


어땠어? 알아 냈어? 여기에도 같은 문제가 있습니다.
qwerty

3
질문에 조금 집중할 수 있습니까? git에 대해 질문하지만 데이터베이스로 이동하면 git은 본질적으로 처리하는 도구가 아닙니다.
Rarst

4
나는 당신이 질문이 유효하다고 생각합니다. 나는 같은 워크 플로를 가지고 있으며 다른 개발자들과 이야기를 나 they면 동일한 워크 플로우를 가지고 있음을 알았습니다. 그러나 시간이 많이 걸리고 오류가 발생할 여지가 많습니다. 또한 더 나은 솔루션에 관심이 있습니다.
gdaniel

답변:


6

저는 WP Migrate DB Pro 개발자 중 한 명이며 @Ennui의 질문에 답변하고 싶습니다.

"db url replace 스크립트가 직렬화 된 문자열을 고려하는지 알고 있습니까?"

예, 직렬화 된 데이터를 처리합니다. 사실, 이것이 2009 년에 무료 버전의 플러그인을 개발 한 주된 이유입니다. :)

불행히도 나는 41의 평판을 얻었으므로 @Ennui의 의견에 대답 할 수 없었습니다. 그 죄송합니다.


1
지금 50을 얻었습니다 :) 훌륭한 플러그인 맨.
앤드류 바텔

4

나는 대답이 아니라 토론과 의견을 요구하는 일종의 것처럼 보이기 때문에 이것을 "건설적이지 않은"것으로 마무리하기 위해 투표를하고 있습니다. 그러나...

그것은 나의 작업 흐름과 같지 않으며, 지금까지의 대부분의 답변과 나의 접근 (및 답변)을 다르게 만듭니다.

  1. 로컬로 WordPress 설치
    1. 이것은 최신 안정 릴리스가 포함 된 로컬 베어 Git 저장소에서 복제됩니다.
    2. 또한 거의 항상 설치하는 몇 가지 플러그인의 최신 릴리스의 로컬 사본을 유지합니다.
  2. 테마와 필요한 플러그인 구축
  3. 공개 스테이징 서버에 업로드
    1. 클라이언트에게 액세스 권한이 부여되었지만 코드를 변경할 수 없으며 데이터베이스 편집 내용이 프로덕션 사이트로 전송되지 않습니다.
    2. 이는 코드를 개발 서버로 다시 다운로드 할 이유가 없음을 의미합니다.
    3. 로컬 데이터베이스를 다시 동기화 할 이유가 없습니다.
  4. 직원 및 고객의 의견에 따라 로컬 사이트를 변경하십시오.
  5. 변경 사항 업로드
  6. 필요에 따라 반복하십시오 (그러나 저항이 증가함에 따라) :
  7. 항상 그렇지는 않지만 컨텐츠를 제공하는 경우 스테이징 서버에서 데이터베이스를 정리하고 컨텐츠를 업로드합니다.
  8. 로컬 코드를 프로덕션 사이트에 업로드하여 배포하십시오.
  9. 컨텐츠를 작성한 경우 컨텐츠는 바닐라 내보내기 도구를 통해 스테이징 사이트에서 내보내지고 프로덕션 사이트로 가져옵니다.
    1. 이것은 데이터베이스를 이동해야 할 유일한 시간이며 표준 도구를 사용하여 수행됩니다. 필요한 경우 Velvet Blues 업데이트 URL 을 사용 하여 데이터베이스를 정리합니다.
  10. 디버그

기본적으로, 나는 우리가 사이트를 넘길 때까지 클라이언트를 내 물건으로부터 멀리 떨어 뜨립니다.

코드는 로컬에서 스테이징 또는 프로덕션으로 한 방향으로 이동합니다. 절대 다른 방향으로 움직이지 않습니다. 그것은 당신의 발걸음을 없애고 마음의 평화를줍니다. 내 코드에서 클라이언트의 땜질을 비난하고 싶지 않으며 0이 아닌 가능성이있는 일부 해킹 된 파일을 가져오고 싶지 않습니다.

데이터베이스는 한 번만 이동하면 문제가 크게 줄어 듭니다. 따라서 데이터베이스 이동 필요성을 줄이거 나 제거하여 "데이터베이스 이동"문제를 관리한다고 생각합니다. 또한 발생할 수있는 데이터베이스 손상 문제를 줄이고 해킹을 가져올 가능성을 줄입니다.

사실, 프로덕션 사이트 (퍼머 링크, 메뉴 등)를 구성해야하지만 프로덕션 사이트에서 작업해야하므로 일종의 디버깅으로 간주합니다. 프로덕션 사이트에서 원하는대로 작동하는지 확인할 수 있습니다.


1
11. 끝 -당신은 WordPress 사이트를 유지 / 패치 / 개선 할 필요가 없었습니까?
Simon East


2

기반암 스택을 살펴보십시오 . 작곡가를 사용하여 Wordpress 및 타사 플러그인 버전을 관리하며, 배포를위한 capistrano, 개발을위한 로컬 가상 서버를 포함한 서버 설정을위한 방랑 / 지원 기능도 포함되어 있습니다.


2

최근에 이와 관련하여 많은 테스트를 수행했으며 여기에 내가 사용하는 워크 플로우가 있습니다.

  • wp-cli를 사용하여 워드 프레스 코어를 관리하고 워드 프레스를 업데이트합니다.
  • 플러그인과 테마 종속성을 관리하기 위해 http://wpackagist.org 와 함께 composer를 사용 합니다.
  • git을 사용하고 핵심 wp 파일을 .gitignore에 넣습니다. 따라서 대부분 wp-config.php 및 하위 테마 파일은 git에 있습니다.

DB 마이그레이션 도구에 익숙하지 않지만이 워크 플로우에 큰 도움이 될 것입니다.

워크 플로 http://geekpad.ca/blog/post/maintainble-portable-wordpress-using-composer-wp-cli 에 대한 자세한 내용은 다음과 같습니다.


1

데이터베이스 "복제"와 관련하여 WP Migrate DB Pro를 사용합니다. http://deliciousbrains.com/wp-migrate-db-pro/

유료 서비스이지만 비용이 많이 들지 않으며 데이터베이스를 개발자의 서버에서 라이브 서버로 또는 그 반대로 쉽게 가져올 수 있습니다. URL 및 변경해야하는 모든 사항을 변경합니다.


1
실행되는 db url replace 스크립트가 직렬화 된 문자열을 고려하는지 알고 있습니까? URL을 대체하는 간단한 업데이트 쿼리는 직렬화 된 문자열을 URL로 URL을 나누기 때문에 좋지 않습니다 (새 URL이 이전 URL과 문자 수가 동일하지 않으면 가장 적습니다). 이것은 텍스트 위젯과 많은 플러그인을 파괴합니다. 나는 지금 이 스크립트를 사용 하지만 같은 일을하면이 플러그인에 관심이 있습니다.
Ennui

방금 개발자에게 이메일을 보내 그 질문에 대답했습니다. 나는 그럴 필요가 없었습니다 (아직).
deadlyhifi

1
이 플러그인을 모든 마이그레이션 요구에 사용하지만 직렬화 된 문자열 및 URL 교체와 관련된 문제는 아직 보지 못했습니다. 모든 사용자 정의 필드는 문제없이 전송됩니다. 기본적으로 모든 것을 대체합니다. 여기에는 사용자 / 암호 등이 포함됩니다.
hereswhatidid
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.