NGINX acessando os arquivos no caminho errado

1

Eu tenho um aplicativo codeigniter que possui a seguinte estrutura de diretório

<HOME>
  |_ <web>
  |    |_<API>
  |         |_index.php
  |_<admin>

Os desenvolvedores têm um index.html nos diretórios e. Os arquivos codeigniter e os serviços implementados pelos desenvolvedores estão nos diretórios. Os desenvolvedores acessam os serviços anexando o nome do serviço ao domínio da seguinte forma link O nome do host é configurado como uma variável BASE PATH em um arquivo javascript.

Este aplicativo é atendido pelo NGINX rodando fast-cgi.

Embora as páginas HTML sejam carregadas, nenhum dado está sendo buscado. Então, tentamos acessar as funções digitando a URL no navegador ( link ). Nós recebemos um erro 404 Not Found. Os logs de erro contêm as seguintes entradas

2016/05/20 16:14:57 [error] 2127#0: *232 FastCGI sent in stderr: "Unable to open primary script: /home/myname/public_html/domainname/public/projectname/index.php (No such file or directory)" while reading response header from upstream, client: 14.141.163.46, server: mydomain.com, request: "GET /web/API/v1/get/Common/GetActivities HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "mydomain.com"

O servidor deve estar procurando por index.php em /home/meunome/public_html/nome_do_dominio/public/nome_do_projeto/web/API/index.php, em vez de procurá-lo na RAIZ DA WEB.

Minha configuração do NGINX é a seguinte

server {
    listen mydomain.com;
    server_name mydomain.com;
    root /home/myname/public_html/domainname/public/projectname; 

    keepalive_timeout 70;
    access_log /home/myname/public_html/domainname/log/access.log;
    error_log /home/myname/public_html/domainname/log/error.log;

    gzip_static on;

    index index.html index.php;

    location / {
            try_files $uri $uri/ /index.php?$query_string;
    }

    error_page 404 /404.html;

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
          root /usr/share/nginx/www;
    }

# pass the PHP scripts to FastCGI server listening on the php-fpm socket
    location ~ \.php$ {
            #try_files $uri =404;
            #fastcgi_pass unix:/tmp/php5-fpm.sock;
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include fastcgi_params;
            fastcgi_intercept_errors on;
    }
}

Não consigo descobrir por que o NGINX está procurando por index.php na WEB ROOT, em vez de carregar o que digitarmos no URL. Ansiosos para ouvir de qualquer pessoa que tenha enfrentado um problema semelhante.

    
por sridhar pandurangiah 20.05.2016 / 13:00

1 resposta

0

Tanto quanto eu posso ver a partir do seu pedido, você tenta obter /web/API/v1/get/Common/GetActivities , que não é uma pasta real. Você pode fazer a localização /web/API/v1/get/Common/GetActivities com a raiz /home/myname/public_html/domainname/public/projectname/web/API ou alterar o caminho da solicitação em /web/API/index.php

    
por 20.05.2016 / 14:15