it-swarm-ko.tech

방법 : WordPress 설치를 개발에서 생산으로 쉽게 옮길 수 있습니까?

나는 하나의 박스에서 개발하고 생산을 위해 초를 사용한다. 지금 당장은 데이터베이스를 덤프 한 다음 URL 변경 사항을 찾기 위해 대체 작업을 수행합니다. 그런 다음 파일을 복사하고 새 SQL을 가져 오십시오.

이 작업을 수행하는 더 좋은 방법이 있습니까?

197
Ryan Gibbons

@ Insanity5902: 한 상자에서 다른 상자로 WordPress 사이트를 배포 한 것은 WordPress로 작업을 시작한 날부터 PITA였습니다. (Truth-be-t는 Drupal로 시작하기 전에 2 년 동안 WordPress의 PITA 였으므로 문제는 확실히 WordPress에만 국한된 것이 아닙니다.)

사이트를 이동해야 할 때마다 너무 자주 중복되는 노력을 기울여야하므로 원하는만큼 자주 테스트를 배포하지 못하게되었습니다. 약 4-6 개월 전에 웹 호스트 마이그레이션 문제를 해결하기 위해 플러그인 작업을 시작했으며 WP Tavern forum에 대한 아이디어를 언급했습니다 .

오늘로 빨리 넘어 가면 거의 작동하고 있고 "WP 웹 호스트 마이그레이션"이라고 편리하게 부르고 있습니다. 귀하의 질문에 따라 플러그인이 여전히 베타 (아마도 알파) 일지라도 사람들이 그것을 시작하게 할 준비가 된 것 같습니다.

계획된 유스 케이스는 다음과 같습니다.

  1. 먼저 개발자는 FTP를 통해 변경된 테마 및 플러그인 파일을 모두 업로드합니다.
  2. 그런 다음 개발 MySQL 데이터베이스를 테스트 서버에 완전히 업로드하고 마지막으로
  3. then은 플러그인을 실행하여 참조를 이전 도메인에서 새 도메인으로 마이그레이션합니다. (내 플러그인은 not 라이브 데이터베이스와 새로운 데이터베이스 필드 또는 테이블의 병합을 해결하려고 시도합니다. THAT는 해결 방법을 잘 모릅니다. )

내 웹 사이트에서 플러그인 다운로드 를 수행하고 플러그인 디렉토리에 압축을 풉니 다 (이 작업을 수행하는 방법을 모르는 경우이 플러그인은 사용자의 작업을 아는 사람이 필요하기 때문에 적합하지 않습니다) 사용하십시오.)이 플러그인을 WordPress.org에 릴리스 한 후에 찾을 수있을 때까지이 플러그인을 온라인으로 유지합니다.

이것을 사용하려면 wp-config.php에서 다른 4 가지 방법으로 주석을 달아 DB_NAME, DB_USER, DB_PASSWORDDB_Host를 정의하고 대신 registering 웹 호스트의 기본값을 설정 한 다음 각 웹 호스트 자체에 대한 정보를 등록하여 다른 접근 방식을 취합니다. . wp-config.php의 해당 세그먼트는 다음과 같습니다. 첫 번째 섹션은 불필요한 코드가 주석 처리되어 있으며 일일 개발을 위해 라우팅 할 수없는 .dev 최상위 도메인을 사용하여 로컬 컴퓨터에 호스트 파일을 설정했습니다. Mac에서 VirtualHostX 는 산들 바람을 만듭니다) :

// ** MySQL settings - You can get this info from your web Host ** //
/** The name of the database for WordPress */
//define('DB_NAME', 'wp30');

/** MySQL database username */
//define('DB_USER', 'wp30_anon');

/** MySQL database password */
//define('DB_PASSWORD', '12345');

/** MySQL hostname */
//define('DB_Host', '127.0.0.1:3306');

