it-swarm-vi.tech

Làm thế nào để: Dễ dàng chuyển một cài đặt WordPress từ phát triển sang sản xuất?

Tôi phát triển trên một hộp và sử dụng một giây để sản xuất. Ngay bây giờ tôi chỉ cần kết xuất cơ sở dữ liệu và sau đó tìm một thay thế cho các thay đổi URL; sau đó sao chép qua các tệp và nhập SQL mới.

Có cách nào tốt hơn để làm điều này?

197
Ryan Gibbons

@ Insanity5902 : Triển khai trang web WordPress từ hộp này sang hộp khác đã là PITA kể từ ngày tôi bắt đầu làm việc với WordPress. (Sự thật được nói đó là Pita với Drupal trong 2 năm trước khi tôi bắt đầu với WordPress nên vấn đề chắc chắn không chỉ riêng với WordPress.)

Điều đó làm phiền tôi rằng mỗi khi tôi cần di chuyển một trang web, tôi phải bỏ ra rất nhiều công sức thường xuyên bị trùng lặp và nó khiến tôi không thể triển khai để kiểm tra thường xuyên như tôi muốn. Vì vậy, khoảng 4 - 6 tháng trước tôi đã bắt đầu làm việc với một plugin để giải quyết vấn đề di chuyển webhost và Tôi đã đề cập đến ý tưởng của mình trên WP Diễn đàn Tavern .

Nhanh chóng chuyển tiếp đến ngày hôm nay và tôi đã làm cho nó hoạt động khá tốt và tôi thuận tiện gọi nó là "WP Di chuyển Webhosts." Mặc dù plugin vẫn còn rất nhiều bản beta (thậm chí là alpha) cho câu hỏi của bạn nhưng tôi nghĩ tôi đã sẵn sàng để mọi người bắt đầu đập vào nó.

Trường hợp sử dụng được hình dung là:

  1. đầu tiên, nhà phát triển xử lý tải lên tất cả các tệp plugin và chủ đề đã thay đổi qua FTP,
  2. sau đó tải toàn bộ cơ sở dữ liệu MySQL phát triển lên máy chủ thử nghiệm và cuối cùng
  3. sau đó chạy plugin để di chuyển bất kỳ tham chiếu nào từ tên miền trước sang tên miền mới. (Plugin của tôi không không cố gắng giải quyết việc hợp nhất các trường hoặc bảng cơ sở dữ liệu mới với dữ liệu trực tiếp; ĐÓ là một vấn đề lớn hơn nhiều mà tôi không biết phải giải quyết như thế nào. )

Bạn có thể tải xuống plugin từ trang web của tôi và giải nén vào thư mục plugin của bạn (nếu bạn không biết cách thực hiện thì plugin này không dành cho bạn vì nó yêu cầu ai đó biết họ đang làm gì để sử dụng nó. ) Tôi sẽ giữ plugin này trực tuyến cho đến khi tôi phát hành nó lên WordPress.org sau đó bạn nên tìm nó ở đó.

Để sử dụng, bạn sử dụng một cách tiếp cận khác trong wp-config.php thông thường bằng cách nhận xét bốn (4) định nghĩa DB_NAME, DB_USER, DB_PASSWORDDB_Host và thay vào đó là đăng ký mặc định cho chính webhosts . Đây là phân đoạn của wp-config.php có thể trông như thế nào (lưu ý phần đầu tiên là mã không cần thiết được nhận xét và cũng lưu ý rằng tôi đã thiết lập tệp máy chủ của mình trên máy cục bộ của mình với các tên miền cấp cao nhất .dev không thể định tuyến để phát triển hàng ngày trên Mac VirtualhostX làm cho điều này trở nên dễ dàng):

// ** 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');

