Voltar ao blog

Configurando um Servidor Redis como Manipulador de Sessão para PHP no Ubuntu 20.04

Configurando um Servidor Redis como Manipulador de Sessão para PHP no Ubuntu 20.04

Redis é um sistema de armazenamento e cache em memória de código aberto, também conhecido como um servidor de estrutura de dados. Ele oferece suporte avançado para vários tipos de dados, como hashes, listas, conjuntos (sets), bitmaps e muitos outros. Devido ao seu excelente desempenho, o Redis é muito popular em indústrias líderes e nas principais multinacionais.

Benefícios do Redis

Quando se trata de velocidade, não há comparação com os servidores Redis. Como um NoSQL servidor de banco de dados, ele oferece uma velocidade fantástica de armazenamento e recuperação de dados. Além disso, o Redis possui funcionalidades de destaque que tornam simples o trabalho com diferentes dados, incluindo os complexos. A facilidade de uso e as funcionalidades sofisticadas do Redis não apenas o destacaram, mas também permitiram sua crescente padronização como um banco de dados convencional para usuários corporativos e individuais.

Abaixo, detalharemos as etapas para ajudar você a instalar o Redis no software Ubuntu 20.04. Neste tutorial, você obterá todas as informações necessárias desde a instalação até a configuração de um servidor Redis externo para ser usado como manipulador de sessão para uma aplicação PHP em execução no Ubuntu 20.04.

Primeiros Passos

Para seguir as etapas, você precisará de dois servidores de banco de dados diferentes (droplets) localizados no mesmo data center com rede privada ativada. Eles incluem:

  • Um servidor web PHP executando LAMP e LEMP no Ubuntu 20.04 – nos referiremos a este servidor como web.

  • Um segundo servidor Ubuntu 20.04 limpo onde o Redis será instalado – nos referiremos a este servidor como redis.

Passo 1 — Instalação do Servidor Redis

Nosso primeiro passo é instalar o servidor Redis no Ubuntu 20.04. Feito isso, certifique-se de que o servidor esteja ativo e em execução em nosso redis Droplet.

Neste tutorial, usaremos Personal Package Archives (PPAs). Sugerimos fortemente o uso de PPAs por motivos de segurança. Em comparação com outros repositórios de terceiros, os PPAs são estáveis, fáceis de instalar e, acima de tudo, o repositório é projetado para usuários do Ubuntu. O PPA permite que você obtenha a versão de software mais recente disponível, mesmo para softwares que você não encontra nos repositórios oficiais do Ubuntu.

Usar PPAs de uma fonte não autorizada é algo totalmente desaconselhável. Certifique-se de obter os PPAs apenas de fontes autênticas e verificadas. Você pode adicionar o repositório PPA usando o comando:

Pressione a tecla Enter para confirmar. Após a confirmação, atualizaremos o cache do gerenciador de pacotes usando o seguinte comando:

Em seguida, instalaremos o Redis usando o comando:

Assim que executar o comando, você terá o Redis instalado em seu servidor. Vamos testar a instalação usando o comando:

Assim que executar o comando, você verá uma instância do Redis em execução no localhost na porta 6379. Além disso, haverá uma resposta chamada PONG. Se você vir isso, significa que concluiu com sucesso o primeiro passo. Para um guia detalhado sobre como instalar e proteger o Redis, você pode dar uma olhada em nosso tutorial How to Install and Secure Redis on Ubuntu 18.04.

A seguir, vamos para o próximo passo - configurar o Redis.

Passo 2 — Configuração do Redis para Aceitar Conexões Externas

O principal objetivo de configurar o Redis é aceitar conexões vindas externamente. Por quê? Porque o Redis – por padrão, permite conexões apenas para o localhost, e há uma restrição para se conectar de qualquer outro lugar. Em termos mais simples, você terá acesso de dentro do servidor onde instalou o Redis.

Primeiro, obtenha uma visão detalhada de suas interfaces de rede usando o ifconfig comando:

Você obterá a saída abaixo:

Na eth1 interface, você encontrará o inet_addr. Aqui temos 10.133.14.9. Usaremos este endereço IP nas próximas etapas para conectar o servidor redis a partir do servidor web.

Passo 3 — Vinculação do Localhost

Você é livre para usar o editor de código de sua escolha (Atom e Visual Studio Code são os mais populares).

Agora, abra o arquivo /etc/redis/redis.conf e procure pela linha que contém a definição bind. Você deve adicionar o seu endereço IP da rede privada à linha:

Você pode ver localhost, em vez de 127.0.0.1. Não se preocupe, você só precisa adicionar seu endereço IP privado. Em seguida, reinicie o serviço Redis para aplicar as alterações. Use o comando abaixo para reiniciar o servidor redis:

Para os usuários que instalaram o Redis usando o aplicativo de um clique, sigam o comando mencionado abaixo para reiniciar o servidor:

Depois de reiniciar o servidor redis, qualquer servidor presente na mesma rede privada se conectará automaticamente a esta instância do Redis, sem a necessidade de fazer isso individualmente.

Passo 4 — Configuração de Senha do Servidor Redis

Você pode pular esta etapa se estiver usando a instalação do Redis para fins de prática ou treinamento. No entanto, configurar a senha para o servidor redis é altamente recomendado se você deseja adicionar uma camada extra de segurança à sua instalação do Redis. Vamos modificar o mesmo arquivo de configuração que fizemos na etapa anterior. Use o comando para editar:

