Neste post vou parar de enrolação é ir direto ao que interessa, fazer o NGINX interpretar arquivos PHP utilizando o PHP-FPM (FastCGI Process Manager) e criar um Virtual Host com as configurações básicas. Considerando que você tenha lido a Parte 1 e a Parte 2 da série de posts sobre o NGINX pois são requisitos para execução deste roteiro, vamos por a mão na massa 🙂
O meu ambiente está rodando o CentOS 6.4 na versão minimal, não fiz a instalação de nenhum repositório especifico, por que no futuro vou utilizar este ambiente como base de outros posts.
Antes de começar vou criar um link simbólico para o diretório de logs do NGINX para uma melhor organização.
~# cd /etc/nginx ~# ln -s /var/log/nginx logs
Pronto agora podemos começar.
Optei por utilizar o PHP-FPM, mais existe outras alternativas como o spawn-fcgi. Instale o pacote php-fpm com yum:
~# yum install php-fpm
Após a instalação do pacote será criado um serviço chamado php-fpm, para iniciar execute o comando:
~# service php-fpm start
Por padrão este serviço vai rodar na porta 9000 (http://127.0.0.1:9000), mais optei por utilizar sockets, para isso edite o arquivo www.conf e aponte para onde será armazenado o socket, no meu caso vou armazenar no diretório /tmp
~# vi /etc/php-fpm.d/www.conf
[www] ; Comente esse linha ;listen = 127.0.0.1:9000 ; Substitua por essa listen = /tmp/php-fpm.sock
Reinicie o serviço
~# service php-fpm restart
Pronto! Você vai observar que foi criado arquivo php-fpm.sock no diretório /tmp ou onde você apontou no arquivo www.conf, com isso concluímos a instalação do php-fpm 🙂
Agora vamos criar um virtual host para testar. Crie um arquivo com o nome que você preferir no diretório /etc/nginx/conf.d (no meu caso criei o arquivo nginx.conf) e copie e cole os seguintes parâmetros de configuração:
server { # Porta pela qual o Virtual Host vai responder listen 80; # Diretório onde ficar os arquivos da aplicação root /u/htdocs/webpoint/nginx/public_html; index index.php index.html index.htm; # Domínio ou Subdomínio do Virtual Host server_name nginx.lab.net; # Nome e onde será armazenado os Logs de acesso e de erro access_log logs/nginx.access.log main; error_log logs/nginx.error.log; # Nesta sessão é onde passamos os parâmetros para o NGINX encaminhar as requisições para o PHP-FPM location ~ \.php$ { root /u/htdocs/webpoint/nginx/public_html; fastcgi_pass unix:/tmp/php-fpm.sock; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_index index.php; fastcgi_intercept_errors on; } }
Crie o diretório apontado no parâmetro root
~# mkdir -p /u/htdocs/webpoint/nginx/public_html
Reinicie o NGINX para aplicar as mudanças
~# service nginx restart
Vamos criar um script php para testar
~# touch /u/htdocs/webpoint/nginx/public_html/info.php
Copie e cole o conteúdo abaixo no arquivo criado
<?php phpinfo(); ?>
E para simular o funcionamento do domínio adicione no arquivo hosts do Windows/Linux/MAC a linha abaixo:
192.168.132.138 nginx.lab.net
Agora é só acessar a url http://nginx.lab.net/info.php para visualizar a página contendo as informações sobre o PHP
Pronto, agora temo um servidor rodando NGINX, com um Virutal Host capaz de interpretar arquivos PHP com PHP-FPM, espero que o roteiro ajude até a próxima.
Primeira Parte: Instalando e configurando NGINX no CentOS 6.4 – Parte 1
Segunda Parte: Instalando e configurando NGINX no CentOS 6.4 – Parte 2
Olá amigo ótimo post, sempre procuro um tutorial pra fazer estas configurações, porem só acho em inglês e num nível muitas das vezes avançado de mais pra mim kkkk
Já tenho em meu servidor de teste (“Um Cloud”) o Nginx + php-fpm + mysql e apc pra cache instalado, fiz uns teste mandei uns arquivos pro servidor e ate conseguir usar UrlAmigavel, porem meu problema agora é na parte do virtual host eu acho!
Não consigo usar meu dominio (superhentais.com ou http://www.superhentais.com) , fico na duvida se tenho que instalar o bind no servidor ou se tenho que criar um virtual host, pois estou usando o default.conf !
O que você me sugere ?
Obrigado pela atenção!
Não é necessário instalar o bind, basta apontar o domínio para o endereço do seu Cloud (IP ou Hostname), já para configurar o virtual host basta adicionar a diretiva server{} para cada domínio ou subdomínio que você queira que o servidor responda, ou simplesmente fazer um cópia do arquivos default e alterar as propriedades server_name para domínio que você deseja e root para o local onde estão os arquivos do domínio em questão.
Espero ter ajudado 😉