Instalando e configurando NGINX no CentOS 6.4 – Parte 3

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 PHPphpinfo

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

3 pensou em “Instalando e configurando NGINX no CentOS 6.4 – Parte 3

  1. Leomar Junio

    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!

    Responder
    1. Juliano Autor do post

      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 😉

      Responder
  2. Pingback: Instalando e configurando NGINX no CentOS 6.4 - Parte 1 - Gorobei .NET

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.