Soporte » Multisitio » Acceso a la administración de la red (wp-admin/network/sites.php)

  • Resuelto Jose Lazo

    (@jose-lazo)


    Hola compañeros,

    Tengo el siguiente problema:

    Multisitio con 5 sitios montados en producción con la versión 4.8.9 de WordPress y unos 20 plugins desactualizados.

    Clonación en local, lo hago correr correctamente, actualizo todo y no puedo acceder a la administración de la red. Me redirige a /wp-admin/network/sites.php (cualquier enlace de la intranet lo redirige al mismo pero sin el dominio, directamente al /wp-admin/network/lo-que-sea.php)

    Puedo acceder a los backends de cada sitio y todo corre bien, pero no a la red.

    He desactivado los plugins con wp-cli porque tampoco puedo acceder a /network/plugins.php y he tratado de actualizar también la DDBB por comandos con wp core update-db --network, pero me muestra que ya están todas actualizadas.

    He desplegado en un entorno de preproducción por si era mi configuración local de Xampp la que fallaba y también sucede.

    ¿A alguien más le ha pasado al actualizar una red?

    • Este debate fue modificado hace 5 meses por  Jose Lazo. Razón: Cambio de url
    • Este debate fue modificado hace 5 meses por  Jose Lazo.

    La página con la que necesito ayuda: [accede para ver el enlace]

Viendo 6 respuestas - 1 de 6 (de 6 total)
  • Moderador Jose Conti

    (@jconti)

    Hola,

    Nunca lo he visto.

    ¿Podría ser que hubieras cometido algún error al actualizar enlaces para que funcionara en local en la BD?

    Por otro lado, supongo que también modificaste el dominio en wp-config.php antes de realizar las modificaciones en BD y la posterior actualización de todos los sitios de la red.

    Lo del error al actualizar la base de datos, lo pregunto ya que no encuentro normal que te cree los enlaces sin poner el dominio, es rarísimo eso, nunca lo he visto.

    Jose Lazo

    (@jose-lazo)

    ¡Hola Conti!,

    Quién mejor que tu para arrojar algo de luz a un problema con un multisitio, jeje.

    La URL no debería ser el problema porque antes de la actualización todo corría bien (imágenes incluidas sin conexión en el portátil) y podía acceder a la administración de la red. De hecho fue desde la administración de red desde donde actualicé todo.

    Por otro lado, he visto un warning que no sé si tendrá algo que ver, pero ya lo han reportado al ‘Core trac’ concerniente a la pérdida de la tabla wp_blogmeta tras actualizar.

    Moderador Jose Conti

    (@jconti)

    En principio un warning no debería afectar, aunque siendo el blogmeta… ya no se yo.

    En cualquier caso, no tengo muy claro cuál es el problema.

    Explica por favor cuando se produce el problema y lo que hiciste para pasar de live a local.

    • Esta respuesta fue modificada hace 5 meses por  Jose Conti.
    David Navia

    (@davidnaviaweb)

    Por decir una tontería… ¿has mirado que el .htaccess esté correcto?

    Hola Conti,

    Pues las acciones fueron:

    1. Descargar archivos y DDBB
    2. Usar la herramienta de search & replace en archivos de Visual Code (por si acaso)
    3. Usar el comando wp search-replace --url=https://abbviecare.es 'https://abbviecare.es' 'http://abbvie.test' --recurse-objects --network --skip-columns=guid --skip-tables=wp_users de WP-CLI para la DDBB

    Hasta aquí, tenía acceso a la administración de la red. Desde http://abbvie.test/wp-admin/network/update-core.php actualicé todo. No sé si fue la actualización del core o de algún plugin la que rompió, porque no comprobé el acceso a la administración de la red entre las actualizaciones, sólo comprobé el frontend.

    Una vez todo actualizado, voy a Mis sitios –> Administrador de la red –> Sitios y me dirige a http://wp-admin/network/sites.php en lugar de a http://abbvie.test/wp-admin/network/sites.php. Aunque escriba la URL tal cual en la barra del navegador, me redirige al enlace sin el dominio. Y así con todos los enlaces de la administración de la red. Sin embargo sí que puedo acceder a los backends de cada uno de los sitios.

    Parece como si la red no conociese el dominoi en el que está, por eso me pareció relevante hacer mención del warning sobre que no existe la tabla wp_blogmeta.

    Hola @davidnaviaweb,

    El .htaccess es el mismo que antes de la actualización:

    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    
    # add a trailing slash to /wp-admin
    RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
    
    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^ - [L]
    RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
    RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
    RewriteRule . index.php [L]
    
    </IfModule>
    # END WordPress

    Es un poltergeist 😀

    Un saludo

    • Esta respuesta fue modificada hace 4 meses, 4 semanas por  Jose Lazo. Razón: Aclaración
    Jose Lazo

    (@jose-lazo)

    Ya he encontrado el problema (con la inestimable ayuda de Vicente Herrera y XDebug).

    Justo antes de las actualizaciones, desplegué un cambio: En cada sitio había la misma función para una llamada a una API dependiendo del entorno (Desarrollo o Producción). Yo las unifiqué en un mu-plugin (mal nombre para esa carpeta, no son plugins si no ejecutables) y utilicé como nombre de variable $current_site, la cual es una variable global de WordPress y al estar en mu-plugin la sobreescribe eliminando el valor correcto de la misma.

    Resumen: cambio de nombre en la variable y, por si acaso, toda esa funcionalidad metida en una función e invocada desde el mismo mu-plugin para evitar sobreescribir globales.

    Lección aprendida.

Viendo 6 respuestas - 1 de 6 (de 6 total)
  • Debes estar registrado para responder a este tema.