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


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.