configuração nginx para mapear chamadas api para módulos php específicos

1

Estou tentando construir uma configuração nginx para um aplicativo de página única que acessa o código PHP por meio de uma API. O que estou tentando fazer é mapear uma chamada ajax do formulário /api/xxx por meio de um arquivo em project_directory/php/xxx.php

Então eu tenho um bloco de localização como este: -

location ~* /api/(\w+) {
    root /path/to/project_directory;
    try_files /php/$1.php =404;
... call fastcgi gateway
}

Eu preciso configurar o $ fastcgi_script_name para que ele defina todas as variáveis de ambiente corretas. Isso acontece quando os arquivos de teste são correspondidos?

    
por akc42 26.11.2015 / 13:16

1 resposta

1

Você precisa ignorar $fastcgi_script_name e substituir as diretivas fastcgi_param pelo seu valor mapeado novamente. Seu bloco de localização pode começar como:

location ~* /api/(\w+) {
  root /path/to/project_root;
  set $my_script_name /php/$1;
  try_files $my_script_name =404;
  fastcgi_param SCRIPT_NAME     $my_script_name;
  fastcgi_param SCRIPT_FILENAME $document_root$my_script_name;
  ...
}

Obviamente, comentando as diretivas fastcgi_param conflitantes.

    
por 26.11.2015 / 13:51

Tags