erreur de connexion à la base de données après la copie d'une instance WordPress Multisite dans un deuxième emplacement

9

Voici ma configuration. Une instance multisite est en cours d'exécution sur enlace et je souhaite effectuer le développement et la mise en scène. Déplacer une instance multisite existante de WP sur localhost est un cauchemar. Je vais donc utiliser dev sur un emplacement intermédiaire.

J'ai configuré enlace pour qu'il pointe vers le répertoire / public_html / staging / du compte d'hébergement et ai copié tous les fichiers WP à partir de ma racine dans le répertoire / staging /. J'ai également copié les fichiers de base de données (vidage SQL, importé les tables dans une nouvelle base de données) et modifié le fichier wp-config.php pour qu'il pointe vers la nouvelle base de données.

Après avoir exécuté SQL pour modifier les enregistrements de la base de données, j'ai également modifié cette ligne dans le fichier 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 );

changé en:

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

Lorsque je charge enlace , je reçois ... Error establishing database connection !

J'ai vérifié et vérifié trois fois le nom d'utilisateur et le mot de passe, m'assurant que l'utilisateur dispose de tous les privilèges sur la nouvelle base de données de transfert, et j'ai laissé DBHOST en tant que 'localhost' (bien que je l'ai changé en staging.example.com n'a pas aidé non plus).

Pourquoi la connexion à la base de données échouerait-elle? N'importe qui? (Merci pour votre aide à l'avance.)

Remarque: enlace fonctionne correctement avec des paramètres de connexion à la base de données très similaires, mais avec une base de données différente. Donc, ce n'est pas un problème avec le serveur de base de données en panne.

    
posée Jason Rhodes 18.07.2011 - 14:53

3 réponses

2

Une seule pensée - quand je vais sur www.example.com/staging/wp-admin, cela me redirige automatiquement vers www.example.com/wp-admin

La redirection de staging.example.com vers example.com/staging peut-elle être en conflit avec l'installation existante?

UPDATE: cela pourrait être lié à des problèmes de .htaccess et à des références de domaine compliquées dans la base de données

.

À partir du WP Codex:

  

Déplacement d'un site multisite WordPress

     

Le multisite est beaucoup plus compliqué à   se déplacer, car la base de données elle-même a plusieurs références au serveur   nom ainsi que les emplacements des dossiers.

     

Le meilleur moyen de déplacer un site multisite consiste à déplacer les fichiers, à modifier le fichier.   .htaccess et wp-config.php (si le nom du dossier contenant Multisite   changé), puis éditez manuellement la base de données. Rechercher pour tous   instances de votre nom de domaine et modifiez-les au besoin. Cette étape   ne peut pas encore être facilement automatisé. Si vous déménagez d'un site à l'autre   dossier à un autre, vous devez vous assurer que vous éditez le wp_blogs   entrées pour changer le nom du dossier correctement.

    
réponse donnée timshutes 19.07.2011 - 23:18
6

Je l'ai résolu & cela a fonctionné :)

Dans la table wp_blogs ,

Ancienne structure :

Domain : localhost/smart_facility_linux
Path : /

Mais je l'ai changé pour le faire fonctionner comme suit:

Pour le site racine:

Domain : localhost
Path : /smart_facility_linux/

Pour le sous-site 1 (tout sous-site sous le site principal, je viens de donner un exemple):

Domain : localhost
Path : /smart_facility_linux/subsite1/
    
réponse donnée Pratik C Joshi 17.04.2015 - 12:33
2

Il n’existe en réalité qu’un seul moyen de transférer facilement un domaine ou un hôte. Cela fonctionne parfaitement pour moi sur des installations mono et multisites.

  1. Exportez votre base de données vers un fichier .sql. (J'utilise PHPMyAdmin pour cela)
  2. Créez une nouvelle copie du fichier à modifier avec un nom légèrement différent.
  3. Ouvrez le fichier dans votre éditeur de texte préféré > (gedit par exemple)
  4. Exécuter une recherche / remplacement sur le domaine ET le chemin absolu (/ home / nom d'utilisateur / public_html / to / home / nom d'utilisateur / public_html /) de la production au développeur.
  5. Enregistrez le fichier.
  6. Copiez toute l'installation dans votre répertoire de développement.
  7. Ajoutez la ligne suivante à votre fichier wp-config.php:

    define ('RELOCATE', true);

  8. Connectez-vous et enregistrez les paramètres de votre permalien.

  9. Supprimez la règle de définition que vous avez insérée dans votre wp-config.php.

réponse donnée Jeff Sebring 22.07.2011 - 12:49

Lire d'autres questions sur les étiquettes