Problema ao configurar o php-fpm com nginx

1

Primeiro de tudo: não sou especialista em configurar as coisas. Isso é muito novo para mim, então, minhas desculpas antecipadamente.

No trabalho, temos um servidor Centos. O cara que trabalhou aqui antes de instalar o nginx. Nós precisamos criar um site php, então, obviamente, eu preciso configurar o php e fazê-lo funcionar com o nginx.

Fazendo um conto muito curto, eu tive que substituir o binário nginx por um novo (porque o antigo era compilar sem o fast-cgi), e eu tive que recompilar e instalar o php (porque a nova versão tem fpm). Então eu luto com os arquivos de configuração, fazendo isso nginx.conf (não todo o arquivo)

user php;
location ~ \.php$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            include        fastcgi_params;
     }

e descomente alguns parâmetros em php-fpm (para muitos detalhes aqui, mas o importante é que group e user são "php")

Eu nunca pude iniciar o php-fpm com as instruções do livro

sudo /usr/sbin/php-fpm start

Mas depois de olhar para a net, achei isso

sudo /usr/local/sbin/php-fpm --fpm-config=/usr/local/etc/php-fpm.conf

Isso funcionou (eu acho)

Eu reiniciei o nginx. Mas ... nada acontece com php ... Minhas chamadas para arquivos php (via firefox)  nem aparece no log (/opt/nginx/logs/error.log)

Estou muito, muito exausto e perdido ... Alguém poderia me ajudar, por favor ...: (

Obrigado antecipadamente

    
por Nisanio 25.01.2011 / 19:36

3 respostas

1

primeiro verifique se o php-fpm está escutando na porta 9000: netstat -an | grep LISTEN | grep 9000 se retornar algo como: tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN então o php-fpm funciona e você deve checar sua configuração nginx. ou seja, verifique se você definiu server_name correto. deve ser o mesmo que você entra no seu navegador. Se você usar algum outro URL do que o localhost, certifique-se de ter o registro DNS correto para esses URLs. minha configuração para o php-fpm é:

    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /var/www/somesite/htdocs$fastcgi_script_name;
        fastcgi_param  DOCUMENT_ROOT  /var/www/somesite/htdocs;
        include        /etc/nginx/fastcgi_params;
    }

esta configuração funciona em muitos dos meus sites.

    
por 26.01.2011 / 08:56
0

Eu acredito que o php-fpm e o fastcgi são duas formas separadas de integrar nginx e PHP. Eu acho que você precisa usar um método ou outro. Este guia para o CentOS deve levá-lo ao estádio usando o fastcgi. link

Eu segui com sucesso um artigo semelhante de sua biblioteca para configurar o Nginx / fastcgi / PHP no Ubuntu.

    
por 25.01.2011 / 20:36
0
    location ~ \.php$ {
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            #NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
            include /etc/nginx/fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_pass localhost:9000;
    }

Isso funciona para mim no nginx 0.8.54. O "fastcgi_param SCRIPT_FILENAME $ document_root $ fastcgi_script_name;" é provavelmente a única coisa que você precisa mudar. Ele usa a diretiva "root /var/www/example.com/yoursite" na configuração do seu servidor. Eu tive que jogar erros em mim antes no passado, servindo apenas uma página em branco. Você pode ver os erros normalmente em /var/log/nginx/error.log. Além disso, você configurou o php-fpm para rodar na porta TCP ou no soquete? Verifique seu php-fpm.conf, acho que o padrão é a porta TCP 9000. esta página do nginx.org tem um monte de configurações padrão para vários aplicativos da web de código aberto (wordpress, drupal, etc.).

    
por 26.01.2011 / 06:48