Lỗi kết nối DB sau khi sao chép phiên bản WordPress Multisite sang vị trí thứ hai


11

Đây là thiết lập của tôi. Tôi có một ví dụ Multisite đang chạy tại http://example.com và tôi muốn phát triển và dàn dựng. Chuyển một phiên bản Multisite hiện có của WP sang localhost là một cơn ác mộng, vì vậy thay vào đó tôi sẽ thực hiện dev trên một vị trí dàn dựng.

Tôi thiết lập http://staging.example.com để trỏ đến thư mục / public_html / staging / của tài khoản lưu trữ và sao chép tất cả các tệp WP từ thư mục gốc của tôi vào thư mục / staging /. Tôi cũng đã sao chép các tệp cơ sở dữ liệu (kết xuất SQL, nhập các bảng vào cơ sở dữ liệu mới) và thay đổi tệp wp-config.php để trỏ đến cơ sở dữ liệu mới.

Sau khi chạy SQL để thay đổi các bản ghi cơ sở dữ liệu, tôi cũng thay đổi một dòng này trong tệp wp-config.php:

/** Turning on WordPress MU, new in 3.0 */
define( 'MULTISITE', true );
define( 'SUBDOMAIN_INSTALL', false );
$base = '/';
define( 'DOMAIN_CURRENT_SITE', 'example.com' ); // <- I change this line
define( 'PATH_CURRENT_SITE', '/' );
define( 'SITE_ID_CURRENT_SITE', 1 );
define( 'BLOG_ID_CURRENT_SITE', 1 );

Thay đổi để:

define( 'DOMAIN_CURRENT_SITE', 'staging.example.com' ); // <- now changed

Khi tôi tải lên http://staging.example.com , tôi nhận được ... Error establishing database connection!

Tôi đã kiểm tra và kiểm tra ba lần tên người dùng và mật khẩu, đảm bảo rằng người dùng có tất cả các đặc quyền trên cơ sở dữ liệu dàn mới và tôi đã để DBHOST là 'localhost' (mặc dù việc đổi nó thành staging.example.com đã không giúp đỡ, một trong hai).

Tại sao kết nối cơ sở dữ liệu không thành công? Bất kỳ ai? (Cảm ơn vì sự giúp đỡ của bạn trước đó.)

NB: http://example.com đang hoạt động tốt khi chạy trên các cài đặt kết nối db rất giống nhau, chỉ với một cơ sở dữ liệu khác, do đó, không có vấn đề gì với máy chủ cơ sở dữ liệu bị hỏng.


Hừm. Không có ai hả? Đó là một lỗi kỳ lạ, chắc chắn.
Jason Rhodes

Tôi có cùng một lỗi khi cố gắng thực hiện di chuyển Mạng Wordpress tại chỗ - không có máy chủ nào di chuyển
Mikko Ohtamaa

Đồng ý. Tôi đã theo dõi các chế độ thất bại khác nhau và tạo một bài đăng trên blog của họ: opensourcehacker.com/2011/08/22/ trên
Mikko Ohtamaa

Câu trả lời:


2

Một suy nghĩ - khi tôi truy cập www.example.com/staging/wp-admin, nó sẽ tự động chuyển hướng tôi đến www.example.com/wp-admin

Chuyển hướng từ staging.example.com sang example.com/staging có thể xung đột với cài đặt hiện tại không?

CẬP NHẬT: có vẻ như nó có thể liên quan đến các vấn đề .htaccess và các tham chiếu tên miền phức tạp trong cơ sở dữ liệu

Từ Codex WP:

Di chuyển nhiều trang WordPress

Multisite phức tạp hơn nhiều để di chuyển, vì cơ sở dữ liệu có nhiều tham chiếu đến tên máy chủ cũng như các vị trí thư mục.

Cách tốt nhất để di chuyển Multisite là di chuyển các tệp, chỉnh sửa .htaccess và wp-config.php (nếu tên thư mục chứa Multisite thay đổi), sau đó chỉnh sửa cơ sở dữ liệu theo cách thủ công. Tìm kiếm tất cả các phiên bản của tên miền của bạn và thay đổi chúng khi cần thiết. Bước này chưa thể dễ dàng tự động. Nếu bạn đang di chuyển Multisite từ thư mục này sang thư mục khác, bạn sẽ cần đảm bảo rằng bạn chỉnh sửa các mục wp_bloss để thay đổi tên thư mục chính xác.