require_once(ABSPATH . 'wp-content/plugins/wp-migrate-webhosts/wp-webhosts.php');
register_webhost_defaults(array(
 'database'  => 'example_db',
 'user'      => 'example_user',
 'password'  => '12345',
 'Host'      => 'localhost',
 'sitepath'  => '',        // '' if WordPress is installed in the root
));
register_webhost('dev',array(
 'name'      => 'Example Local Development',
 'Host'      => '127.0.0.1:3306',
 'domain'    => 'example.dev',
 'rootdir'   => '/Users/mikeschinkel/Sites/example/trunk',
));
register_webhost('test',array(
 'name'      => 'Example Test Server',
 'rootdir'   => '/home/example/public_html/test',
 'domain'    => 'test.example.com',
));
register_webhost('stage',array(
 'name'      => 'Example Staging Server',
 'rootdir'   => '/home/example/public_html/stage',
 'domain'    => 'stage.example.com',
));
register_webhost('live',array(
 'name'      => 'Example Live Site',
 'rootdir'   => '/home/example/public_html/',
 'password'  => '%asd59kar12*fr',
 'domain'    => 'www.example.com',
));
require_once(ABSPATH . 'wp-content/plugins/wp-migrate-webhosts/set-webhost.php');

바라건대 이것은 (주로) 자기 설명입니다. 코드를 최대한 깨끗하게 만들려고했지만 안타깝게도 웹 호스트 등록 코드 블록 앞뒤에 두 개의 암호화 된 require_once() 줄이 필요합니다. "hook" wp-config.php가 호출되기 전에 WordPress.

wp-config.php를 업데이트 한 후에는 URL 바로 가기 wp-migrate-webhosts를 사용하여 다음과 같이 관리자 화면으로 이동할 수 있습니다.

http://example.com/wp-migrate-webhosts

위의 내용은 다음과 같은 관리 화면으로 안내합니다. 여기에는 약간의 설명 텍스트가 있으며 마이그레이션 할 도메인을 선택한 후 한 번의 클릭으로 FROM 다른 웹 호스트 도메인을 마이그레이션 할 수 있습니다 from (NOTE :이 예제는 테스트/무대/라이브 서버에서 로컬 개발로 DOWN으로 이동하는 것을 보여 주지만 TO플러그인은 기존 라이브 사이트를 가져와 로컬 개발 환경을 빠르게 작동시키는 데 유용합니다!) :

enter image description here

이 컨텍스트에서 "migration"이 명확하지 않으면 현재 정의 된 웹 호스트에 적합하도록 현재 데이터베이스의 모든 참조를 업데이트하는 것을 의미하며 "current"는 sniffed$_SERVER['SERVER_NAME']를 검사하여)

플러그인의 멋진 점은 일부 기본 마이그레이션을 구현하지만누구나 플러그인을 연결하여 자체 마이그레이션을 수행 할 수 있다는 것입니다. 예를 들어 데이터베이스의 이미지에 대한 전체 경로를 저장 한 갤러리 플러그인을 추가하면 "from"웹 호스트 및 "to"로 전달되는 migrate_webhosts 작업을 연결할 수 있습니다. 각각 웹 메타 데이터의 배열로 웹 호스트를 수행하면 마이그레이션을 수행하기 위해 SQL 또는 적용 가능한 WordPress API 함수를 사용하여 데이터베이스에서 수행해야하는 모든 작업을 수행 할 수 있습니다. 예, 우리 중 누구도 플러그인 없이이 작업을 수행 할 수 있지만 플러그인이 없으면 필요한 모든 코드를 작성하는 것이 가치있는 것보다 더 많은 노력이 필요하다는 것을 알았습니다. 플러그인을 사용하면 이러한 작은 고리를 작성하고 끝내기가 더 쉽습니다.

테스트하지 않은 Edge 사례에서 마이그레이션이 실패하고 플러그인을 개선하는 데 도움이 될 수 있습니까? 내 Gmail 계정을 통해 나에게 이메일을 보내려는 사람은 누구나 "mikeschinkel"입니다.

또한 플러그인은 database, user, password, Host, domain과 같이 사용자가 정의한 웹 호스트 메타 데이터를 허용하도록 설계되었습니다. 완벽한 예는 googlemaps_apikey 일 수 있습니다. 여기서는 Google지도 플러그인이 올바르게 작동해야하는 각 도메인에 대해 서로 다른 API 키를 저장할 수 있습니다 (Google Maps 플러그인을 사용한 사용자 중 라이브 서버에 앱을 배포하지 않은 사람) 코드를 올바른 API 키로 변경하는 것을 잊어 버렸습니까? 솔직히 ... :)이 플러그인을 사용하면 register_webhost () 배열의 googlemaps_apikey 요소와 작은 사용자 정의 migrate_webhosts 후크를 사용하여 문제를 효과적으로 제거 할 수 있습니다!

