개발 다중 사이트에서 프로덕션 다중 사이트로 하위 사이트를 마이그레이션하는 방법


12

다중 사이트를 사용하여 여러 하위 사이트를 로컬로 개발하고 준비가되면 프로덕션 환경으로 옮기는 가장 안전하고 안전한 방법을 찾고 있습니다.

이미 활성화 된 첫 번째 하위 사이트로 전체 다중 사이트 설치를 이미 마이그레이션했습니다. 로컬 서버에서 다른 사이트를 개발하여 프로덕션 서버를 그대로두고 전체 마이그레이션을 다시 수행 할 수는 없습니다.

해결책을 찾았지만 찾은 모든 것은 단일 사이트를 다중 사이트로 옮기거나 다른 방법으로 "하위 사이트를 다중 사이트에서 다중 사이트로 이동"하지 않는 것입니다.

설정, 위젯 등 모든 것을 유지하고 싶습니다.


1
상용 BackupBuddy 플러그인 이이 작업을 수행 할 수 있다고 생각하지만 더 일반적인 답변을 보는 데 관심이 있습니다.
Rarst

데이터베이스의 직렬화 된 문자열로 인해 그렇게하기가 쉽지 않습니다. 지금까지 순수한 마이그레이션을위한 플러그인을 보지 못했지만 반드시 수행해야 할 작업입니다. 한 블로그의 "대부분"부분을 다른 블로그로 옮기는 유일한 방법은 XML 내보내기 / 가져 오기 메커니즘을 통하는 것이지만 나중에도 많은 경로를 수정해야합니다.
2ndkauboy

1
가장 좋은 옵션은 직접 SQL 쿼리를 사용하여 수행하는 것입니다. 나는 두 번 이상 그것을했고, 당신이 충분히주의하면 잘 작동합니다.
krembo99

@ krembo99, 기술을 좀 더 설명해 주시겠습니까?
molokom

@Rarst, BackupBuddy에 관한 한, FAQ에서 "아니요. BackupBuddy 멀티 사이트 지원은 실험적입니다. 프로덕션 사이트에는 권장되지 않으며 공식적으로 지원되지 않습니다."
molokom

답변:


4

다소 지루할 수 있지만, 이것이 도움이되기를 바랍니다. 한 환경에서 다음 환경으로의 변경이 적을수록이 프로세스는 덜 고통 스러울 것입니다. 특히 도메인, 사이트 ID 및 파일 경로가 동일하게 유지되면이 프로세스가 덜 어려워집니다.

이 포스트는 데이터베이스 관리에 대한 지식이 있다고 가정합니다. 포럼을 검색하고 문제가있는 단계 (예 : 데이터베이스 테이블 내보내기에 도움이 필요한 경우)에 특정한 스레드를 작성해야하므로 단계적으로 완료되지는 않습니다.

가장 중요한 것은 문제가 발생할 경우를 대비하여 로컬 개발 사이트와 새로운 위치 모두에 대한 전체 데이터베이스와 파일백업 하는 것입니다. 무언가 잘못 될 것으로 예상합니다. 그렇지 않으면 유쾌하게 놀라십시오.

테마 파일을 이동하는 것은 매우 간단합니다. 테마 파일 을 wp-content / themes 디렉토리에 업로드 하고 평소와 같이 활성화하십시오. 이것이 모든 블로그가 액세스 할 수있는 공유 테마라고 가정합니다.

새 위치에서 플러그인 파일 을 wp-content / plugins에 업로드하십시오 . 아직 활성화하지 마십시오.

마이그레이션중인 블로그 전용 콘텐츠 wp-content/blogs.dir/2/files는 2가 사이트 ID 인 것처럼 보이는 디렉토리 에 있습니다. 이 사이트 ID를 새 위치에서 유지 관리 할 수 ​​있으면 새 위치로 마이그레이션 한 후 데이터베이스 충돌을 최소화하는 데 도움이됩니다. 그렇지 않으면 새 경로를 반영하도록 데이터베이스를 업데이트해야합니다.

마이그레이션하려는 블로그와 관련된 다중 사이트 테이블내보내고 새 위치로 가져와야합니다. 이주중인 블로그와 관련된 데이터를 저장하는 테이블을 편집해야합니다. 이 테이블의 접두사가 새 위치에서 동일한 지 확인하십시오.

예를 들어 블로그의 wp_blogs 테이블에는 WordPress 멀티 사이트가 블로그를 인식하고 작업 할 수있는 블로그 ID, 사이트 ID, 도메인 및 경로가 포함되어 있습니다. 새 위치를 반영하기 위해 더 이상 올바르지 않은 항목을 편집하되, 시도하기 전에이 게시물의 나머지 부분을 읽으십시오.