Hy vọng rằng đây là (chủ yếu) tự giải thích. Tôi đã cố gắng làm cho mã sạch nhất có thể nhưng thật không may, nó yêu cầu hai dòng require_once() khó hiểu đó trước và sau khối mã đăng ký webhost vì không có cách nào để tôi "hook" WordPress trước wp-config.php gọi là.

Khi bạn đã cập nhật wp-config.php của mình, bạn chỉ cần sử dụng phím tắt URL wp-migrate-webhosts để đi đến màn hình quản trị như vậy:

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

Ở trên sẽ đưa bạn đến một màn hình quản trị như sau có một đoạn văn bản mô tả hợp lý và cho phép bạn di chuyển TỪ bất kỳ tên miền webhost nào khác chỉ bằng một cú nhấp chuột sau khi chọn tên miền để di chuyển từ (LƯU Ý: ví dụ này hiển thị đi XUỐNG từ máy chủ thử nghiệm/giai đoạn/trực tiếp đến phát triển cục bộ nhưng yên tâm rằng nó có thể di chuyển ĐẾN bất kỳ tên miền nào có vị trí. Điều này cũng có nghĩa là plugin sẽ rất tuyệt khi lấy một trang web trực tiếp hiện có và nhanh chóng làm cho môi trường phát triển cục bộ hoạt động! ):

 enter image description here 

Nếu không rõ "di chuyển" trong ngữ cảnh này có nghĩa là cập nhật tất cả các tham chiếu trong cơ sở dữ liệu hiện tại để phù hợp với webhost được xác định hiện tại (và "hiện tại" là đánh hơi bằng cách kiểm tra $_SERVER['SERVER_NAME'].)

Điều thú vị về plugin là nó thực hiện một số di chuyển cơ bản nhưng bất kỳ ai cũng có thể móc nó và thực hiện di chuyển của riêng mình . Ví dụ: nếu bạn thêm một plugin thư viện lưu trữ đường dẫn đầy đủ vào hình ảnh trong cơ sở dữ liệu, bạn có thể nối hành động migrate_webhosts sẽ được chuyển qua webhost "từ" và "đến" mỗi webhost như một mảng siêu dữ liệu và bạn sẽ được phép thực hiện bất cứ điều gì bạn cần làm trong cơ sở dữ liệu bằng SQL hoặc bất kỳ chức năng API WordPress áp dụng nào để thực hiện di chuyển. Có bất kỳ ai trong chúng ta có thể làm điều này mà không cần plugin nhưng không có plugin tôi thấy rằng việc viết tất cả các mã cần thiết là nỗ lực nhiều hơn giá trị. Với plugin, việc viết những cái móc nhỏ này trở nên dễ dàng hơn.

Bạn cũng có thể thấy việc di chuyển của mình thất bại trong các trường hợp Edge tôi chưa thử nghiệm và có thể bạn có thể giúp tôi cải thiện plugin không? Bất cứ ai muốn gửi email cho tôi qua tài khoản gmail của tôi (bí danh của tôi là "mikechinkel.")

Ngoài ra, plugin được thiết kế để chấp nhận siêu dữ liệu webhost do người dùng xác định cùng với các siêu dữ liệu mà nó nhận ra như database, user, password, Host, domain, v.v. Một ví dụ hoàn hảo có thể là googlemaps_apikey nơi bạn có thể lưu trữ các khóa API khác nhau cho mỗi tên miền rằng plugin Google Map của bạn cần phải hoạt động chính xác (ai trong số bạn đã sử dụng plugin Google Maps đã triển khai một ứng dụng cho máy chủ trực tiếp và quên thay đổi mã thành khóa API chính xác? Nào, hãy trung thực ... :) Với plugin này, một phần tử googlemaps_apikey trong mảng register_webhost () của bạn và một hook migrate_webhosts tùy chỉnh nhỏ, bạn có thể loại bỏ điều đó một cách hiệu quả!

