it-swarm.com.de

DB-Verbindungsfehler nach dem Kopieren einer WordPress Multisite-Instanz an einen zweiten Speicherort

Hier ist mein Setup. Ich habe eine Multisite-Instanz unter http://example.com und möchte sie entwickeln und bereitstellen. Das Verschieben einer vorhandenen Multisite-Instanz von WP auf localhost ist ein Albtraum. Daher werde ich stattdessen auf einem Staging-Standort Entwicklerarbeit leisten.

Ich habe http://staging.example.com so eingerichtet, dass es auf das Verzeichnis/public_html/staging/des Hosting-Kontos verweist, und habe alle WP Dateien aus meinem Stammverzeichnis in das Verzeichnis/kopiert. Staging/Verzeichnis. Ich habe auch die Datenbankdateien kopiert (SQL-Dump, die Tabellen in eine neue Datenbank importiert) und die Datei wp-config.php so geändert, dass sie auf die neue Datenbank verweist.

Nachdem ich SQL ausgeführt habe, um die Datenbankeinträge zu ändern, ändere ich auch diese eine 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

Beim Laden von http://staging.example.com erhalte ich ... Error establishing database connection!

Ich habe den Benutzernamen und das Kennwort überprüft und dreimal überprüft, sichergestellt, dass der Benutzer alle Berechtigungen für die neue Staging-Datenbank hat, und ich habe den DBHOST als 'localhost' belassen (obwohl dies nicht durch Ändern in staging.example.com geschehen ist) Hilfe, entweder).

Warum würde die Datenbankverbindung fehlschlagen? Jemand? (Danke im Vorraus für deine Hilfe.)

NB: http://example.com funktioniert einwandfrei mit sehr ähnlichen Datenbankverbindungseinstellungen, nur mit einer anderen Datenbank. Es ist also kein Problem, wenn der Datenbankserver nicht verfügbar ist .

9
Jason Rhodes

Ein Gedanke: Wenn ich zu www.example.com/staging/wp-admin gehe, werde ich automatisch zu www.example.com/wp-admin weitergeleitet

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

UPDATE: Es sieht so aus, als könnte es mit .htaccess-Problemen und komplizierten Domain-Referenzen in der Datenbank zusammenhängen

Aus dem WP Codex:

Verschieben von WordPress Multisite

Multisite ist viel schwieriger zu verschieben, da die Datenbank selbst mehrere Verweise auf den Servernamen sowie die Ordnerpositionen enthält.

Am besten verschieben Sie Multisite, indem Sie die Dateien verschieben, die Dateien .htaccess und wp-config.php bearbeiten (sofern sich der Ordnername mit Multisite geändert hat) und anschließend die Datenbank manuell bearbeiten. Suchen Sie nach allen Instanzen Ihres Domainnamens und ändern Sie sie nach Bedarf. Dieser Schritt ist noch nicht einfach zu automatisieren. 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.

2
timshutes

Ich habe es gelöst 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 Root-Site:

Domain : localhost
Path : /smart_facility_linux/

Für Unterwebsite 1 (jede Unterwebsite unter Hauptwebsite, ich habe nur ein Beispiel angegeben):

Domain : localhost
Path : /smart_facility_linux/subsite1/
10
Pratik C Joshi

Es gibt wirklich nur einen Weg, eine einfache Übertragung von Domain oder Host durchzuführen, den ich gefunden habe. Es funktioniert einwandfrei für mich auf Single- und Multisite-Installationen.

  1. Exportieren Sie Ihre Datenbank 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 Such-/Ersetzungsvorgang für die Domäne UND den absoluten Pfad (/ home/Benutzername/public_html/to/home/Benutzername/public_html /) von der Produktion zum Entwickler aus.
  5. Speicher die Datei.
  6. Kopieren Sie die gesamte Installation in Ihr Entwicklungsverzeichnis.
  7. Fügen Sie Ihrer wp-config.php-Datei die folgende Zeile hinzu:

    define ('RELOCATE', true);

  8. Melden Sie sich an und speichern Sie Ihre Einstellungen für Permalinks.

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

2
Jeff Sebring