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 nginxO vhost padrão deve ser alterado para funcionar corretamente.
sudo vim /etc/nginx/sites-available/defaultUm 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 /tmpwget http://us.archive.ubuntu.com/ubuntu/pool/main/k/krb5/libkrb53_1.6.dfsg.4~beta1-5ubuntu2_i386.debwget http://us.archive.ubuntu.com/ubuntu/pool/main/i/icu/libicu38_3.8-6ubuntu0.2_i386.debsudo dpkg -i *.debNovamente, 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.listAtualize o apt:
sudo apt-get updateO texto resultante deve incluir dotdeb.
Agora vamos instalar o PHP (parte 1):
sudo apt-get install php5-cli php5-common php5-suhosinPrecisamos instalar o cli antes do restante, porque isso causará problemas mais tarde.
sudo apt-get install php5-fpm php5-cgiSe 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” ( ) você deve habilitá-las em seus arquivos php.ini (para fpm e cli). Se você não mudar isso, verá seu código em texto simples!
Passo 3 - Finalizando
Reinicie o nginx para acompanhar as mudanças de configuração que fizemos anteriormente.
sudo /etc/init.d/nginx restartO 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 restartTudo 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.logLembre-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.
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.