Lá vou eu de novo – principalmente com um lembrete para mim mesmo.
Estamos usando principalmente aplicativos Rails e para isso a configuração NGINX / Unicorn. Recentemente, tive que instalar a plataforma analítica Piwik, que é um aplicativo PHP. Eu só quero suporte a PHP para seu subdomínio.
(Para o que segue, presumo que o NGINX e o PHP (e o PHP-FPM, o FastCGI Process Manager para PHP, é claro) já estão instalados no sistema.
A configuração mais básica para um vhost NGINX usando PHP é:
server {
listen 80;
server_name piwik.example.de;
root /home/brewster/web/piwik;
index index.php;
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Eu tive alguns problemas com
fastcgi_pass 127.0.0.1:9000;
então eu verifiquei se algo acontece na porta 9000
lsof -i tcp:9000
Nada acontece aqui, então eu tive que mudar o arquivo de configuração PHP-FPM, que está localizado (se você estiver usando Ubuntu Linux) em
/etc/php5/fpm/php-fpm.conf
No final, adiciono essas linhas
[piwik]
listen = 127.0.0.1:9000
listen.backlog = -1
listen.allowed_clients = 127.0.0.1
; Unix user/group of processes
user = www-data
; Choose how the process manager will control the number of child processes.
pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 10
pm.max_requests = 100
; Pass environment variables
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
Depois de reiniciar NGINX e PHP-FPM
/etc/init.d/php5-fpm start
/etc/init.d/nginx restart
Eu tinha Piwik instalado e funcionando.