11

Tôi đã giải quyết nó và nó hoạt động :)

Trong wp_blogsbảng

Cấu trúc cũ

Domain : localhost/smart_facility_linux
Path : /

Nhưng tôi đã thay đổi nó để làm cho nó hoạt động như sau:

Đối với trang gốc:

Domain : localhost
Path : /smart_facility_linux/

Đối với trang con 1 (bất kỳ trang con nào dưới trang chính, tôi chỉ đưa ra ví dụ):

Domain : localhost
Path : /smart_facility_linux/subsite1/

Thật không may đã không làm việc cho tôi. Đây là một ví dụ hoàn hảo về sự ngu ngốc của việc sử dụng các đường dẫn tuyệt đối trong cơ sở dữ liệu cho WP.
Chốt 13/12/19

@Pegues nó đã làm việc cho hơn 10 người ở đây :)
Pratik

1
Tôi rất vui vì nó đã làm việc cho người khác. Điều này không hiệu quả với nhiều người - và từ những gì tôi đã nghiên cứu là do có sự khác biệt về giá trị db khi chuyển từ tên miền phụ sang thư mục con. Và theo nhận xét ban đầu của tôi, việc sử dụng các đường dẫn tuyệt đối là không khôn ngoan bởi WP. Chưa bao giờ, và là nguyên nhân của rất nhiều vấn đề. Và thiết lập một quy trình làm việc phù hợp với đường ống CI / CD là không thực sự có thể ở cấp độ doanh nghiệp.
Chốt 16/12/19

2

Thực sự chỉ có một cách để chuyển tên miền hoặc máy chủ dễ dàng mà tôi đã tìm thấy. Nó hoạt động hoàn hảo cho tôi trên các cài đặt đơn và nhiều trang.

  1. Xuất cơ sở dữ liệu của bạn sang tệp .sql. (Tôi sử dụng PHPMyAdmin cho việc này)
  2. Tạo một bản sao mới của tệp sẽ được chỉnh sửa với một tên hơi khác.
  3. Mở tệp trong trình soạn thảo văn bản ưa thích của bạn> (ví dụ gedit)
  4. Chạy một tìm / thay thế trên tên miền VÀ đường dẫn tuyệt đối (/ home / username / public_html / to / home / username / public_html /) từ sản xuất đến dev.
  5. Lưu các tập tin.
  6. Sao chép toàn bộ cài đặt vào thư mục phát triển của bạn.
  7. Thêm dòng sau vào tệp wp-config.php của bạn:

    định nghĩa ('LIÊN QUAN', đúng);

  8. Đăng nhập và lưu cài đặt permalinks của bạn.

  9. Xóa quy tắc xác định bạn đặt trong wp-config.php của bạn.


1
Điều đó hoạt động tốt, ngoại trừ nếu bạn kết thúc việc thay thế một chuỗi trong dữ liệu nối tiếp, chẳng hạn như tùy chọn widget hoặc chủ đề, bằng một chuỗi có độ dài khác nhau. Dữ liệu được tuần tự hóa trông như thế này - s: 76: "hxxp: //www-dev.example.com/wp-content/uploads/company_logo_swoosh.gif '' s: 70:" hxxp: //www.example.com/ wp-content / uploads / company_logo_swoosh.gif '(lưu ý: độ dài 76 và 70 không còn tương ứng với các chuỗi được trình bày - Tôi đã chỉnh sửa chi tiết trang web của mình và không theo dõi số lượng ký tự mới.) Giải pháp duy nhất cho điều đó là để cập nhật thủ công số lượng - hoặc giữ nguyên độ dài miền dàn.
marfarma

Tôi cũng đã thay thế tt bằng xx để các url không bị che khuất - bạn không thể thấy sự khác biệt giữa chúng.
marfarma

Đó là điều tốt để biết. Điều này có nghĩa là ít nhất chúng ta nên dành thời gian để đi qua tất cả các mục khi chúng được tìm thấy và thay thế thay vì tất cả.
Jeff Sebring

1
Bạn có thể sử dụng tập lệnh này để tìm kiếm / thay thế dữ liệu được xê-ri hóa: interconnectit.com/products/ Kẻ
Costa
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.