Nginx Não passando parâmetros de URL

1

Brincando com o Nginx ... por algum motivo, parece que nenhum dos meus parâmetros de URL está sendo passado. Minha página inicial carrega bem, mas um URL como " link " gera erros, dizendo que o ID é um índice indefinido.

Estou assumindo que isso é algo básico que estou perdendo em um arquivo conf.

Algumas informações: conf.d / virtual.conf

server {
    listen       80;
    server_name  dev.mysite.com;
    index   index.php;
    root   /var/www/dev.mysite.com_html;

    location / {
    root /var/www/dev.mysite.com_html;
    }
    location ~ \.php(.*)$  {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_param SCRIPT_FILENAME /var/www/wap/dev.mysite.com_html/$fastcgi_script_n
ame;
    fastcgi_index index.php;
include /etc/nginx/fastcgi_params;

    }
}

Registro de erros:

2009/06/22 11:44:21 [notice] 16319#0: start worker process 16322
2009/06/22 11:44:28 [error] 16320#0: *1 FastCGI sent in stderr: "PHP Notice:  Undefined index:  id in /var/www/dev.mysite.com_html/more.php on line 10

Obrigado antecipadamente.

    
por jmccartie 22.06.2009 / 20:51

5 respostas

3

Resolvi um problema semelhante anexando $args com algo assim em sua location stanza

try_files $uri $uri/ /www/index.php?$args;
    
por 24.04.2012 / 00:19
1

Para depurar isso, a maneira mais simples é criar um arquivo phpinfo.php no diretório raiz do seu vhost. Chame phpinfo.php e defina o conteúdo para

<?php phpinfo(); ?>

Em seguida, visite o link e verifique a saída resultante

_ENV["REQUEST_URI"] /mail/phpinfo.php?id=1

Se isso for verdade, os parâmetros estão sendo transmitidos corretamente.

    
por 23.06.2009 / 12:05
0

este meus arquivos de configuração:

location ~ .*.php$ {
   include /etc/nginx/fastcgi_params;
   fastcgi_pass    127.0.0.1:1026;                         
   #spawn-fcgi -u nobody -a 127.0.0.1 -p 1026 -f /usr/bin/php-cgi
   fastcgi_index   index.php;                            

   fastcgi_param   SCRIPT_FILENAME /var/www//htdocs/$fastcgi_script_name;
}



#/etc/nginx/fastcgi_params

fastcgi_param  QUERY_STRING      
$query_string; fastcgi_param 
REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE      
$content_type; fastcgi_param 
CONTENT_LENGTH     $content_length;

fastcgi_param  SCRIPT_NAME       
$fastcgi_script_name; fastcgi_param 
REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI      
$document_uri; fastcgi_param 
DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL   
$server_protocol;

fastcgi_param  GATEWAY_INTERFACE 
CGI/1.1; fastcgi_param 
SERVER_SOFTWARE   
nginx/$nginx_version;

fastcgi_param  REMOTE_ADDR       
$remote_addr; fastcgi_param 
REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR       
$server_addr; fastcgi_param 
SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME       
$server_name;

# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param  REDIRECT_STATUS    200;
    
por 22.06.2009 / 21:53
0

Aqui está o trecho do meu arquivo de configuração. Isso funciona com o SugarCRM.

# Catchall for everything else
location / {
  root /var/www/crm.foo.com;
  access_log off;

  index index.php index.html;
  expires 1d;

  try_files $uri $uri/ /index.php?q=$uri;
}

location ~ \.php$ {
  fastcgi_pass   127.0.0.1:9000;
  fastcgi_index  index.php;
  fastcgi_buffer_size 128k;
  fastcgi_buffers 4 256k;
  fastcgi_param  SCRIPT_FILENAME  /var/www/crm.foo.com$fastcgi_script_name;
  include        /usr/local/nginx/conf/fastcgi_params;
}
    
por 07.07.2009 / 14:36
0

exatamente o que você está tentando alcançar, ou seja, usar raw php pr algum tipo de framework, eu tenho cakephp executando com sucesso usando o seguinte arquivo de configuração vhost

server {

            listen   80;
            server_name  www.domain.com;
            rewrite ^/(.*) http://domain.com/$1 permanent;

           }

server {

            listen   80;
            server_name  domain.com;

            access_log /home/public_html/domain.com/log/access.log;
            error_log /home/public_html/domain.com/log/error.log;

                location / {

                        root /home/public_html/domain.com/app/webroot;
                        index index.php;

                        if (-f $request_filename) {
                        break;
                        }
                        if (!-f $request_filename) {
                        rewrite ^/(.+)$ /index.php?url=$1 last;
                        break;
                        }


         # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        location ~ .php$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME /home/public_html/domain.com/app/webroot/index.php;
           #$fastcgi_script_name;
            include        /etc/nginx/fastcgi_params;
        }

 }
}

com o seguinte arquivo fastcgi_params

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;

fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;

fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;

fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx;

fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;
fastcgi_param  REDIRECT_STATUS    200;

você deve ser capaz de obter o que você pensa em fazer com esse assunto para obter mais informações e sua configuração principal do nginx

    
por 02.12.2009 / 00:56

Tags