Configuração Teórica do WordPress para Múltiplos Servidores com Usuários Compartilhados

4

A organização para a qual eu trabalho seria beneficiada se pudéssemos usar as instalações existentes do WordPress que estão localizadas em vários (~ 5) servidores diferentes e poder usar um banco de dados universal apenas com a tabela de usuários. Os servidores individuais usariam um banco de dados para o conteúdo restante.

A ideia é essa. Ter um servidor "principal" com todos os dados do usuário (mais de 300 usuários) que um administrador de rede pode conceder / editar permissões para esses usuários em cada um dos outros servidores.

Dessa forma, quando um usuário efetua login em uma instalação do WordPress em um servidor, o usuário pode visitar outro servidor WordPress e ainda efetuar login com várias permissões nos vários servidores.

Este seria um relacionamento 1: 1 para o WordPress Network to Server. Como os cookies ou sessões precisam ser utilizados para permitir isso?

Seria necessário usar um sistema de login de API externo para realizar isso? Ou isso pode ser feito dentro dos arquivos principais do WordPress?

    
por jmalais 07.11.2012 / 20:07

1 resposta

3

Isso pode ser possível. Grande parte da API principal que lida com logins e cookies é conectável .

Você pode substituir wp_set_current_user por algo que consultou seu banco de dados externo em vez do interno, por exemplo.

A autenticação já é feita por meio do filtro authenticate ( wp_authenticate é a função que faz isso e o filtro é adicionado em wp_signout ).

Em suma, há muitas maneiras de você poder enganchar, fazer as coisas e mudar as coisas. Você perderia, no entanto, quase todos os usuários da API (sem get_users , sem área de administração do usuário, etc), exceto pelo seu site principal, onde reside a funcionalidade do usuário.

Uma abordagem alternativa seria ter todos os ~ 5 servidores / instalações WP compartilhando o mesmo servidor de banco de dados externo e banco de dados. A partir daí, defina uma tabela de usuário personalizada em cada wp-config.php e cada instalação separada compartilhe o mesmo dados do usuário. Você também precisará definir um $table_prefix diferente para cada site.

Os recursos e as funções serão diferentes em cada site, devido à forma como o WordPress armazena funções / limites (eles são prefixados com $table_prefix ). Todos os principais dados do usuário, ou seja, nomes de usuário, e-mails e senhas, serão compartilhados entre os servidores.

É claro que esta é apenas uma instalação multisite do WP sem a conveniência do multisite.

O Multisite + um plug-in de mapeamento de domínio é provavelmente o que você deseja. Ou você pode usar seu próprio sunrise.php e pular o plugin de mapeamento de domínios. Deve ser possível colocar vários servidores de aplicativos executando uma instalação do WP com um servidor de banco de dados compartilhado. Aponte todos os domínios em um balanceador de carga que envia tráfego para um dos servidores de aplicativos e pronto.

    
por chrisguitarguy 07.11.2012 / 20:40