그게 다야. @ Insanity5902의 질문으로 인해 WordPress Answer 's Exchange에서이 플러그인을 시작했습니다. 도움이된다면 여기로 알려주십시오 (해당되는 경우). 그렇지 않은 경우 이메일을 통해 알려주십시오.

추신 이것을 사용하기로 결정했다면 알파/베타라는 것을 기억하십시오. 즉, 지금 사용하고 싶다면 작은 수술을 위해 준비하고 릴리스 된 버전을 여러 손으로 맞은 후에 사용하십시오.

P.P.S. 이것으로 나의 목표는 무엇입니까? 모든 사람이 액세스 할 수 있도록 WordPress 코어로 마이그레이션하는 것을보고 싶습니다. 그러나 그 전에는 많은 사람들이 실제로 더 많은 문제를 해결하여 잠재적으로 발생할 수있는 문제를 해결하는 데 관심을 가져야한다고 생각하기까지합니다. 따라서 아이디어가 마음에 드시면 아이디어를 사용하여 WordPress 코어에 희망적으로 포함될 수 있도록 추진력을 얻도록 도와주세요.

122
MikeSchinkel

가능하면 WP_HOMEWP_SITEURLwp-config.php를 설정합니다. 데이터베이스 덤프 및 가져 오기와 함께 사용하면 가장 익숙한 모든 솔루션 중에서 가장 간단합니다.

http://codex.wordpress.org/Changing_The_Site_URL#Edit_wp-config.php

35
Annika Backstrom

내가 좋아하는 해킹; /etc/hosts에 설정을 추가하여 프로덕션 도메인을 사용자의 개발 상자, 즉 컴퓨터에서 가리 키도록하십시오. 프로덕션 환경에 배포하려면 모든 파일을 rsync하고 데이터베이스를 밀어 넣으십시오.

이 전략의 위험은 분명합니다. 개발 환경을 프로덕션 환경과 혼동 할 수 있습니다.

그래도 여전히 쉬운 수정.

27
Wietse Venema

나는 몇 달 전에 WP로 마이그레이션 할 때와 비슷한 것을 원했기 때문에 ssh를 통해 rsync와 mysqldump를 사용하는 아주 간단한 쉘 스크립트를 작성했습니다.

http://snarfed.org/sync_wordpress

그것은 정교하거나 웹 기반이 아니지만 나는 그것에 만족합니다.

9
ryan

WP Engine 은 "원 클릭 스테이징"을 제공하는 새로운 서비스입니다.

WPEngine에는 "스테이징"이라는 독점적 인 기능이 있습니다. 작동 방식은 다음과 같습니다. 블로그를 무서워 변경하기 전에 "스냅 샷"버튼을 클릭하십시오. 우리는 귀하의 블로그의 완전한 복사본을 만들어 안전한 별도의 장소에 보관합니다. 원하는 것을 가지고 놀 수 있습니다. 살아있는 건 아무것도 없어. 당신이 그것을 살게 준비되어있을 때만 당신은 당신의 주요 위치를 만진다.

특히 이미 라이브 사이트를 사용하여 개발에서 프로덕션으로 신속하게 이동할 수있는 아주 쉬운 방법입니다.

8
Travis Northcutt

Duplicator Plugin : 여기는 내가 해왔 던 플러그인이다. 현재 베타 버전이지만 대부분의 사이트에서 제대로 작동합니다. 지금은 더 작은 WordPress 설치 대상입니다. http://wordpress.org/extend/plugins/duplicator/

Resources : 플러그인에 대한 추가 리소스는 다음에서 찾을 수 있습니다 : http://lifeinthegrid.com/duplicator/

커뮤니티 : 귀하의 성공 또는 귀하가 갈 수도있는 문제에 대해 알려주십시오! 다양한 스레드를보다 쉽게 ​​관리하기 위해 WordPress.org 플러그인 포럼에 문제를 게시하십시오. 플러그인의 로깅 데이터를 온라인 포럼에 게시하지 마십시오. 로깅 데이터는 지원 사이트에 제출할 수 있습니다.

7
Cory

BackUpBuddy 라고하는 iThemes의 제품을 살펴보십시오. 나는 그것을 두 번만 사용했는데 매회마다 장애가 있거나 두 가지가 있었지만 전반적으로 유망 해 보인다.

6
MikeK

이것은 유망 해 보입니다. 우리는 데이터의 일부, 예를 들어 wp-options의 마이그레이션, db의 경로 변경, 미디어를 통한 복사를 처리하기위한 스크립트를 작성 중입니다.

