Perché definire MULTISITE true cambia la connessione al database in uso

4 feb 2015, 19:01:38
Visualizzazioni: 2.87K
Voti: 0

Ho preso una copia di un'installazione multisite per lavorarci localmente. Ho notato che se imposto define('MULTISITE', true); in wp-config.php, ottengo il classico errore di connessione al database. Se disabilito il multisite, il tema si carica ma mancano alcuni plugin.

Qualcuno può suggerire cosa mi sono dimenticato? Potrebbe essere rilevante che il mio ambiente di sviluppo locale usa NGINX mentre l'originale è su Apache. Non ho nulla di specifico per il multisite nella mia configurazione NGINX.

Se imposto entrambe le seguenti definizioni in wp-config.php:

define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', true);

Vengo reindirizzato a http://http//local.mydevsite/wp-signup.php?new=local.mysdevsite

Vengo reindirizzato allo stesso URL anche quando provo ad accedere a /wp-admin

8
Commenti

Hai detto di aver fatto una copia - posso assumere che tu abbia aggiornato le costanti di connessione al database nel file wp-config.php in modo che il sito non cerchi ancora il database originale?

David Gard David Gard
5 feb 2015 12:14:32

Sì, queste sono state modificate per puntare alla mia copia locale del DB e confermate come corrette

codecowboy codecowboy
5 feb 2015 12:18:25

Hai ancora la riga define('WP_ALLOW_MULTISITE', true); nel file wp-config.php (sopra le righe nella tua domanda)?

David Gard David Gard
5 feb 2015 12:21:16

Ho provato sia con che senza quella riga commentata. La mia comprensione è che non hai bisogno di quella riga una volta che il multisito è stato abilitato per la prima volta.

codecowboy codecowboy
5 feb 2015 12:22:46

Non ne hai bisogno, penso che aggiunga semplicemente l'opzione 'Rete' al menu Strumenti, ma vale la pena verificare. Suppongo anche che tu abbia modificato la costante DOMAIN_CURRENT_SITE per riflettere l'URI della tua copia offline (non includere http:// o uno slash finale)?

David Gard David Gard
5 feb 2015 12:26:56

Sì, ho modificato anche quello - non include http o slash finale.

codecowboy codecowboy
5 feb 2015 12:29:15

Dato che è comunque solo una copia, che ne dici di rimuovere le costanti per multi-site (eccetto WP_ALLOW_MULTISITE) e provare a eseguire nuovamente la configurazione?

David Gard David Gard
5 feb 2015 12:30:43

Continuiamo questa discussione nella chat.

codecowboy codecowboy
5 feb 2015 12:46:18
Mostra i restanti 3 commenti
Tutte le risposte alla domanda 1
0

Sembra un errore con gli URL definiti nel database multisite e/o un problema con il file .htaccess.

Quando si modifica un'installazione regolare di WP da live a locale, ad esempio, puoi cambiare gli URL impostando questo nel tuo wp-config:

define('WP_HOME','http://esempio.com');
define('WP_SITEURL','http://esempio.com');

Tuttavia, con il multisite ci sono riferimenti aggiuntivi agli URL su cui è stato configurato il multisite nel database. Se nel tuo database locale guardi nelle tabelle wp_blogs, wp_site e wp_options troverai delle voci per il sito live nel database. Devi cambiarle con il tuo nuovo URL locale, ad esempio da livesite.com a localsite.com

  • In wp_blogs queste sono tutte le voci nella colonna domain
  • In wp_site questa è la voce sotto la colonna domain
  • In wp_options questo è il option_value corrispondente a option_name di siteurl e home

In alternativa per facilitare la configurazione e minimizzare le modifiche al database, consiglierei di mantenere gli URL esistenti e aggiungere semplicemente una regola nel tuo file hosts per reindirizzare alla tua macchina locale, ad esempio nel tuo hosts fai in modo che livesite.com punti a 127.0.0.1. In questo modo il database non deve essere modificato. Lo svantaggio è che dovrai rimuovere la voce per visualizzare il sito live e alcune persone potrebbero trovare questo confuso. Quindi la scelta è completamente tua.

Poi devi assicurarti che il tuo .htaccess abbia la configurazione corretta per il multisite e i rewrite. Queste impostazioni possono essere trovate qui a seconda che tu abbia una configurazione con sottodomini o con sottocartelle.

Infine, devi assicurarti che nella tua configurazione locale il modulo rewrite_module e il modulo headers_module (o equivalente) siano attivi sul tuo server web locale.

5 feb 2015 16:09:13