Configuración de WordPress multiservidor teórica con usuarios compartidos

4

La organización para la que trabajo se beneficiaría si pudiéramos tomar las instalaciones existentes de WordPress que están ubicadas en varios (~ 5) servidores diferentes y poder usar una base de datos universal solo con la tabla de usuarios. Los servidores individuales usarían una base de datos para el contenido restante.

La idea es esta. Tenga un servidor "principal" con todos los datos del usuario (unos 300 o más usuarios) a quienes un administrador de red puede otorgar / editar permisos a estos usuarios en cada uno de los otros servidores.

De esta manera, cuando un usuario inicia sesión en una instalación de WordPress en un servidor, el usuario puede visitar otro servidor de WordPress y aún iniciar sesión con varios permisos en los distintos servidores.

Esta sería una relación 1: 1 para WordPress Network to Server. ¿Cómo deberían utilizarse las cookies o las sesiones para permitir esto?

¿Debería usarse un sistema de inicio de sesión API externo para lograr esto? ¿O podría hacerse esto dentro de los archivos principales de WordPress?

    
pregunta jmalais 07.11.2012 - 20:07

1 respuesta

3

Puede ser posible. Gran parte de la API principal que se ocupa de los inicios de sesión y las cookies es conectable .

Podría reemplazar wp_set_current_user por algo que consultó su base de datos externa en lugar de la interna, por ejemplo.

La autenticación ya se realiza a través del filtro authenticate ( wp_authenticate es la función que hace esto, y el filtro se agrega en wp_signout ).

En pocas palabras, hay muchas maneras en que puedes conectarlo, hacer lo que quieras y cambiar las cosas. Sin embargo, perdería casi la totalidad de la API de los usuarios (sin get_users , sin área de administración de usuarios, etc.), excepto su sitio principal, donde reside la funcionalidad del usuario.

Un enfoque alternativo sería que todos los ~ 5 servidores / instalaciones de WP compartan lo mismo, la base de datos externa y la base de datos. Desde allí, establezca una tabla de usuario personalizada en cada wp-config.php , y cada instalación por separado con la misma datos del usuario. También deberá establecer un $table_prefix diferente para cada sitio.

Las capacidades y los roles serán diferentes en cada sitio, debido a la forma en que WordPress almacena los roles / mayúsculas (se prefijan con $table_prefix ). Todos los datos del usuario principal, a saber, nombres de usuario, correos electrónicos y contraseñas, se compartirán entre los servidores.

Por supuesto, esto es solo una instalación multisitio de WP sin la conveniencia de multisitio.

Multisite + un complemento de asignación de dominios es probablemente lo que desea. O puedes usar tu propio sunrise.php y omitir el complemento de asignación de dominios. Debería ser posible poner varios servidores de aplicaciones que ejecutan una instalación de WP con un servidor de base de datos compartido. Apunte todos los dominios a un equilibrador de carga que envía tráfico a uno de los servidores de aplicaciones y listo.

    
respondido por el chrisguitarguy 07.11.2012 - 20:40

Lea otras preguntas en las etiquetas