Eu precisava rodar no meu servidor uma aplicação PHP, sem que isso despendesse muito esforço e tempo em configurações complicadas, mas que ao mesmo tempo fosse flexível o suficiente para compartilhar o webserver com outras aplicações que rodam em Python.
A solução foi usar o php-fpm, que para minha alegria está no repositório do Ubuntu 12.10. A ideia é instalar o pacote php5-fpm e configurar a diretiva fastcgi_pass no Nginx. Eu fiz o seguinte para começar com uma configuração básica:
fabio:~$ sudo apt-get install php5-fpm fabio:~$ sudo mkdir /var/www/teste.montefuscolo.com.br fabio:~$ echo "<?php echo 'oi mundo';" | \ sudo tee /var/www/teste.montefuscolo.com.br/index.php fabio:~$ sudo tee /etc/nginx/sites-enabled/teste.montefuscolo.com.br << EOF server { server_name teste.montefuscolo.com.br; root /var/www/teste.montefuscolo.com.br/; location / { index.php index.html index.htm; } location ~ \.php$ { include fastcgi_params; fastcgi_pass unix:/var/run/php5-fpm.sock; } } EOF fabio:~$ sudo service nginx restart
Pode ser que ao invés de um arquivo sock, o php5-fpm esta rodando em uma porta TCP, pois depende de como ele vem pré-configurado. Neste caso a configuração da diretiva fastcgi_pass pode ser um pouco diferente, como a seguinte:
fastcgi_pass 127.0.0.1:9000;
Para descobrir isso você pode consultar o arquivo de configuração do php-fpm em /etc/php5/fpm/pool.d/www.conf, procurando pela linha que começa com listen.
fabio:~$ grep ^listen /etc/php5/fpm/pool.d/www.conf listen = /var/run/php5-fpm.sock
Depois desses passos consegui uma página imprimindo ‘oi mundo’ em http://teste.montefuscolo.com.br/.