Vâng, đó là về nó. Tôi đang khởi chạy plugin này tại đây trên Sàn giao dịch trả lời của WordPress vì câu hỏi của @ Insanity5902 đã kích hoạt nó. Hãy cho tôi biết nếu nó hữu ích, ở đây nếu thích hợp hoặc qua email nếu không.

P.S. Nếu bạn quyết định sử dụng, hãy nhớ rằng đó là alpha/beta và điều đó có nghĩa là nó sẽ thay đổi, vì vậy hãy chuẩn bị cho một cuộc phẫu thuật nhỏ nếu bạn muốn sử dụng nó ngay bây giờ và sau đó sử dụng phiên bản đã phát hành khi nó bị đánh bại bởi nhiều tay.

P.P.S. Mục tiêu của tôi với điều này là gì? Tôi rất thích thấy điều này di chuyển vào lõi WordPress để mọi người đều có quyền truy cập vào nó. Nhưng trước đó thậm chí có thể được coi là rất nhiều người phải quan tâm đến việc sử dụng nó để đảm bảo nó thực sự giải quyết được nhiều vấn đề hơn thì nó có khả năng có thể tạo ra. Vì vậy, nếu bạn thích ý tưởng thì bằng mọi cách hãy sử dụng nó và giúp tôi có được động lực với nó để đưa vào hy vọng cuối cùng vào lõi WordPress.

121
MikeSchinkel

Khi có thể, tôi đặt WP_HOMEWP_SITEURL trong wp-config.php. Điều này, kết hợp với kết xuất và nhập cơ sở dữ liệu, là giải pháp đơn giản nhất trong tất cả các giải pháp tôi quen thuộc.

http://codex.wordpress.org/ Thay đổi_The_Site_URL # Edit_wp-config.php

35
Annika Backstrom

Hack yêu thích của tôi; thêm cài đặt vào /etc/hosts của bạn để làm cho miền sản xuất trỏ vào hộp phát triển của bạn, ngay trên máy của bạn. Để triển khai để sản xuất, bạn rsync tất cả các tệp và Đẩy cơ sở dữ liệu lên.

Những rủi ro của chiến lược này là rõ ràng; bạn có thể nhầm lẫn môi trường phát triển của bạn với môi trường sản xuất của bạn.

Nó vẫn là một sửa chữa dễ dàng mặc dù.

27
Wietse Venema

Tôi muốn một cái gì đó tương tự khi tôi di chuyển sang WP một vài tháng trước, vì vậy tôi đã viết một tập lệnh Shell khá đơn giản sử dụng rsync và mysqldump qua ssh:

http://snarfed.org/sync_wordpress

Nó không tinh vi hoặc dựa trên web, nhưng tôi hài lòng với nó.

9
ryan

WP Engine là một dịch vụ mới cung cấp "Giai đoạn một lần nhấp":

WPEngine có một tính năng độc quyền gọi là Staging st. Đây là cách thức hoạt động của nó: Trước khi bạn thực hiện một thay đổi đáng sợ cho blog của mình, hãy nhấp vào nút Ảnh chụp nhanh. Chúng tôi tạo một bản sao hoàn chỉnh của blog của bạn và thiết lập nó trong một khu vực an toàn, riêng biệt. Bạn có thể chơi với bất cứ thứ gì bạn muốn; Không có gì sống với nhau. Chỉ khi bạn đã sẵn sàng để làm cho nó sống, bạn mới chạm vào trang web chính của mình.

Có vẻ như một cách rất dễ dàng để nhanh chóng chuyển từ phát triển sang sản xuất, đặc biệt là với một trang web đã có sẵn.

8
Travis Northcutt

Plugin sao chép: Đây là một plugin mà tôi đang làm việc. Nó hiện đang ở giai đoạn thử nghiệm nhưng nó hoàn thành công việc cho hầu hết các trang web. Ngay bây giờ nó được nhắm mục tiêu vào các cài đặt WordPress nhỏ hơn. http://wordpress.org/extend/plugins/d repeatator/

