PHP e Nginx · 4 min read · Jan 23, 2026

Instalando PHP 5.3, Nginx E PHP-fpm No Ubuntu/Debian

Instalando PHP 5.3, Nginx E PHP-fpm No Ubuntu/Debian

Versão 1.1
Siga-me no Twitter

Como o Apache é, na maioria das vezes, um processo que consome muita memória, as pessoas começaram a procurar maneiras diferentes de hospedar seus sites. O Apache claramente não é o único servidor web disponível. Alguns bons exemplos são lighttpd e nginx. Neste tutorial, vou mostrar como instalá-lo em seu servidor Ubuntu. Este tutorial também se aplica ao Debian, embora haja apenas uma diferença muito pequena.

Pronto? Vamos começar, certo.

Passo 0 - Notas Preliminares

Para completar este tutorial, presumo que você tenha instalado um sistema base de Debian ou Ubuntu. Como isso pode ser feito, pode ser lido em diferentes tutoriais. Este tutorial foca apenas em fazer o nginx+php funcionar sem muita complicação.

Passo 1 - Nginx

Instalar o nginx é o primeiro passo que temos que fazer. Isso pode ser facilmente feito baixando-o do repositório.

sudo apt-get install nginx

O vhost padrão deve ser alterado para funcionar corretamente.

sudo vim /etc/nginx/sites-available/default

Um bom ponto de partida para sua configuração é:

server {
    listen   80;
    server_name  localhost;
    access_log  /var/log/nginx/localhost.access.log;

## Localização padrão
    location / {
        root   /var/www;
        index  index.php;
    }

## Imagens e conteúdo estático são tratados de forma diferente
    location ~* ^.+\.(jpg|jpeg|gif|css|png|js|ico|xml)$ {
      access_log        off;
      expires           30d;
      root /var/www;
    }

## Parse todos os arquivos .php no diretório /var/www
    location ~ .php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        fastcgi_pass   backend;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /var/www$fastcgi_script_name;
        include fastcgi_params;
        fastcgi_param  QUERY_STRING     $query_string;
        fastcgi_param  REQUEST_METHOD   $request_method;
        fastcgi_param  CONTENT_TYPE     $content_type;
        fastcgi_param  CONTENT_LENGTH   $content_length;
        fastcgi_intercept_errors        on;
        fastcgi_ignore_client_abort     off;
        fastcgi_connect_timeout 60;
        fastcgi_send_timeout 180;
        fastcgi_read_timeout 180;
        fastcgi_buffer_size 128k;
        fastcgi_buffers 4 256k;
        fastcgi_busy_buffers_size 256k;
        fastcgi_temp_file_write_size 256k;
    }

## Desabilitar visualização de .htaccess & .htpassword
    location ~ \/\.ht {
        deny  all;
    }
}  
upstream backend {  
        server 127.0.0.1:9000;  
}  
 

Ok, terminamos aqui. Agora vamos instalar os arquivos necessários para o PHP.

Passo 2 - Instalando PHP

Muitos sites dependem do PHP para fornecer conteúdo dinâmico, seja um wiki, software de fórum, weblog ou algo completamente diferente.

Se você estiver rodando o Ubuntu, primeiro precisamos resolver duas dependências necessárias para os pacotes dotdeb. Se você estiver rodando a versão amd64, deve substituir i386 por amd64.

Para Debian, você não precisará fazer isso!

cd /tmp
wget http://us.archive.ubuntu.com/ubuntu/pool/main/k/krb5/libkrb53_1.6.dfsg.4~beta1-5ubuntu2_i386.deb
wget http://us.archive.ubuntu.com/ubuntu/pool/main/i/icu/libicu38_3.8-6ubuntu0.2_i386.deb
sudo dpkg -i *.deb

Novamente, isso é apenas necessário se você estiver no Ubuntu.

O restante do tutorial se aplica tanto ao Ubuntu quanto ao Debian.

Precisamos adicionar o repositório dotdeb às fontes do APT, para que possamos usar o PHP 5.3 e o php-fpm empacotados:

sudo echo "deb http://php53.dotdeb.org stable all" >> /etc/apt/sources.list

Atualize o apt:

sudo apt-get update

O texto resultante deve incluir dotdeb.

Agora vamos instalar o PHP (parte 1):

sudo apt-get install php5-cli php5-common php5-suhosin

Precisamos instalar o cli antes do restante, porque isso causará problemas mais tarde.

sudo apt-get install php5-fpm php5-cgi

Se você planeja usar um banco de dados ou requer módulos específicos (mcrypt, ldap, snmp etc), você pode instalá-los também.

Ok, agora temos nginx e PHP.

Uma observação menor: Se você estiver usando “php short tags” (

Passo 3 - Finalizando

Reinicie o nginx para acompanhar as mudanças de configuração que fizemos anteriormente.

sudo /etc/init.d/nginx restart

O reinício deve ter ocorrido sem problemas.

Após instalar o php5-fpm, ele deve ter sido iniciado. Se você alterou seus arquivos php.ini, precisará reiniciar o php5-fpm.

sudo /etc/init.d/php5-fpm restart

Tudo certo. Eles devem agora estar funcionando.

Passo 4 - Testando

Para testar se a execução do PHP está funcionando, crie um arquivo index.php em /var/www com o seguinte conteúdo:

Visite seu servidor web e você deve ser capaz de ver o phpinfo gerado. Se não, algo deu errado.

Passo 5 - Solução de Problemas & Notas Finais

Se você não viu o phpinfo, pode haver algo errado. Para rastrear o que deu errado, você pode verificar o log de erros do nginx:

sudo tail /var/log/nginx/error.log

Lembre-se, se você alterou seu php.ini, precisará reiniciar o php5-fpm. Reiniciar o nginx não é necessário.

No meu exemplo de configuração, habilitei a interceptação de erros do fastcgi. Se um erro sério ocorrer (por exemplo, um “não é possível redeclarar a classe xyz”), o nginx pode capturar essa página e mostrar uma página de erro “bonita” que algo deu errado. Dessa forma, menos informações são fornecidas caso algo esteja realmente errado.

Se você não gosta disso, pode desativá-lo.

Se o php5-fpm não estiver em execução, seus arquivos PHP não poderão ser analisados e o nginx mostrará ao usuário uma página de erro.

Bem, acho que terminamos e agora você pode servir PHP com seu novo servidor web baseado em nginx. O Nginx é muito bom e você pode configurar muito. Se precisar de reescritas, esteja ciente de que o nginx não funciona com arquivos .htaccess. Você precisará alterar suas configurações de vhost para que as reescritas funcionem.

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.