NGINX + PHP 7.2 + ElasticSearch no Ubuntu Server 18.04.2 LTS
Introdução
Eu seu o tipo de programador que só namora o Linux: minha máquina para desenvolvimento é Windows e, sinceramente, esse cenário só é assim porque ainda não consegui fazer nenhuma distribuição linux rodar satisfatoriamente usando vídeo híbrido (Intel Graphics + GeForce 840M).
Mas também sou fã de RPi e Linux e pretendo, agora, criar um ambiente que simule a maioria dos servidores web com os quais trabalho.
Atualmente meu servidor no Windows usa PHP 7.2 + Apache + MySQL. Pretendo mudar. Vou criar um servidor usando o VirtualBox, instalar o Ubuntu Server 18.04.2 LTS e, nele, meu novo servidor.
Não vou tratar aqui sobre como instalar uma máquina virtual pois foge do propósito do post.
Não vou tratar aqui sobre como instalar uma máquina virtual pois foge do propósito do post.
NGINX?
Ele é um servidor web Russo que nasceu em 2002 e tem crescido bastante por ser mais eficiente na hora de responder requisições simultâneas. Existem vários testes de performance na web (esse aqui é um deles) que, no final das contas, mostram que o o NGINX consegue fazer mais que o Apache usando menos recursos do sistema.
Isso, no RPi, faz bastante diferença.
Instalando
É mole: instale via APT: sudo apt install nginx.
Checando se deu certo
Acesse o endereço IP do seu servidor através do navegador de sua preferência. Se a mensagem abaixo aparecer...
... então tá tudo certo. Sinceramente acho muito difícil isso dar errado. Se quiser dar uma conferida na versão, execute nginx -v no terminal. A versão aqui é 1.14.0.
E o PHP?
No caso do PHP, a versão disponível nos repositórios do servidor é a 7.2, que pode ser instalado com sudo apt install php7.2-fpm.
É importante mencionar aqui que o NGINX encara o PHP de forma diferente: enquanto o Apache usa o mod_php pra fazer o bichão funcionar, no NGINX a coisa muda para a versão FastCGI do PHP, por isso a instalação do pacote "fpm".
Além disso, suas preferências sobre bibliotecas extras podem variar (php-gd, php-mysql, etc.). O exemplo aqui é deixar o NGINX + PHP 7.2 rodando e, nesse caso, instalar o pacote php7.2-fpm é suficiente.
Fazendo funcionar
Agora é hora de fazer o PHP rodar através do NGINX.
1) Edite o arquivo sudo nano /etc/nginx/sites-available/default e retire o comentário das linhas que começa com "location ~ \.php$", e termina com };, exceto a linha fastcgi_pass 127.0.0.1:9000; já que vamos usar o socket fpm.
2) Ainda nesse arquivo, adicione index.php na lista de arquivos de índice (logo depois de index e antes de index.html). Salve e feche o arquivo;
3) Crie um arquivo de teste na raiz do site com nano /raiz/do/site.com/index.php e coloque <?php phpinfo(); como conteúdo;
4) Reinicie o NGINX com sudo systemctl restart nginx.service.
... que beleza!
Agora o ElasticSearch
O ES requer o java 1.8, então vamos começar instalando ele com sudo apt install openjdk-8-jdk.
Mas não é só isso. Execute no terminal o comando echo $JAVA_HOME. Se nada apareceu, então você precisa configurar o caminho para o diretório inicial do java. Você pode fazer isso com sudo nano /etc/environment. No editor, informa o caminho no formato JAVA_HOME=/caminho/java. Salve. Atualize o ambiente com source /etc/environment.
Com o java instalado e configurado, chegou a hora de instalar o ElasticSearch.
Antes de tudo, registre o GPG-KEY com...
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
Antes de tudo, registre o GPG-KEY com...
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
... adicione o repositório do ES...
echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list
... e use sudo apt update e sudo apt install elasticsearch para instalar a última versão disponível.
Quando terminar, registre o serviço com sudo systemctl enable elasticsearch.service e, em seguida, inicie-o com sudo systemctl enable elasticsearch.service.
Até aqui é provável que tudo tenha dado muito certo, mas você quer ter certeza, imagino. Use curl -XGET localhost:9200 e receba.
Esse JSON recebido é tudo que você precisa para ter certeza de que tudo vai bem.
Esse JSON recebido é tudo que você precisa para ter certeza de que tudo vai bem.
Comentários
Postar um comentário