내가 가지고있는 문제는 라이브 사이트가 계속 성장하고있는 반면 다른 사이트는 개발 단계에 있다는 것입니다. 우리가 작업하는 한 사이트에는 하루에 20 개의 게시물과 하루에 3,000 개의 댓글이 있습니다. phpmyadmin으로 또는 명령 행을 통해 이동하기에는 너무 많은 데이터입니다. 또한 데이터를 이동하면 항상 어떤 이유로 UTF 문제가 발생합니다.

또한 메뉴 옵션이 DB에 저장되는 것처럼 보였으므로 더 많은 것을 처리해야합니다.

모든 코드를 SVN으로 확인하고 서버 (Beanstalk)에서 FTP를 통해 코드를 배포합니다. 이것은 저를 위해 DB에 변경을 만들지 않거나 새로운 플러그 접속 식을 활성화하지 않는다.

내 계획은 현재 라이브 사이트에 대한 모든 변경 작업을 수행하는 동안 매니페스트 파일을 만드는 것입니다.

예를 들어 파일에는 사람이 읽을 수있는 줄이 있습니다.

활성화 할 플러그인, 이전 할 wp 옵션, 이동할 이미지, 이동할 페이지가 포함됩니다. 그런 다음 내 플러그인은 매니페스트 파일을 감지하고 준비 사이트에 대한 모든 변경을 수행합니다.

테스트를 마치고 모든 것을 얻었다면 프로덕션에서 작동하는지 확인할 수있었습니다.

이 플러그인은 여전히 ​​좋은 생각이지만 코드를 작성했습니다.

또한 DB의 URL 만 변경하려면 다음 SQL을 사용할 수 있습니다.

$old$를 이전 도메인으로 대체하고 $new$를 새 도메인으로 대체하십시오.

update wp_postmeta set meta_value = replace(meta_value, '$old$' , '$new$') ;
update wp_posts set post_content = replace(post_content, '$old$' , '$new$') ;
update wp_options set option_value = replace(option_value, '$old$' , '$new$') ;
5
Andrew

개인적으로 Github의 프로젝트 인 Autopress 로이 문제를 해결할 것입니다. 아직 완벽한 해결책이 없지만, 특히 wpengine 사람들의 wpstage 플러그인을 사용하면 더욱 가까워지고 있습니다.

5
Vid Luther

비슷한 목표를 가진 두 개의 Google Summer of Code 프로젝트 :

4
Jan Fabry

2017 년 현재 WordPress 데이터베이스를 개발에서 생산으로 이전하는 것을 처리하기 위해 내가 찾은 두 가지 최상의 방법이 있습니다.

WP Migrate DB Pro/WP Sync DB

https://wordpress.org/plugins/wp-migrate-db/

이 WordPress 플러그인을 사용하면 WordPress 설치간에 데이터베이스 테이블을 밀어 넣고 당기고 동기화 할 수 있습니다. 이것은 찾기/바꾸기보다 훨씬 낫습니다. 이유는 다음과 같습니다.

  • 데이터베이스를 MySQL 데이터 덤프로 내 보냅니다 (phpMyAdmin과 비슷 함).
  • URL 및 파일 경로를 찾아서 대체합니까?
  • 직렬화 된 데이터를 처리합니다.
  • SQL 파일로 컴퓨터에 저장할 수 있습니다.

나는 내가하는 일에 대해 돈을 지불하는 팬이기 때문에 Brad Touesnard를 지원하고 진짜 물건의 라이센스 사본을 구입하는 것이 좋습니다. WP Sync DB는 복제물이며 그 결과로 항상 지원에 어려움이 있습니다. 이 플러그인을 사용하면 프로세스가 간단 해집니다.

  1. 로컬 호스트 및 프로덕션 환경에 플러그인 설치/활성화
  2. 로컬 호스트/개발 서버에서 프로덕션으로 푸시 전송 구성
  3. 전송할 테이블에 대한 규칙을 채우고 수행 할 찾기 및 바꾸기 규칙을 정의합니다.
  4. 그게 다야!

InterconnectIT에 의해 WordPress 데이터베이스에 대한 데이터베이스 검색 및 바꾸기

https://interconnectit.com/products/search-and-replace-for-wordpress-databases/

