PHP e Apache · 5 min read · Jan 09, 2026

Usando PHP5-FPM Com Apache2 No Ubuntu 12.04 LTS

Usando PHP5-FPM Com Apache2 No Ubuntu 12.04 LTS

Versão 1.0
Autor: Falko Timme
Siga-me no Twitter

Este tutorial mostra como você pode instalar um servidor web Apache2 em um servidor Ubuntu 12.04 LTS com suporte a PHP5 (através do PHP-FPM) e MySQL. PHP-FPM (FastCGI Process Manager) é uma implementação alternativa do PHP FastCGI com alguns recursos adicionais úteis para sites de qualquer tamanho, especialmente sites mais movimentados.

Não dou nenhuma garantia de que isso funcionará para você!

1 Nota Preliminar

Neste tutorial, uso o nome do host server1.example.com com o endereço IP 192.168.0.100. Essas configurações podem diferir para você, então você deve substituí-las onde apropriado.

Estou executando todos os passos deste tutorial com privilégios de root, então certifique-se de que você está logado como root:

sudo su

2 Instalando MySQL 5

Primeiro, instalamos o MySQL 5 assim:

apt-get install mysql-server mysql-client

Você será solicitado a fornecer uma senha para o usuário root do MySQL - essa senha é válida para o usuário root@localhost, bem como para [email protected], então não precisamos especificar uma senha de root do MySQL manualmente mais tarde:

Nova senha para o usuário “root” do MySQL: <– sua-senhadorootsql
Repita a senha para o usuário “root” do MySQL: <– sua-senhadorootsql

3 Instalando Apache2

O Apache2 está disponível como um pacote do Ubuntu. Precisamos do pacote apache2-mpm-worker que podemos instalar assim:

apt-get install apache2-mpm-worker

Agora dirija seu navegador para http://192.168.0.100, e você deve ver a página de placeholder do Apache2 (Funciona!):

O diretório raiz do documento padrão do Apache é /var/www no Ubuntu, e o arquivo de configuração é /etc/apache2/apache2.conf. Configurações adicionais são armazenadas em subdiretórios do diretório /etc/apache2, como /etc/apache2/mods-enabled (para módulos do Apache), /etc/apache2/sites-enabled (para hosts virtuais) e /etc/apache2/conf.d.

4 Instalando PHP5

Podemos fazer o PHP5 funcionar no Apache2 através do PHP-FPM e do módulo mod_fastcgi do Apache, que instalamos da seguinte forma:

apt-get install libapache2-mod-fastcgi php5-fpm php5

O PHP-FPM é um processo daemon (com o script init /etc/init.d/php5-fpm) que executa um servidor FastCGI na porta 9000.

Em seguida, habilite os seguintes módulos do Apache…

a2enmod actions fastcgi alias

… e reinicie o Apache:

/etc/init.d/apache2 restart

5 Configurando o Apache

Para fazer o Apache funcionar com o PHP-FPM, precisamos da seguinte configuração:

| AddHandler php5-fcgi .php Action php5-fcgi /php5-fcgi Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -host 127.0.0.1:9000 -pass-header Authorization |

(Para saber mais sobre a diretiva FastCgiExternalServer, dê uma olhada em http://www.fastcgi.com/mod_fastcgi/docs/mod_fastcgi.html#FastCgiExternalServer.)

Você pode colocá-la na configuração global do Apache (para que seja habilitada para todos os vhosts), por exemplo, em /etc/apache2/conf.d/php5-fpm.conf (este arquivo não existe, então você deve criá-lo), ou pode colocá-la em cada vhost que deve usar o PHP-FPM. Eu quero usar o PHP-FPM com o vhost padrão, então abro seu arquivo de configuração de vhost /etc/apache2/sites-available/default…

vi /etc/apache2/sites-available/default

… e coloco a seguinte seção em algum lugar entre :

| [...] AddHandler php5-fcgi .php Action php5-fcgi /php5-fcgi Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -host 127.0.0.1:9000 -pass-header Authorization [...] |

Reinicie o Apache depois:

/etc/init.d/apache2 restart

Agora crie o seguinte arquivo PHP no diretório raiz do documento /var/www:

vi /var/www/info.php

| |

Agora chamamos esse arquivo em um navegador (por exemplo, http://192.168.0.100/info.php):

Como você pode ver, o PHP5 está funcionando, e está funcionando através do FPM/FastCGI, como mostrado na linha Server API. Se você rolar mais para baixo, verá todos os módulos que já estão habilitados no PHP5. O MySQL não está listado lá, o que significa que ainda não temos suporte ao MySQL no PHP5.

6 Obtendo Suporte ao MySQL No PHP5

Para obter suporte ao MySQL no PHP, podemos instalar o pacote php5-mysql. É uma boa ideia instalar alguns outros módulos do PHP5 também, pois você pode precisar deles para suas aplicações. Você pode procurar módulos PHP5 disponíveis assim:

apt-cache search php5

Escolha os que você precisa e instale-os assim:

apt-get install php5-mysql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

Agora recarregue o PHP-FPM:

/etc/init.d/php5-fpm reload

Agora recarregue http://192.168.0.100/info.php em seu navegador e role para baixo até a seção de módulos novamente. Você deve agora encontrar muitos novos módulos lá, incluindo o módulo MySQL:

7 phpMyAdmin

O phpMyAdmin é uma interface web através da qual você pode gerenciar seus bancos de dados MySQL. É uma boa ideia instalá-lo:

apt-get install phpmyadmin

Você verá as seguintes perguntas:

Servidor web para reconfigurar automaticamente: <– apache2
Configurar banco de dados para phpmyadmin com dbconfig-common? <– Não

Depois, você pode acessar o phpMyAdmin em http://192.168.0.100/phpmyadmin/:

8 Fazendo o PHP-FPM Usar um Socket Unix

Por padrão, o PHP-FPM está ouvindo na porta 9000 em 127.0.0.1. Também é possível fazer o PHP-FPM usar um socket Unix, o que evita a sobrecarga do TCP. Para fazer isso, abra /etc/php5/fpm/pool.d/www.conf…

vi /etc/php5/fpm/pool.d/www.conf

… e faça a linha listen ficar assim:

| [...] ;listen = 127.0.0.1:9000 listen = /tmp/php5-fpm.sock [...] |

Então recarregue o PHP-FPM:

/etc/init.d/php5-fpm reload

Em seguida, passe pela sua configuração do Apache e todos os seus vhosts e mude a linha FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -host 127.0.0.1:9000 -pass-header Authorization para FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -socket /tmp/php5-fpm.sock -pass-header Authorization, por exemplo, assim:

vi /etc/apache2/sites-available/default

| [...] AddHandler php5-fcgi .php Action php5-fcgi /php5-fcgi Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -socket /tmp/php5-fpm.sock -pass-header Authorization [...] |

Finalmente, recarregue o Apache:

/etc/init.d/apache2 reload

9 Links

Sobre o Autor

Falko Timme é o proprietário da Timme Hosting (hospedagem web ultra-rápida com nginx). Ele é o mantenedor principal do HowtoForge (desde 2005) e um dos desenvolvedores principais do ISPConfig (desde 2000). Ele também contribuiu para o livro da O’Reilly “Administração de Sistemas Linux”.

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.