Finalmente encontrei um bom tutorial voltado para fazer exatamente isso. Vou descrever as etapas que eu segui, já que minha pilha LAMP foi instalada, mas o tutorial completo pode ser encontrado aqui .
Nota para o novo:
No tutorial, ele começa alternando para o usuário root com:
sudo su
No meu caso, simplesmente prefixei esses comandos em sudo
vez de alternar entre usuários, portanto, documentarei meus passos dessa maneira.
Início
Etapa 1: Instalar o MPM do Apache Worker (Módulos de vários processos)
sudo apt-get install apache2-mpm-worker
Isso substitui o prefork que eu tinha instalado, que é o padrão ao instalar o Apache.
Etapa 2: Instale o PHP5 e os módulos necessários
sudo apt-get install libapache2-mod-fastcgi php5-fpm php5
Neste ponto, você pode receber um erro ao instalar o 'libapache2-mod-fastcgi':
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package libapache2-mod-fastcgi is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or is only available from another source
E: Package 'libapache2-mod-fastcgi' has no installation candidate
Esta parte não está no tutorial acima
Para reconciliar isso, o multiverse
repositório deve ser adicionado às fontes apt.
Para fazer isso:
sudo nano /etc/apt/sources.list
Ao qual anexei as seguintes linhas:
deb http://archive.ubuntu.com/ubuntu precise multiverse
deb http://archive.ubuntu.com/ubuntu precise-updates multiverse
deb http://security.ubuntu.com/ubuntu precise-security multiverse
precise
neste caso refere-se à minha versão do Ubuntu " Precise Pangolin ".
Então agora, salve essas alterações e volte ao terminal:
sudo apt-get update
e de novo:
sudo apt-get install libapache2-mod-fastcgi php5-fpm php5
que irá (deve) agora funcionar.
Agora ative estes módulos Apache:
sudo a2enmod actions fastcgi alias
reinicie o apache
sudo service apache2 restart
Etapa 3: configuração do Apache
Para fazer o Apache funcionar com PHP-FPM, precisamos da seguinte configuração:
<IfModule mod_fastcgi.c>
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
<Directory /usr/lib/cgi-bin>
Require all granted
</Directory>
#directory statement mult be on multiple lines
</IfModule>
Nota:
Se você estiver usando uma versão mais antiga do Apache (2.3.x ou anterior), deixe de fora a linha
<Directory /usr/lib/cgi-bin> Require all granted </Directory>
Você pode verificar sua versão instalada com o comando
apache2 -version
Você pode colocá-lo na configuração global do Apache (para que seja ativado para todos os vhosts), por exemplo, em /etc/apache2/conf.d/php5-fpm.conf
(este arquivo não existe, portanto, você deve criá-lo) ou pode ser colocado em cada host que deve usar o PHP-FPM.
Eu escolho seguir a rota global, então:
sudo nano /etc/apache2/conf.d/php5-fpm.conf
cole no bloco de código acima e salve, saia. Este novo arquivo será carregado automaticamente pela configuração padrão do Apache, que carrega todos os arquivos no /etc/apache2/conf.d/
diretório
reinicie o Apache:
sudo service apache2 restart
Agora crie o seguinte arquivo PHP na raiz do documento /var/www
:
sudo nano /var/www/info.php
Adicionar:
<?php phpinfo();
saída segura.
Agora chamamos esse arquivo em um navegador (por exemplo http://your-server-ip/info.php
)
Em API do servidor, na parte superior, você deve ver FPM/FastCGI
.
Sucesso!
Para obter mais informações, como alterar o PHP-FPM para usar um soquete unix em vez da porta TCP padrão ou como configurá-lo para hosts virtuais individuais em vez de todos eles, consulte o tutorial de origem vinculado na parte superior.