Tài nguyên: Tài nguyên bổ sung cho plugin có thể được tìm thấy tại đây: http://lifeinthegrid.com/d repeatator/

Cộng đồng: Vui lòng cho chúng tôi biết về thành công của bạn hoặc bất kỳ vấn đề nào bạn có thể gặp phải! Trong nỗ lực để dễ dàng quản lý các chủ đề khác nhau, vui lòng gửi các vấn đề lên các diễn đàn plugin WordPress.org. Vui lòng không đăng bất kỳ dữ liệu đăng nhập nào từ plugin lên các diễn đàn trực tuyến. Dữ liệu đăng nhập có thể được gửi đến trang web hỗ trợ của chúng tôi.

7
Cory

Bạn có thể xem một sản phẩm từ iTheme, được gọi là BackUpBuddy . Tôi chỉ sử dụng nó hai lần, mỗi lần có một hoặc hai lần, nhưng nhìn chung nó có vẻ đầy hứa hẹn.

6
MikeK

Điều này có vẻ đầy hứa hẹn. Chúng tôi đang nghiên cứu một số tập lệnh để xử lý việc di chuyển một số dữ liệu, ví dụ như tùy chọn wp, thay đổi đường dẫn trong db, sao chép trên phương tiện truyền thông.

Vấn đề tôi có là trang web trực tiếp tiếp tục phát triển trong khi trang kia đang trong quá trình phát triển. Một trang web chúng tôi làm việc có 20 bài đăng mỗi ngày và hơn 3.000 bình luận mỗi ngày. Đó là quá nhiều dữ liệu để di chuyển với phpmyadmin hoặc thông qua dòng lệnh. Ngoài ra, việc di chuyển dữ liệu xung quanh luôn gây ra sự cố UTF vì một số lý do.

Ngoài ra, bây giờ có vẻ như các tùy chọn menu được lưu trữ trong DB, tôi thậm chí còn phải đối phó nhiều hơn.

Tôi kiểm tra tất cả mã của mình vào SVN và triển khai mã qua FTP từ máy chủ (Beanstalk). Điều này không thực hiện các thay đổi đối với DB mặc dù hoặc kích hoạt các plugin mới.

Kế hoạch của tôi ngay bây giờ là tạo một tệp kê khai trong khi tôi đang phát triển để thực hiện tất cả các thay đổi của mình đối với trang web trực tiếp.

Ví dụ: tập tin sẽ có dòng người đọc được

Nó sẽ bao gồm các plugin để kích hoạt, tùy chọn wp để di chuyển, hình ảnh để di chuyển, các trang để di chuyển. Sau đó, plugin của tôi, sẽ phát hiện tệp kê khai và thực hiện tất cả các thay đổi đối với trang dàn dựng.

Khi tôi đã kiểm tra điều đó và chắc chắn rằng tôi có mọi thứ, tôi có thể chắc chắn rằng nó sẽ hoạt động trên sản xuất.

Plugin này vẫn chỉ là một ý tưởng, nhưng tôi có một số mã được viết cho nó.

Ngoài ra, nếu bạn muốn thay đổi chỉ URL trong DB của mình, bạn có thể sử dụng SQL sau.

chỉ cần thay thế $old$ bằng tên miền cũ và $new$ bằng tên miền mới

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

Cá nhân tôi đang giải quyết vấn đề này với dự án của tôi trên Github, được gọi là Autopress . Tôi chưa có một giải pháp hoàn hảo, nhưng tôi đang tiến gần hơn, đặc biệt là với plugin wpstage từ những người wpengine.

5
Vid Luther

Hai dự án Google Summer of Code có cùng mục tiêu:

4
Jan Fabry

Kể từ năm 2017, đây là hai cách tốt nhất mà tôi đã tìm thấy để xử lý việc chuyển cơ sở dữ liệu WordPress từ phát triển sang sản xuất.