이 무료 도구는 플러그인이 아니지만 WordPress 프로덕션 설치의 루트 디렉토리에 설치됩니다. 이것은 몇 가지 수동 단계가 필요하기 때문에 WP Migrate DB Pro만큼 좋지는 않지만 일관되게 작동하는 훌륭한 옵션입니다. 이 방법을 사용할 때 프로세스는 다음과 같이 보입니다.

  1. 로컬 데이터베이스를 백업하십시오. 곧 다시 가져올 예정이므로 꼭 필요합니다.
  2. 설치 루트 디렉토리에있는 폴더에 스크립트를 추가하십시오
  3. 데이터베이스에서 찾기 및 바꾸기를 실행하십시오.
  4. 프로덕션 환경에 맞게 데이터베이스를 내보내고 저장하십시오.
  5. 1 단계에서 백업을 다시 가져와 로컬 호스트를 복원하십시오.
  6. 프로덕션 데이터베이스에 연결하여 백업하십시오 (이러한 작업을 수행하기 전에 항상 수행해야 함).
  7. 4 단계의 찾기/바꾸기 루틴을 실행 한 후 만든 내보내기 가져 오기

보다 빠른 접근 방법을 사용할 수는 있지만, 내 의견으로는 받아 들일 수없는 생산 사이트의 가동 중지 시간이 필요합니다. 그래서 우리가 그것을 생산이라고 부르는 이유는 무엇입니까?

3
Kevin Leary

여기서 좋은 해결책이 부족하지는 않지만 공유의 정신으로 배쉬 배포 스크립트를 파일에 추가 할 것이라고 생각했습니다. https://github.com/jplew/SyncDB

SyncDB는 Wordpress 사이트의 로컬 및 원격 버전을 동기화하지 못하게하기위한 bash 배포 스크립트입니다. 이를 통해 로컬 환경 (예 : MAMP)에서 작업하는 개발자는 단일 터미널 명령을 사용하여 프로덕션 서버와의 변경 사항을 신속하게 "푸시"또는 "풀"할 수 있습니다.

이 스크립트는 Mark Jaquith의 WP- 스켈레톤과 잘 작동하며 mysqldump, gitrsync을 사용하여 전체 사이트 (데이터베이스, 코드 및 미디어)를 두 가지 간단한 단계로 동기화합니다.

./syncdb
git Push hub master
3
JP Lew

나는 http://wordpress.org/plugins/wp-clone-by-wp-academy/ 를 사용하고 있습니다. 그것은 잘 작동합니다!

단 3 단계 :

  1. 두 사이트 모두에 플러그인을 설치하십시오.
  2. 플러그인을 사용하여 이전 사이트에서 백업을 생성하십시오.
  3. 백업 URL을 가져 와서 새 사이트의 플러그인 페이지에 연결하고 go를 누르면 몇 초 안에 마이그레이션이 완료됩니다!

직렬화 된 문자열 교체를 포함하여 모든 URL을 자동으로 조정하므로 위젯 구성 등을 잃을 위험이 없습니다.

내가 가진 유일한 문제는 사이트 백업을 가져 오는 동안 PHP 스크립트 실행 시간 초과를 유발하는 더 큰 데이터베이스 (~ 300MB)가있는 일부 웹 사이트에서 발생합니다.

3
jmotes