멀티 사이트 테이블 개요 참조

블로그를 전송할 WordPress 및 플러그인 설정마이그레이션 하려면 모든 플러그인을 로컬로 비활성화 한 후 플러그인에 대한 테이블을 포함 하여 사이트 별 테이블 (코덱스 참조)을 내 보내야합니다. 이 테이블을 새 위치의 데이터베이스로 가져옵니다.

새 위치가 가져 오는 테이블과 동일한 데이터베이스 접 두부를 사용하는지 확인하십시오. 접두사는 블로그의 사이트 ID를 포함하며 다음과 같습니다 wp_2_options, wp_2_posts, wp_2_postmeta. Lisa Sabin-Wilson의 WordPress 다중 사이트 탐색
참조

phpmyAdmin을 통해 또는 터미널에서 mysqldump 명령을 사용하여 가져 오기 / 내보내기하는 방법을 알고 있다고 가정합니다. 이 게시물의 범위를 약간 벗어 났지만 여기에 도움이되는 내보내기 예제가 있습니다.

에서 어떻게 특정 테이블 (들) mysqldump에합니까? (구문이 더 명확하게 약간 편집되었습니다.) :

이름이 mydb 인 데이터베이스에서 테이블 t1, t2 및 t3을 덤프하는 경우

mysqldump -u <username> -p <password> mydb t1 t2 t3 > mydb_tables.sql

새 사이트에서 플러그인을 활성화하기 전에 admin cp의 퍼머 링크 설정으로 이동하여 데이터베이스 파일을 새 사이트 URL로 업데이트하기위한 설정을 저장하십시오. 플러그인을 활성화하고 문제가 있는지 확인하십시오.

한 가지 문제는 테이블의 데이터 직렬화와 관련이 있습니다.

"[...] 이전 도메인 이름 또는 위치에 대한 참조는 데이터베이스에 남아 있으며 링크 또는 테마 표시에 문제가 발생할 수 있습니다.

URL을 변경하기 위해 전체 데이터베이스를 검색하고 교체하는 경우 일부 테마 및 위젯이 URL 길이가 표시된 값을 저장하기 때문에 데이터 직렬화에 문제가 발생할 수 있습니다. " 도메인 이름 또는 URL 변화

데이터 직렬화로 인해 플러그인과 관련된 데이터베이스 테이블에서도 충돌이 발생할 수 있습니다. 데이터베이스에 저장된 URL에서 수동 검색 및 바꾸기를 수행하는 대신 이전 코덱 링크에서 권장 된 데이터베이스 검색 및 바꾸기 스크립트를 사용하십시오 . 데이터베이스에 몇 개의 직렬화 인스턴스 만있는 경우 phpMyAdmin을 통해 또는 데이터베이스 관리를위한 환경 설정을 통해 수동으로 편집 할 수 있습니다.

발생할 수있는 또 하나의 문제는 데이터베이스 테이블에 저장된 잘못된 파일 경로를 업데이트하여 새 위치를 반영해야한다는 것입니다. 플러그인이 설계된 방식에 따라 플러그인이 사용하는 미디어 디렉토리 또는 디렉토리의 경우가 될 수 있습니다. 다시 검색 및 바꾸기 스크립트를 사용하여 파일 경로를 업데이트하는 동안 직렬화 충돌이 없는지 확인하고 싶을 것입니다. 또는 테이블을 통해 수동으로 업데이트 할 수 있습니다.


감사! 따라서 이런 식으로 작업하면 실제로 이점이없는 것 같습니다. 로컬 단일 사이트를 개발하고 멀티 사이트 환경으로 마이그레이션하는 것이 더 좋을까요?
molokom

동일한 문제가 많이 발생할 수 있지만 마이그레이션해야 할 테이블이 더 적어야합니다. 아이디어를 제공하기 위해 기존 블로그를 WordPress 다중 사이트로 이동 이라는 훌륭한 안내서가 있습니다. 개발자로서 어느 것이 더 효율적인지 결정하기 위해 귀하에게 맡길 것입니다.
iyrin

0

WordPress의 기본 제공 내보내기 및 가져 오기 기능을 사용할 수 없습니까? 그런 다음 FTP를 통해 테마를 한 설치에서 다음 설치로 이동하면됩니다. 상당히 빠르게 진행되며 5 분 이내에 설치간에 사이트를 마이그레이션 할 수 있습니다.

User Syncronization 이라는 멋진 플러그인을 사용하여 사용자 자격 증명을 동기화 할 수 있습니다 .

나는 그것을 사용하지는 않았지만 ManageWP 는 기존 사이트에서 새로운 사이트로 이동할 수있는 사용자 친화적 인 배포 및 복제 도구를 가지고 있습니다 ...

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.