WP Di chuyển DB Pro/WP Đồng bộ hóa DB

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

Các plugin WordPress này cho phép bạn Đẩy, kéo và đồng bộ hóa các bảng cơ sở dữ liệu giữa các cài đặt WordPress. Điều này tốt hơn nhiều so với việc tìm/thay thế vì nhiều lý do vì nó:

  • Xuất khẩu cơ sở dữ liệu của bạn dưới dạng kết xuất dữ liệu MySQL (giống như phpMyAdmin)
  • Có tìm và thay thế trên URL và đường dẫn tệp
  • Xử lý dữ liệu nối tiếp
  • Cho phép bạn lưu nó vào máy tính của mình dưới dạng tệp SQL

Tôi là một người hâm mộ được trả tiền cho công việc tôi làm, vì vậy tôi khuyên bạn nên ủng hộ ông Brad Touesnard và mua một bản sao giấy phép của hàng thật. WP Sync DB là bản sao và kết quả là nó luôn được hỗ trợ. Với plugin này, quá trình này rất đơn giản:

  1. Cài đặt/kích hoạt plugin trên localhost và môi trường sản xuất của bạn
  2. Định cấu hình chuyển nhượng từ máy chủ cục bộ/máy chủ phát triển đến sản phẩm của bạn
  3. Điền vào các quy tắc để chuyển bảng nào và xác định các quy tắc tìm và thay thế để thực hiện
  4. Đó là nó!

Tìm kiếm và thay thế cơ sở dữ liệu cho cơ sở dữ liệu WordPress bằng InterconnectIT

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

Công cụ miễn phí này không phải là một plugin, nhưng được cài đặt trong thư mục gốc của bản cài đặt sản xuất WordPress của bạn. Điều này không tốt bằng WP Di chuyển DB Pro vì nó yêu cầu một vài bước thủ công, nhưng dù sao đó cũng là một tùy chọn tuyệt vời luôn hoạt động. Khi sử dụng phương pháp này, quy trình sẽ như thế này:

  1. Sao lưu cơ sở dữ liệu cục bộ của bạn, điều này là hoàn toàn cần thiết vì chúng tôi sẽ sớm nhập lại nó
  2. Thêm tập lệnh vào một thư mục trong thư mục gốc cài đặt của bạn
  3. Chạy tìm và thay thế trên cơ sở dữ liệu của bạn
  4. Xuất cơ sở dữ liệu của bạn và lưu nó cho môi trường sản xuất của bạn
  5. Nhập lại bản sao lưu của bạn từ bước # 1 để khôi phục localhost của bạn
  6. Kết nối với cơ sở dữ liệu sản xuất của bạn và sao lưu nó (như bạn luôn cần trước khi làm những việc này)
  7. Nhập xuất chúng tôi đã thực hiện SAU khi chạy thói quen tìm/thay thế từ bước # 4

Bạn có thể sử dụng một cách tiếp cận nhanh hơn, nhưng nó liên quan đến thời gian chết cho trang web sản xuất của bạn mà theo tôi là không thể chấp nhận được. Đó là lý do tại sao chúng ta gọi nó là sản xuất, phải không?

3
Kevin Leary

Mặc dù không thiếu các giải pháp tốt ở đây, nhưng theo tinh thần chia sẻ, tôi nghĩ rằng tôi sẽ thêm tập lệnh triển khai bash của mình vào đống: https://github.com/jplew/SyncDB

SyncDB là tập lệnh triển khai bash có nghĩa là loại bỏ tedium khỏi việc đồng bộ hóa các phiên bản cục bộ và từ xa của trang Wordpress. Nó cho phép các nhà phát triển làm việc trong môi trường cục bộ (ví dụ: MAMP) nhanh chóng "Đẩy" hoặc "kéo" các thay đổi đến hoặc từ máy chủ sản xuất của họ bằng một lệnh đầu cuối duy nhất.

