nginx ve firar $ document_root on bölü?

5 Cevap php

Ben nginx için aşağıdaki yapılandırmayı kullanın: http://gist.github.com/340956

Ancak, bu yapılandırma PHP ile bir No input file specified hata neden olur. Ben bunu çözmek mümkün olmuştur tek yolu bu satırı değiştirerek olduğunu:

fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;

Not "/" $document_root ve $fastcgi_script_name arasındadır. Ben bu yanlış yapılandırma olduğu bildirilmiştir ama kimse benim yapılandırma, bu ekstra çizgi gerektirir tam olarak neden bana söylemek mümkün olmuştur.

Nasıl bu ekstra eğik kurtulabilirim?

5 Cevap

Sadece (a RHEL6 sunucuda nginx + php-fpm remi kurulum) aynı sorunla karşı karşıya, / etc / nginx / fastcgi_params aşağıdaki satırı ekleyerek bunu çözebilir

fastcgi_param  SCRIPT_FILENAME    $request_filename;

Mükemmel bir çalışma Debian nginx mevcut iken ben, RHEL eksik bu hattı bulundu.

Param PATH_TRANSLATED doğru URI olsun mu? Ben hesaplamak değil conf dosyasında değişkenlerin hemen bitiştirmek bulunuyor düşünüyorum. Aralarında bir çizgi eklerken, belki de doğru yorumlanır.

Eğer hata No input file specified olsun, URI istenen ne görmek için günlüğünü denetleyin.

try_files $uri index.php$uri; satır 3 çıkarın.

Tercih meselesi. Sürece tutarlı olarak, her iki şekilde de gayet iyi.

Yapılandırma dosyasında çizgi ekleyin ve hiçbir ek bölü sonunda vardır sağlamak ve sırasıyla veya tersi belge kök ve komut adı başlar ya.

açıkça bir kök yönergesi gibi pek eklediğinizde ne olur:

location ~ \.php$ {
    # fastcgi_split_path_info ^(.+\.php)(.*)$;
    include fastcgi.conf;

    root /var/www/my_webroot;

    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
}