Subversion의 내보내기 명령을 사용하여 WordPress 파일 (http://core.svn.wordpress.org/tags//)을 설치하고 저장소의 모든 플러그인 (http://plugins.svn.wordpress.org//tags)을 설치합니다. //), 테마 및 사용자 정의 플러그인을 압축하여 정상적으로 설치하십시오. 일단 모든 내용이 실행 중이고 내용없이 실행 중이라면 테스트 DB를 내보내고 URL과 파일 경로 (미디어 용으로 저장)에 대한 검색/바꾸기를 수행 한 다음 빈 데이터베이스로 가져온 다음 wp-config에서 데이터베이스 정보를 전환합니다 .php. 일반적으로 약 10-20 분 정도 걸립니다.

3
John P Bloch

일반적으로 phpMyadmin에 로그인하여 데이터베이스를 업로드하고 wp_options> siteurl 및 wp_options> 홈의 내용을 예상 도메인으로 편집합니다. 게시물 및 페이지 컨텐츠의 URL을 업데이트해야하는 경우 업로드하기 전에 .SQL 파일의 URL 및 media/uploads 경로를 검색/교체 할 수 있습니다. 빠른 직업입니다.

3
Alex Costa

지금 당분간 backupbuddy 플러그인을 사용해 왔습니다. 그것은 당신이 데이터베이스와 모든 파일의 백업을 만들 수 있습니다 우편으로 다운로드하거나 FTP를 통해 다른 서버로 직접 보내십시오. 또한 URL을 찾아서 대체합니다. 전체 과정을 진행하는 데 일반적으로 약 5 분이 소요됩니다. 모든 파일이 압축되기 때문에 업로드/다운로드 프로세스가 훨씬 빠릅니다. 그리고 아니, 나는 그들을 위해 일하지 않지만,이 플러그인은 정말이 모든 과정을 훨씬 쉽게 만들었습니다.

1
gdaniel

또 다른 지불 솔루션 : Xtreme One 테마 프레임 워크 릴리스 버전 1.2Xtreme Backup 포함 " 모든 설정/컨텐츠가 XML 파일로 포함 된 차일드 테마, ​​레이아웃 또는 위젯. "

1
Jan Fabry

IIS에서 사이트를 실행하기 때문에 (저는 asp.net을 실행하므로 창이 필요합니다) Msft의 WebPI를 사용하여 새 인스턴스를 설치 한 다음 템플릿을 복사하고 가져 오기/내보내기를 사용하여 데이터를 전송합니다 .

완벽하지는 않지만 모든 것이 한 시간도 채 걸리지 않습니다.

분명히 한 번의 클릭으로 솔루션을 얻는 것이 좋겠지 만 이것이 나를 위해 가장 쉬운 것으로 밝혀졌습니다.

1
Sruly

RAMP 는 Crowd Favorite의 새로운 콘텐츠 배포 플러그인이며 정말 멋집니다. 250 달러지만, 아직 시도하지는 않았습니다. 하지만 시간을 절약하면서 돈을 지불 할 수도 있습니다. 그래서 고려하고 있습니다.

언급 된 대부분의 다른 방법보다 큰 이점은 게시물, 주석 등을 지능적으로 병합 할 수 있다는 것입니다. mysqldump를 가져 오는 것이 아니라 데이터베이스의 소스 제어와 비슷합니다. 예를 들어 게시물을 배포 할 때 프로덕션 환경에 태그가 아직없는 경우 해당 게시물의 태그도 배포합니다.

1
Ian Dunn

동료가 이걸 발견했습니다. 흥미로운 개념이지만 크로스 서버로 작동하지는 않습니다. 나는 아직도 그것을 탐험 중이다. 그러나 그것은 준비가 된 실례를 위해 위대한 일을 할 수있는 것처럼 보인다.

http://code.google.com/p/deploymint/

1
Ryan Gibbons

이 질문을 할 때 주변에 없었을 수도 있지만, 나는 몇 달 동안 Blogvault라는 서비스를 사용하고 있었고 완벽하게이 작업을 수행했습니다. 아마 50 개가 넘는 마이그레이션 (도메인, 하위 도메인 및 웹 호스트 교차)을 수행 했으므로 시간이 걸리지 않습니다.

유료 서비스 (도메인/월당)이지만 그리 많지는 않습니다.

1
Larry

이것은 가장 쉬운 방법입니다 : https://themes.artbees.net/docs/website-migration/
두 번만 클릭하면됩니다. 하나는 내보낼 것이고 다른 하나는 가져올 것입니다.

WP Migration 플러그인에서 All을 사용하면 가능합니다. 위의 링크는 그것을 사용하는 방법을 보여줍니다.

1
Mohsenr1

사이트의 서버 마이그레이션을 처리하는 또 다른 유용한 도구는 WordPress CLI입니다.이 기사에는 할 수있는 일에 대한 개요가 있지만 특히 "검색 및 바꾸기"섹션은 이전/dev 사이트 URL에 대한 모든 참조를 찾는 데 유용합니다 :

WP-CLI를 이용한 고급 WordPress 관리

1
Rick Curran

내가 좋아하는 것 하나를 버리자 :-)

// proven local<->live codefork (covers local network testing, i.e. from mobile devices):
$GLOBALS['is_local'] =  
    in_array( $_SERVER['REMOTE_ADDR'], array("127.0.0.1","::1")) || // simple localhost (IPv4 IPv6)
              $_SERVER['HTTP_Host'] == 'local.workblog'          || // call by local name (adjust)
       substr($_SERVER["REMOTE_ADDR"],0,8) == '192.168.';           // (mobile) device in local network

$table_prefix  = NULL; // ensure scope