Descomente a linha que contém requirepass, e defina uma senha forte:

Reinicie o serviço Redis para refletir as alterações que você fez. Use o comando para reiniciar:

Step 5 — Redis Connection and Authentication Testing

Neste passo, nos conectaremos ao serviço Redis de dentro da máquina redis para garantir que todas as alterações feitas estejam funcionando perfeitamente como esperado. Para conectar, use o comando abaixo:

Aqui, mesmo se você deixar de mencionar o hostname, ele ainda será executado. Nosso objetivo principal é garantir que o serviço Redis aceite as conexões perfeitamente:

É possível que você receba um AUTH erro ao tentar acessar os dados a partir da senha definida:

Sua saída será semelhante a esta:

Para autenticar, execute o comando AUTH junto com a mesma senha que você definiu no arquivo /etc/redis/redis.conf:

Em seguida, execute o comando novamente:

Desta vez, você receberá um OK como resposta em vez de um erro. Você obterá a saída como abaixo:

A saída empty list ou set significa que o servidor Redis está vazio. Isso ocorre porque ainda não configuramos o servidor web como um manipulador de sessão.

Nota: Antes de prosseguirmos, certifique-se de que a sessão SSH esteja aberta e conectada ao redis-cli. Nos próximos passos, voltaremos ao prompt do redis-cli para verificar se os dados da sessão foram armazenados corretamente após fazermos as alterações necessárias no servidor web.

Step 6 — Redis Extension Installation on the Web Server

Os próximos passos devem ser executados no servidor web. Precisamos instalar a extensão PHP Redis para que o PHP se conecte ao servidor Redis.

Primeiro, atualize o cache do seu gerenciador de pacotes executando o comando:

Em seguida, instale o pacote php5-redis:

Você está pronto para se conectar ao Redis.

Step 7 — Redis Set-up as the Default Session Handler on the Web Server

O PHP possui um manipulador de sessão padrão. Neste passo, editaremos o arquivo php.ini no servidor web para alterar as configurações padrão. O arquivo php.ini depende da stack atual:

  • Para uma stack LAMP no Ubuntu 20.04, use: /etc/php5/apache2/php.ini.

  • Para uma stack LEMP no Ubuntu 20.04, o caminho geralmente é /etc/php5/fpm/php.ini.

Se você não tiver certeza sobre a localização do seu arquivo principal php.ini, use a ajuda da função phpinfo(). Coloque o seguinte código em um arquivo chamado info.php dentro do seu diretório raiz da web:

Quando você tentar acessar o script pelo seu navegador, procure pela linha que contém “Loaded Configuration File”. Você encontrará a localização exata do arquivo principal php.ini carregado. Certifique-se de remover o arquivo info.php, pois ele contém todo o conteúdo confidencial do seu ambiente.

Depois disso, abra o arquivo php.ini e procure pela linha que contém session.save_handler. O valor padrão será files, certifique-se de alterar para redis.

Em ambientes LAMP:

Em ambientes LEMP:

Em seguida, remova o comentário de session.save_path e modifique o valor para conter a string de conexão do Redis. O conteúdo deve seguir o formato abaixo:

Use a senha que configuramos no Passo- 4. Caso você não esteja usando a senha definida, forneça o parâmetro auth ao configurar o Redis. Agora, salve o arquivo e reinicie o php serviço em ambos os ambientes.

Em LAMP ambientes:

Em LEMP ambientes:

Passo 8 — Testando o Gerenciamento de Sessão do Redis

No passo final, precisamos de um script ou aplicação PHP para garantir que suas sessões agora sejam gerenciadas pelo Redis. Usaremos um script simples que implementa um contador – cada vez que você recarrega a página, o número impresso é incrementado.

Crie um arquivo chamado demo.php no servidor web e mantenha-o dentro da sua pasta raiz de documentos:

Then, change the /usr/share/nginx/html para refletir o caminho da sua pasta raiz de documentos:

Em seguida, você deve apontar seu navegador para http://web/demo.php para acessar o script. O programa incrementará o número toda vez que você recarregar a página.

Agora você terá as informações de sessão armazenadas no servidor Redis. Para verificar, você deve voltar à sua sessão SSH na máquina redis usando o redis-cli. Obtenha o conteúdo mais uma vez com keys *:

Você verá a saída abaixo:

A saída verifica que todas as informações estão armazenadas de forma segura no servidor redis . Se você quiser conectar servidores web adicionais, você pode seguir o mesmo procedimento.

Conclusão

O Redis é um banco de dados NoSQL que permite o armazenamento de inúmeros dados não estruturados. Pouquíssimos bancos de dados se comparam às funcionalidades e simplicidade do servidor redis . Sua crescente popularidade o torna continuamente um item indispensável, com poucos substitutos em comparação com seus amplos recursos.

Para aprofundar ainda mais seus conhecimentos sobre aplicações PHP e como utilizá-las, você pode dar uma olhada nos seguintes tutoriais do nosso blog:

Boa computação!

author

Shreyas Patil

Autor · CloudSigma

Preslav Dobrev é um designer criativo na CloudSigma, focado na construção de uma identidade empresarial consistente por meio de canais de marketing tradicionais e inovadores. Ele é hábil em combinar a visão artística com o marketing estratégico para criar narrativas de marca impactantes.

Comentários

Nenhum comentário ainda. Seja o primeiro.