Kịch bản này hoạt động tốt với WP-Skeleton của Mark Jaquith và khai thác mysqldump, gitrsync để đồng bộ hóa toàn bộ cơ sở dữ liệu, mã và phương tiện truyền thông của bạn trong hai bước dễ dàng:

./syncdb
git Push hub master
3
JP Lew

Tôi đã sử dụng http://wordpress.org/plugins/wp-clone-by-wp-academy/ . Nó hoạt động độc đáo!

Chỉ cần 3 bước:

  1. Cài đặt plugin trên cả hai trang web.
  2. Sử dụng plugin để tạo bản sao lưu trên trang web cũ.
  3. Lấy URL sao lưu mà nó cung cấp cho bạn và cắm nó vào trang plugin trên trang web mới, nhấn go và quá trình di chuyển của bạn hoàn tất chỉ sau vài giây!

Nó tự động điều chỉnh tất cả các URL - bao gồm cả thay thế chuỗi nối tiếp - vì vậy không có nguy cơ mất cấu hình widget, v.v.

Vấn đề duy nhất tôi gặp phải là với một số trang web có cơ sở dữ liệu lớn hơn (~ 300 MB), điều này gây ra thời gian thực thi tập lệnh PHP trong quá trình nhập bản sao lưu trang.

3
jmotes

