Problemas de configuração do Nginx 1.8

Problemas de configuração do Nginx 1.8

Aqui está o problema: (sou novo no NGinx, li sobre isso, mas ainda não encontrei minha solução funcional.)

Estou em um sistema Windows.

O sistema de arquivos dos meus projetos está localizado lá:

E:/www/

aqui está uma pasta do projeto que tentarei acessar posteriormente neste exemplo:

E:/www/projectTest

Eu tenho um servidor Apache funcionando bem. Gostaria de configurar um servidor Nginx em paralelo, por isso configurei meu nginx usando outra porta (veja o arquivo de configuração abaixo).

Os arquivos Nginx estão lá:

E:/nginx/

Copiei um php lá:

E:/nginx/php/

Aqui está meu exemplo 'index.php' que coloco em minhas pastas atuais para testar minha configuração de php e nginx:

<?php
    echo "THIS IS A TEST";
?>

Aqui está meu arquivo nginx.conf (removi as linhas comentadas):

worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       8111;
        server_name  localhost;
        root E:/nginx/;
        index index.php index.html index.htm;
        charset utf-8;  
        location / {
            alias E:/www/;
        }

        location /projectTest/ {
            alias E:/www/projectTest/;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
        location ~ \.php$ {
            root ../www;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root/conf/$fastcgi_script_name;
            include        fastcgi_params;
        }
    }
}

Parece que tudo está funcionando bem, o que significa que se eu quiser acessar meu 'localhost:8111/index.php' ou 'localhost:8111/projectTest/index.php', recebo o 'index.php' que coloquei lá e o o texto "ISTO É UM TESTE" aparece na minha tela.

MAS :

Percebi que, quando abro o Firebug para testar minha página, sempre recebo esta mensagem de erro (MESMO SE EU OBTER MINHA PÁGINA):

NetworkError: 404 Not Found - http://localhost:8111/
    //Same error when I call index.php in url : 
NetworkError: 404 Not Found - http://localhost:8111/index.php
    //Same error when I call my projectTest folder :
NetworkError: 404 Not Found - http://localhost:8111/projectTest/
    //Same error when I call my index.php in projectTest url : 
NetworkError: 404 Not Found - http://localhost:8111/projectTest/index.php

Aqui está como eu inicio o Nginx na linha de comando:

E:\nginx>nginx.exe
E:\nginx\php>php-cgi.exe -b 127.0.0.1:9000 -c e:/nginx/php/php.ini

em php.ini:

doc_root = "E:/www"
extension_dir = "E:/nginx/php/ext"
error_reporting = E_ALL

Deve haver algo errado na minha configuração do nginx, sou vindo do Apache então estou muito confuso com esse arquivo .conf, li muitas coisas sobre ele mas ainda não estou nada confortável com o "root" ou " alias" e com a coisa do php fast-cgi...

Obrigado pela leitura/ajuda/conselhos

Responder1

Existem vários problemas na sua configuração:

  1. Você especifica rootno nível do servidor e depois especifica aliasem locationblocos. Isso não é errado por si só, mas causa confusão facilmente.

Se todos os arquivos do seu projeto estiverem abaixo de E:/www, eu usaria estes para remover tanto o locationbloco com aliasblocos, quanto configuraria apenas root E:/wwwdentro do serverbloco.

  1. Você especifica roota diretiva dentro do seu .phpbloco de processamento. Isso não vai funcionar.

Se você não tiver nenhum requisito especial para o seu servidor web, eu usaria esta configuração para PHP:

location ~ \.php$ {
    try_files $uri =404;
    include /etc/nginx/fastcgi_params;
    fastcgi_split_path_info ^(.+\.php)(.*)$;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

Com esta configuração, o nginx procurará seus arquivos a serem servidos no E:/wwwdiretório e passará todos os arquivos PHP para PHP-FPM para execução.

informação relacionada