¿Por qué definir MULTISITE como true cambia la conexión a la base de datos que se usa?

4 feb 2015, 19:01:38
Vistas: 2.87K
Votos: 0

He copiado una instalación multisite para trabajar en ella localmente. Noté que si defino define('MULTISITE', true); en wp-config, obtengo el error estándar de conexión a la base de datos. Si desactivo multisite, el tema carga pero faltan plugins.

¿Alguien puede sugerir qué me falta? Posiblemente relevante es que mi entorno de desarrollo local usa NGINX y el original está en Apache. No tengo nada específico para multisite en mi configuración de nginx.

Si defino ambos siguientes en wp-config:

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

Me redirige a http://http//local.mydevsite/wp-signup.php?new=local.mysdevsite

También me redirige allí al intentar acceder a /wp-admin

8
Comentarios

Dices que has hecho una copia - ¿puedo asumir que actualizaste las constantes de conexión a la base de datos dentro de wp-config.php para que el sitio no siga buscando la base de datos original?

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

Sí, estas han sido cambiadas a mi copia local de la BD y confirmadas como correctas

codecowboy codecowboy
5 feb 2015 12:18:25

¿Todavía tienes la línea define('WP_ALLOW_MULTISITE', true); en wp-config.php (encima de las líneas en tu pregunta)?

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

He probado con y sin ese comentario. Según entiendo, no necesitas esa línea una vez que el multisitio ha sido habilitado por primera vez.

codecowboy codecowboy
5 feb 2015 12:22:46

No lo necesitas, creo que solo añade la opción de 'Redes' al menú de Herramientas, pero vale la pena revisarlo. Asumo también que has cambiado la constante DOMAIN_CURRENT_SITE para que refleje el URI de tu copia fuera de línea (no incluyas http:// ni una barra diagonal al final)?

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

Sí, también he cambiado eso - no incluye http ni barra diagonal al final.

codecowboy codecowboy
5 feb 2015 12:29:15

Como solo es una copia de todos modos, ¿qué tal si eliminamos las constantes para multisitio (excepto WP_ALLOW_MULTISITE) e intentamos ejecutar la configuración nuevamente?

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

Continuemos esta discusión en el chat.

codecowboy codecowboy
5 feb 2015 12:46:18
Mostrar los 3 comentarios restantes
Todas las respuestas a la pregunta 1
0

Esto parece ser un error con las URLs definidas en la base de datos multisite y/o un problema con el archivo .htaccess.

Cuando cambias una instalación normal de WordPress de un entorno en vivo a local, por ejemplo, puedes modificar las URLs configurando esto en tu wp-config:

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

Sin embargo, con multisite hay referencias adicionales a las URLs en las que se configuró el multisite dentro de la base de datos. Si en tu base de datos local revisas las tablas wp_blogs, wp_site y wp_options, encontrarás entradas para el sitio en vivo en la base de datos. Necesitas cambiar estas entradas a tu nueva URL local, es decir, de sitioenlive.com a sitiolocal.com.

  • En wp_blogs se encuentran todas las entradas en la columna domain
  • En wp_site está la entrada bajo la columna domain
  • En wp_options está el valor de option_value correspondiente a los option_name siteurl y home

Alternativamente, para facilitar la configuración y minimizar cualquier cambio en la base de datos, recomendaría mantener las URLs existentes y simplemente agregar una regla en tu archivo hosts para redirigir a tu máquina local, es decir, en tu archivo hosts hacer que sitioenlive.com apunte a 127.0.0.1. De esta manera, no tienes que modificar la base de datos. La desventaja de esto es que tendrás que eliminar la entrada para ver el sitio en vivo y algunas personas pueden encontrar esto confuso. Así que esto depende completamente de tu elección.

Luego, necesitas asegurarte de que tu .htaccess tenga la configuración correcta para multisite y reescrituras. Esas configuraciones se pueden encontrar aquí dependiendo de si tienes una configuración de subdominio o de subcarpeta.

Finalmente, debes asegurarte de que en tu configuración local tengas el módulo de reescritura (rewrite_module) activo y el módulo de cabeceras (headers_module) activo (o su equivalente) en tu servidor web local.

5 feb 2015 16:09:13