Tôi sử dụng lệnh xuất của Subversion để cài đặt các tệp WordPress (http://core.svn.wordpress.org/tags//) cũng như tất cả các plugin trong kho lưu trữ (http://plugins.svn.wordpress.org//tags //), sau đó chỉ cần Zip chủ đề và các plugin tùy chỉnh và cài đặt chúng bình thường. Khi tất cả những thứ đó hoạt động và không có nội dung, tôi xuất DB thử nghiệm và thực hiện tìm kiếm/thay thế cho URL VÀ filepath (được lưu trữ cho phương tiện) và nhập vào cơ sở dữ liệu trống, sau đó chỉ cần chuyển thông tin cơ sở dữ liệu trong wp-config .php. Nói chung tôi mất khoảng 10 - 20 phút.

3
John P Bloch

Thông thường tôi đăng nhập vào phpMyadmin tải lên cơ sở dữ liệu và chỉnh sửa nội dung của wp_options> siteurl và wp_options> về miền dự kiến. Nếu bạn cần cập nhật URL trong nội dung bài đăng và trang của mình, bạn có thể thực hiện tìm kiếm/thay thế cho URL và đường dẫn phương tiện/tải lên trên tệp .Query trước khi tải lên. Đó là một công việc nhanh chóng.

3
Alex Costa

Tôi đã sử dụng plugin backupbuddy được một thời gian rồi. Nó cho phép bạn tạo bản sao lưu cơ sở dữ liệu và tất cả các tệp, tải xuống dưới dạng Zip hoặc gửi trực tiếp đến máy chủ khác qua FTP. Nó cũng làm URL tìm và thay thế cho bạn. Tôi thường mất khoảng 5 phút để hoàn thành toàn bộ quá trình. Và bởi vì tất cả các tệp được nén, quá trình tải lên/tải xuống nhanh hơn nhiều. Và không, tôi không làm việc cho họ, nhưng plugin này thực sự đã làm cho toàn bộ quá trình này dễ dàng hơn nhiều.

1
gdaniel

Một giải pháp thanh toán khác: khung chủ đề Xtreme One phiên bản phát hành 1.2 với Sao lưu Xtreme cho phép bạn "xuất hoặc nhập các cài đặt của Childtheme, Bố cục hoặc Widget với tất cả các cài đặt/nội dung của chúng như Tệp XML. "

1
Jan Fabry

vì tôi chạy các trang web của mình trong IIS (Tôi cũng chạy asp.net, vì vậy tôi cần windows) Tôi sử dụng WebPI từ Msft để cài đặt phiên bản mới, sau đó tôi sao chép mẫu và sử dụng nhập/xuất để chuyển dữ liệu.

Nó không hoàn hảo nhưng toàn bộ chỉ mất chưa đầy một giờ.

Rõ ràng sẽ rất tuyệt nếu có giải pháp một cú nhấp chuột, nhưng đây là điều tôi thấy dễ nhất đối với tôi.

1
Sruly

ĐOẠN ĐƯỜNG là một plugin triển khai nội dung mới từ Crowd Favourite, và nó trông rất lắt léo. Tuy nhiên, đó là $ 250, vì vậy tôi chưa thử. Tuy nhiên, tôi chỉ có thể tự trả tiền trong khoảng thời gian tiết kiệm được, vì vậy tôi đang xem xét nó.

Lợi ích lớn mà nó mang lại so với hầu hết các phương pháp khác được đề cập, là nó có thể hợp nhất thông minh các bài đăng, bình luận, v.v. Nó không chỉ nhập một mysqldump, nó giống như kiểm soát nguồn cho cơ sở dữ liệu. Ví dụ: khi triển khai một bài đăng, nó cũng sẽ triển khai các thẻ cho bài đăng đó, nếu chúng không tồn tại trong sản xuất.

1
Ian Dunn

Một đồng nghiệp đã tìm thấy điều này. Khái niệm thú vị, mặc dù nó không hoạt động trên máy chủ chéo. Tôi vẫn đang khám phá nó, nhưng có vẻ như nó có thể hoạt động tốt cho một ví dụ dàn dựng

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

1
Ryan Gibbons

Điều này có thể không xuất hiện khi bạn đặt câu hỏi, nhưng tôi đã sử dụng một dịch vụ có tên Blogvault trong một vài tháng và nó đã thực hiện điều này một cách hoàn hảo. Có lẽ tôi đã thực hiện hơn 50 lần di chuyển (vượt qua các tên miền, tên miền phụ và máy chủ web), không phải là một trở ngại và không mất thời gian.

Đó là một dịch vụ trả phí (mỗi tên miền/tháng), nhưng không nhiều.

1
Larry

Đây là cách dễ nhất từng có: https://theme.artbees.net/docs/website-migration/
[.__.] Chỉ mất hai lần nhấp. Một để xuất khẩu, một để nhập khẩu.

Có thể sử dụng plugin All in one WP Migration. Liên kết trên cho thấy làm thế nào để sử dụng nó.

1
Mohsenr1

Một công cụ hữu ích khác để xử lý di chuyển máy chủ cho các trang web là WordPress CLI, bài viết này có một cái nhìn tổng quan tốt về những gì nó có thể làm nhưng cụ thể là phần "Tìm kiếm và Thay thế" rất hữu ích để tìm tất cả các tham chiếu đến url trang web cũ/dev :

Quản lý WordPress nâng cao với WP-CLI

1
Rick Curran

Hãy để tôi cho đi một trong những mục yêu thích của tôi :-)

// 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 -------------------
{

... Và sau đó bạn làm việc theo cách của bạn từ đó. DB_NAME, DB_USER ... bảng_prefix. Cá nhân tôi bật ALTERNATE_WP_CRON trên cục bộ (để tránh một số cảnh báo gây phiền nhiễu ), WP_DEBUG trên cả hai (nếu bạn không phải là nhà phát triển) hoặc chỉ hoạt động (nếu bạn), một ini_set('display_errors', '0'); khác trực tiếp cũng có thể thực hiện tốt, cuối cùng, như đã đề cập ở trên: WP_HOME và WP_SITEURL với url cục bộ/thực tế tương ứng.

Đó là khá nhiều tất cả, không có gì còn lại trên WordPress cổ điển 'Đó là tất cả, dừng chỉnh sửa!' dòng ...

192.168. một phần cho phép bạn thực hiện một số thử nghiệm cục bộ (tức là từ các miếng đệm hoặc điện thoại) trong mạng cục bộ của bạn)

