1 년 전에이 질문을했으며 그 기간 동안 더 많은 사람들을 팀에 추가하고 WordPress에서 훨씬 더 많은 사이트를 개발했습니다. 다른 사람에게 도움이 될 수 있도록 프로세스를 진행하고 싶었습니다.
힘내의 모든 것
이것은 내가 질문을했을 때 내가하고있는 일이지만이 점을 지적하는 것이 좋습니다. Git을 사용하면 생산성을 높이는 데 도움이되었을뿐만 아니라 집합적인 문제도 여러 번 절약 할 수있었습니다.
사이트에 대한 주요 구조적 리노베이션을 수행하고, 클라이언트로부터 리노베이션에 대한 승인을 받고, 리노베이션되지 않은 버전을 약간만 업데이트해야합니까? 우리는 그것을 가지고 있고 힘내 우리가 할 수 있습니다. 이 설정을 설명하는 데 약간의 시간이 걸리지 만 기본 사항은 새 분기를 만들고 해당 분기를 서버로 가져 와서 해당 하위 도메인을 해당 분기에 연결하는 것입니다.
우리는 또한 Git에 의해 구원을 받았습니다. 물론 변경 사항을 롤백 할 수도 있지만, 이전 버전의 파일을 다시 가져올 수도 있습니다. 즉, 고객이 "1 년 전에 사이트의이 부분이 어떻게 작동했는지 기억하십니까? 다시 가져올 수 있습니까?" 전에.
이 점 외에도, 필요한 파일이 없으면 절대 붙어 있지 않습니다. 우리는 항상 모든 컴퓨터에서 최신 버전의 사이트를 풀다운하고 변경을 시작할 수 있습니다.
Git을 사용하여 배포
우리는 Media Temple 에서 WordPress 호스팅을 수행 하며 정말 좋아합니다. 그들은 가장 저렴한 공급자는 아니지만 서비스는 훌륭하고 서버는 실제로 잘 설정되어 있습니다. 또한 기본적으로 Git을 제공합니다. 즉, 서버를 Git 리포지토리로 설정하고 SFTP를 사용하는 대신 변경 사항을 가져올 수 있습니다. 또한 서버에서 작업을 수행해도 덮어 쓸 위험이 없습니다 (변경 사항을 병합하여 다시 적용 할 수 있음).
BitBucket 을 Git 호스트로 사용하기 때문에 여기에 약간의 추가 작업이 필요합니다. 우선 .ssh / config 파일ssh sitename
을 사용하여 서버에 로그인하는 것과 같은 내용 을 입력 할 수 있습니다 ( 비밀번호가없는 SSH 도 사용 하므로 매우 간단합니다). 또한 항상 ssh 암호 구를 사용해야합니다 (Mac OS X에서는 암호 구를 Keychain.app에 저장할 수있어 매우 쉽습니다 ). 마지막으로 ForwardAgent 행을 가져 오려는 호스트의 .ssh / config 항목에 추가합니다. 즉, 각 서버의 공개 키가 아닌 BitBucket에 각 개인의 SSH 공개 키만 필요합니다. 또한 .git
디렉토리를 공개 HTML 디렉토리보다 한 디렉토리 위에 유지해야합니다 .
자동화 된 데이터베이스 덤프
서버가 프로덕션 모드에 있는 경우를 대비하여 데이터베이스 를 자동으로 백업해야합니다 .
모두 자신의 wp-config가 있습니다
우리는 모두 자체 로컬 데이터베이스 사용자 이름과 비밀번호를 가지고 있고 다른 이름과 서비스 메커니즘을 사용할 수 있기 때문에 각자 고유 한 wp-config 파일을 유지합니다. 이들 각각은 같은 이름으로 힘내에 저장되고 wp-config-gavin.php
, 우리는 그 설정을 사용하고자 할 때, 우리는 심볼릭 링크 에 wp-config.php
(사용 힘내에 의해 무시되는 .gitignore을 ).
또한 데이터베이스 테이블 의 siteurl
옵션을 다음 wp_options
과 같이 재정의 할 수 있습니다 .
define('WP_SITEURL', 'http://sitename.localhost');
define('WP_HOME', 'http://sitename.localhost');
이렇게하면 WordPress가 서버 위치에 대한 데이터베이스를 보지 못하게되므로 로컬과 서버 설치간에 위치에 이상한 차이가 없습니다.
wp-config.php 파일에 대한 마지막 참고 사항 : 공개 HTML 디렉토리 위에 파일을 저장하고 웹 사용자에게만 권한을 읽도록하십시오 . 이것은 WordPress 보안에 큰 차이를 만듭니다.
데이터베이스 문제
마지막으로 문제의 고기.
내가 받아 들여야 할 것은 WordPress를 사용할 때 데이터베이스 변경 사항을 "병합"하는 좋은 방법이 없다는 것입니다. 대신, 우리는이를 해결하기 위해 행동 규칙을 개발해야했습니다. 규칙은 매우 간단하며 지금까지 우리에게 잘 적용되었습니다.
개발하는 동안 사이트를 "소유"하는 사람이 한 명 있습니다. 그 사람은 일반적으로 설정을 수행합니다 (호스팅 패키지를 함께 가져 와서 Basecamp 프로젝트 시작, 디자인 슬라이싱 등). 그 사람이 합리적인 시점에 도달하면 WordPress 설치를 위해 데이터베이스를 덤프하여 Git에 넣습니다. 그 시점부터 개발을 수행하는 모든 사람이 해당 데이터베이스 덤프를 사용하며 소유자는 데이터베이스를 변경하는 유일한 사람입니다.
사이트 빌드가 조금 더 진행되면 사이트가 서버에 배치됩니다. 그 시점부터 서버의 데이터베이스는 정식입니다. 모든 사람 (소유자 포함)은 서버에서 모든 데이터베이스를 변경하고 로컬 개발 및 테스트를 위해 변경 사항을 풀어야합니다.
이 과정은 완벽하지 않습니다. 개발 중에 워드 프레스 백엔드를 로컬에서 변경 한 다음 프로덕션 환경에서 다시 변경해야 할 수도 있습니다. 그러나 우리는 그런 종류의 일이 드물다는 것을 알았습니다.이 과정은 우리에게 상당히 효과적입니다.