Resolvi um problema semelhante anexando $args
com algo assim em sua location
stanza
try_files $uri $uri/ /www/index.php?$args;
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.
Resolvi um problema semelhante anexando $args
com algo assim em sua location
stanza
try_files $uri $uri/ /www/index.php?$args;
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.
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;
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;
}
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