$ GLOBALS ['is_local'] cũng có thể có ích trong quá trình phát triển chủ đề của bạn, đối với một số đầu ra gỡ lỗi bổ sung, v.v ...

1
Frank Nocke

Sau khi làm theo câu trả lời này một thời gian, tôi đã tạo ra một plugin nhỏ của riêng mình - Pitta Migration . Những lý do là:

  1. Trong tất cả các ý tưởng đã thử ở đây - đơn giản nhất là các tùy chọn WP_HOMEWP_SITEURL
  2. Sau đó, tôi sử dụng những cái này để đặt hai URL wp_options phù hợp - bao gồm khi các plugin/chủ đề bỏ qua những cái này
  3. Điều này giúp tôi tự tin 100% về những gì đang được thay đổi trong cơ sở dữ liệu của mình
  4. Điều này cũng hoạt động đa nền tảng (tất cả các tập lệnh bash không chơi độc đáo trên Windows)
  5. Thật dễ hiểu khi plugin đang làm gì
  6. Không có cấu hình nào ngoài hai hằng số - thực hiện nhập mysqldump và nhập mysql vào cơ sở dữ liệu cục bộ của bạn và plugin thấy rằng hằng và bảng khác nhau và cập nhật chúng để khớp
  7. Không tìm kiếm văn bản và thay thế
  8. Không có cơ hội làm hỏng cơ sở dữ liệu của bạn - Tôi sử dụng Đối tượng cơ sở dữ liệu WordPress để thực hiện hai bản cập nhật và không có gì khác
  9. Nó chơi độc đáo với những thứ như WordPress Skeleton nơi bạn có thể có mọi thứ trong kiểm soát nguồn và đặt cấu hình cục bộ
  10. Tôi đã đặt nó trong thư mục WordPress plugin và trên Github để nó miễn phí, hoàn toàn mở, dễ dàng cho bạn rẽ nhánh và dễ cài đặt
  11. Sau khi cài đặt, bạn có thể quên nó và nó sẽ 'hoạt động' - nó sẽ cho bạn một thông báo nhỏ để nói rằng cơ sở dữ liệu đã được sửa đổi
  12. Nó nên hoạt động với bất kỳ quá trình sao lưu/FTP/khôi phục
0
icc97

Nếu bạn đang cố gắng để đạt được đồng bộ hóa liên tục, tôi khuyên bạn nên sử dụng rsync cùng với công việc định kỳ tùy chỉnh để viết lại bất kỳ url hoặc dữ liệu cụ thể theo trang web.

0
user92899

Theo tôi cách dễ nhất tôi làm theo là chuyển thủ công .. Chỉ cần sao chép thư mục wp-content và tệp wp-config.php vào Máy chủ mới. Xuất cơ sở dữ liệu từ Máy chủ cũ và nhập vào cơ sở dữ liệu mới của Máy chủ mới ..

Trong cơ sở dữ liệu Máy chủ mới, hãy chuyển đến bảng tùy chọn wp và ở đó thay đổi URL trang web và URL Blog thành địa chỉ Máy chủ mới từ Máy chủ cũ. thích từ http: // localhost/wp đến http://example.com

Bây giờ trong tệp wp-config chỉ cần thay đổi thông tin của cơ sở dữ liệu và người dùng với thông tin Máy chủ mới.

Bây giờ hãy đăng nhập vào wp-admin mới và vào cài đặt và lưu permalink.

Bạn xong việc rồi. Tôi nghĩ rằng điều này là đơn giản mà không cần sử dụng bất kỳ plugin.

Tôi đã thử các loại plugin khác nhau và tất cả chúng đều có nhiều loại vấn đề ..

Vì vậy, tôi thích chuyển giao thủ công đơn giản này dễ dàng hơn tôi nghĩ.

0
Md. Amanur Rahman