if ( $GLOBALS['is_local'] )  // LOCAL fork ------------------------
{
        ....
}
else  // STAGE/LIVE fork -------------------
{

... 그리고 나서 당신은 거기서부터 일합니다. DB_NAME, DB_USER ... table_prefix. 개인적으로 ALTERNATE_WP_CRON을 로컬에서 켜고 ( 몇 가지 성가신 경고 ), WP_DEBUG 중 (개발자가 아닌 경우) 또는 라이브 전용 (있는 경우), 라이브 용 또 다른 ini_set('display_errors', '0');도 수행 할 수 있습니다 위에서 언급 한 바와 같이 WP_HOME 및 WP_SITEURL을 각 로컬/실제 url에 적용합니다.

거의 모든 것, 고전적인 WordPress '그만! 편집을 그만!' 줄 ...

192.168. 부품을 사용하면 로컬 네트워크에서 일부 지역 테스트 (예 : 패드 또는 전화)를 수행 할 수 있습니다.

$ GLOBALS [ 'is_local']는 테마 개발에도 도움이 될 수 있습니다.

1
Frank Nocke

이 답변을 한 후에 필자는 작은 플러그인을 만들었습니다. - Pitta Migration . 그 이유는 다음과 같습니다.

  1. 여기서 시도한 모든 아이디어 중에서 가장 간단한 것은 WP_HOMEWP_SITEURL 옵션입니다.
  2. 그런 다음 이들을 사용하여 두 개의 일치하는 wp_options URL을 설정합니다. 플러그인/테마가 이러한 URL을 무시할 때 다루는 URL입니다.
  3. 이것은 저의 데이터베이스에서 무엇이 변경되고 있는지에 대해 100 % 확신을줍니다.
  4. 이것은 또한 크로스 플랫폼에서 작동합니다 (모든 bash 스크립트는 Windows에서 제대로 실행되지 않습니다)
  5. 플러그인이하는 일을 이해하는 것은 쉽습니다.
  6. 두 개의 상수를 벗어나는 구성은 없습니다. mysqldump와 mysql을 로컬 데이터베이스에 가져 오면 플러그인은 상수와 테이블이 다르다는 것을 확인하고 일치하도록 업데이트합니다.
  7. 텍스트 검색 및 대체 없음
  8. 데이터베이스를 고문 당할 기회는 없습니다 - WordPress 데이터베이스 오브젝트를 사용하여 두 가지 업데이트를 수행합니다.
  9. WordPress Skeleton 소스 제어에서 모든 것을 가질 수 있고 로컬 설정을 할 수있는 곳과 같이 멋지게 재생됩니다.
  10. WordPress 플러그인 디렉토리에 넣었습니다. 및 on Github 그래서 무료이며, 완전히 오픈 소스이며, 설치하기 쉽고 쉽게 포크 할 수 있습니다.
  11. 설치가 완료되면 잊어 버릴 수 있으며 '정상적으로 작동합니다'- 데이터베이스가 수정되었다는 사실을 알려줍니다.
  12. 모든 백업/FTP/복원 프로세스와 함께 작동해야합니다.
0
icc97

지속적인 동기화를 얻으려면 사용자 정의 cron 작업과 함께 rsync를 사용하여 URL 또는 사이트 별 데이터를 다시 작성하는 것이 좋습니다.

0
user92899

내 생각에 내가 따라야 할 가장 쉬운 방법은 수동 전송이다. wp-content 폴더와 wp-config.php 파일을 새로운 호스트에 복사하면된다. 이전 호스트에서 데이터베이스를 내보내고 새 호스트의 새 데이터베이스로 가져옵니다.

새 호스트 데이터베이스에서 wp-option 테이블로 이동하면 사이트 URL과 블로그 URL이 이전 호스트의 새 호스트 주소로 변경됩니다. http : // localhost/wp 에서 http://example.com

이제 wp-config 파일에서 새 호스트 정보로 데이터베이스 및 사용자 정보를 변경하십시오.

이제 새 wp-admin에 로그인하고 설정으로 이동하여 퍼머 링크를 저장하십시오.

너 끝났어. 플러그인을 사용하지 않고도 간단하다고 생각합니다.

나는 다른 종류의 플러그인을 시도했으며 이들 모두에는 많은 종류의 문제가 있습니다.

그래서 나는 생각보다 쉬운이 간단한 수동 전송을 선호합니다.

0
Md. Amanur Rahman