DB-Verbindungserrors nach dem Kopieren einer WordPress Multisite-Instanz an einen zweiten Ort

Hier ist mein Setup. Ich habe eine Multisite-Instanz, die unter http://example.com ausgeführt wird , und ich möchte die Entwicklung und Bereitstellung durchführen. Das Verschieben einer vorhandenen Multisite-Instanz von WP auf localhost ist ein Albtraum, also werde ich stattdessen einen Staging-Ort entwickeln.

Ich richtete http://staging.example.com ein , um auf das / public_html / staging / -Verzeichnis des Hosting-Accounts zu zeigen, und kopierte alle WP-Dateien von meinem Root in das Verzeichnis / staging /. Ich habe auch die databasedateien kopiert (SQL-Dump, die Tabellen in eine neue database importiert) und die Datei wp-config.php so geändert, dass sie auf die neue database verweist.

Nachdem ich SQL ausgeführt habe, um die databaseeinträge zu ändern, ändere ich auch diese Zeile in der Datei 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 ); 

Gewechselt zu:

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

Wenn ich http://staging.example.com lade, bekomme ich … Error establishing database connection !

Ich habe den Benutzernamen und das Passwort überprüft und verdreifacht, sichergestellt, dass der Benutzer alle Rechte an der neuen Staging-database hat, und ich habe den DBHOST als ‘localhost’ verlassen (obwohl es nicht zu staging.example.com geändert wurde) Hilfe, entweder).

Warum sollte die databaseverbindung fehlschlagen? Jemand? (Danke im Vorraus für deine Hilfe.)

NB: http://example.com funktioniert gut mit sehr ähnlichen Einstellungen für die databaseverbindung, nur mit einer anderen database, es ist also kein Problem, wenn der databaseserver nicht läuft.

Solutions Collecting From Web of "DB-Verbindungserrors nach dem Kopieren einer WordPress Multisite-Instanz an einen zweiten Ort"

Ein Gedanke – wenn ich zu http://www.example.com/staging/wp-admin gehe, leitet es mich automatisch zu http://www.example.com/wp-admin um

Könnte die Umleitung von staging.example.com zu example.com/staging mit der vorhandenen Installation in Konflikt stehen?

UPDATE: sieht so aus, als könnte es mit .htaccess-Problemen und komplizierten Domänenreferenzen in der database zusammenhängen

Aus dem WP-Codex:

WordPress Multisite verschieben

Multisite ist viel komplizierter zu verschieben, da die database selbst mehrere Verweise auf den Servernamen und die Ordnerpositionen enthält.

Um Multisite zu verschieben, müssen Sie die Dateien verschieben, die Dateien .htaccess und wp-config.php bearbeiten (wenn sich der Ordnername mit Multisite geändert hat) und die database anschließend manuell bearbeiten. Suchen Sie nach allen Instanzen Ihres Domänennamens und ändern Sie sie nach Bedarf. Dieser Schritt kann noch nicht einfach automatisiert werden. Wenn Sie Multisite von einem Ordner in einen anderen verschieben, müssen Sie sicherstellen, dass Sie die wp_blogs-Einträge bearbeiten, um den Ordnernamen korrekt zu ändern.

Es gibt wirklich nur eine Möglichkeit, eine einfache Übertragung von Domain oder Host, die ich gefunden habe, zu tun. Es funktioniert einwandfrei bei Einzel- und Multisite-Installationen.

  1. Exportieren Sie Ihre database in eine .sql-Datei. (Ich benutze PHPMyAdmin dafür)
  2. Erstellen Sie eine neue Kopie der zu bearbeitenden Datei mit einem etwas anderen Namen.
  3. Öffnen Sie die Datei in Ihrem bevorzugten Texteditor> (z. B. gedit)
  4. Führen Sie einen Suchen / Ersetzen auf der Domäne UND absoluten Pfad (/ home / username / public_html / zu / home / username / public_html /) von Produktion zu Dev.
  5. Speicher die Datei.
  6. Kopieren Sie die gesamte Installation in Ihr Entwicklungsverzeichnis.
  7. Fügen Sie Ihrer wp-config.php Datei folgende Zeile hinzu:

    definieren (‘RELOCATE’, wahr);

  8. Melde dich an und speichere deine Permalinks-Einstellungen.

  9. Entfernen Sie die Definitionsregel, die Sie in Ihre wp-config.php eingefügt haben.

Ich habe es getriggers und es hat funktioniert 🙂

In der Tabelle wp_blogs

Alte Struktur war

 Domain : localhost/smart_facility_linux Path : / 

Aber ich habe es so geändert, dass es wie folgt funktioniert:

Für die Root-Site:

 Domain : localhost Path : /smart_facility_linux/ 

Für Sub-Site 1 (jede Subsite unter der Haupt-Site, ich gab nur ein Beispiel):

 Domain : localhost Path : /smart_facility_linux/subsite1/