Nginx + PHP-FPM, scripts php que não estão em execução

2

Eu instalei uma pilha LEMP no Linode usando um dos scripts de pilha que eles oferecem . Na verdade, não o executei na inicialização, mas, em vez disso, inseri os comandos manualmente, pois parecia não instalar tudo corretamente.

De qualquer forma, depois de instalar tudo e iniciar o servidor e o php-fpm sem erro, criei uma página phpinfo(); no local nginx padrão ( /var/www/index.php ). O problema é que ele não está executando o script e, em vez disso, é exibido como um arquivo estático. Alguém sabe como eu poderia abordar isso?

    
por cwallenpoole 12.09.2010 / 04:24

2 respostas

1

Deixe-me enviar para você alguns trechos relevantes do meu tutorial "nginx-php-fpm-php-apc-postgres", espero que isso ajude você.

Primeiramente, instale os pacotes necessários:

apt-get install nginx php5-fpm php5-pgsql php5-gd php5-curl php-apc postgresql imagemagick

Eu suponho que você tenha os pacotes relevantes, como php5-fpm, instalados.

Agora configure o "vhost":

vim /etc/nginx/sites-available/www.domain.tld

A seguir, você verá minha configuração de exemplo:

server {
listen 80;
server_name domain.tld www.domain.tld;

access_log /var/log/nginx/domain.access_log;
error_log /var/log/nginx/domain.error_log;

root /var/www/www.domain.tld;
index index.php index.htm index.html;

location ~ .php$ {
fastcgi_pass   127.0.0.1:9000;
fastcgi_index  index.php;
fastcgi_param  SCRIPT_FILENAME /var/www/www.domain.tld$fastcgi_script_name;
include fastcgi_params;
try_files $uri =404;
}
}

Verifique se os processos corretos estão sendo executados posteriormente:

/etc/init.d/php5-fpm restart
/etc/init.d/nginx start

Veja o tutorial completo aqui: link

Eu acho que o seu arquivo de configuração para o vhost está faltando algumas das partes que eu postei acima ou o php5-fpm não está rodando.

    
por 18.03.2012 / 13:39
0

Erm, usar PHP no nginx é bastante simples, você só precisa usar o FastCGI para PHP.

  1. Estou iniciando um runtime FastCGI para PHP com spawn-fcgi :

    spawn-fcgi -C 3 -u www-data -s /var/run/php-fcgi.sock -P /var/run/php-fcgi.pid -- /usr/bin/php5-cgi
    

    Verifique se todas as permissões estão corretas.

  2. Então, isso vai para minha configuração nginx:

    upstream php-fcgi {
      server unix:/var/run/php-fcgi.sock;
    }
    

    Isso faz parte do contexto http .

    Dentro de um contexto server , que define seu vhost, por assim dizer, é o seguinte:

    location ~ \.php$ {
      fastcgi_pass php-fcgi;
      include /etc/nginx/fastcgi.conf;
    }
    

    Observe o arquivo /etc/nginx/fastcgi.conf . O arquivo deve estar presente em todos os pacotes nginx que eu vi até agora, se não, google-lo. Você encontrará em todos os lugares.

Usar o spawn-fcgi, que faz parte do lighttpd, parece pouco ortodoxo, mas é a solução recomendada pelas pessoas do nginx.

    
por 12.09.2010 / 05:19