Il debug il famoso FastCGI inviato in stderr: “Primarie script sconosciuto”, mentre la lettura di intestazione di risposta da monte

Ha COSÌ tanti articoli di stampa che citano questo codice di errore:

FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream...

Che probabilmente significa che questo messaggio di errore è più o meno inutile.

Il messaggio ci dice che il FastCGI gestore non come quello che è stato inviato per qualche motivo. Il problema è che a volte non abbiamo idea di quale sia il motivo.

Quindi sto ri-affermando la domanda: Come facciamo a debug questo codice di errore?

Considerare la situazione in cui abbiamo un sito semplice, con solo il phpinfo.php file. Inoltre, c’è un molto semplice nginx config, come segue:

server {
    server_name testsite.local;

    root /var/local/mysite/;

    location / {
        index index.html index.htm index.php;
    }

    location ~ \.php$ {
        include /etc/nginx/fastcgi_params;
        fastcgi_pass  fastcgi_backend;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

Come possiamo vedere di uscita/log esattamente quello che fastcgi_params ha mandato a lo script?

Come possiamo vedere il messaggio di errore effettivo? Nel mio caso, sto utilizzando php-fpm. Non ha informazioni nel log su questo errore. I registri non aggiungere tutte le righe di questo errore. C’è una modalità dettagliata per php-fpm?

/var/log/php-fpm/error.log
/var/log/php-fpm/www-error.log

Ho provato a impostare questo in php-fpm.file conf

log_level = notice

e questo in php-fpm.d/www.file conf:

catch_workers_output = yes
InformationsquelleAutor 010110110101 | 2016-02-08



3 Replies
  1. 52

    Per rispondere alla tua domanda:

    1. in php-fpm.d/www.file conf:

    impostare l’accesso.voce del registro:

    access.log = /var/log/$pool.access.log
    1. riavviare php-fpm servizio.

    2. tenta di accedere la pagina

    3. cat /var/log/www.di accesso.registro, è vedere i log di accesso come:

    - - 10/Nov/2016:19:02:11 +0000 "GET /app.php" 404
    - - 10/Nov/2016:19:02:37 +0000 "GET /app.php" 404

    Per risolvere “dello script Principale sconosciuto” problema:

    • se vedi “GET/”, senza una corretta php il nome del file, allora è il tuo server nginx. conf problema.

    • se vedi “GET /app.php” con 404, significa nginx è correttamente passando il nome del file di script, ma php-fpm impossibile accedere a questo file (user “php-fpm:php-fpm” non hai accesso al tuo file, che intrappolato me per 3 ore)

    Spero che la mia risposta aiuta.

    • Ero cieco e ora vedo…
    • so che questo è veramente vecchia risposta, ma questo rende più senso per me che l’altra risposta. Per me, il punto 2 sembra essere il caso, ma non ho alcun utente “php-fpm”. Il mio utente ha accesso al file. Non certo perché il suo accadendo anche adesso. Qualsiasi aiuto sarebbe apprezzato.
    • Se si vuole veramente vedere il primario insieme di script da nginx è necessario abilitare il access format linea in http://www.conf file. È più dettagliato di quello di default e contiene %f e questo è il vero file di script. ; %f: script filename ; Default: "%R - %u %t \"%m %r\" %s" access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%"
    • bella spiegazione semplice. Complimenti e grazie.
    • Non dimenticate di riavviare il php-fpm (es. systemctl restart php7.3-fpm)
  2. 0

    Per MacOs utenti, in caso se qualcuno ha rilevato come nella mia situazione:

    Avevo iniziato php servizio:

    sudo brew start php72

    dato che l’ho usato il comando “sudo” autorizzazioni era diverso. Ho dovuto interrompere e avviare php servizio senza sudo.

    sudo brew stop php72
    brew start php72

    Speranza aiuta a qualcuno.

    • Vi prego di essere più specifico nella risposta come questa soluzione è solo per MAC OS e non linux
    • Oops.. Sicuramente ragione! Ho appena aggiunto. Grazie!
  3. 0

    Controllare il radice‘s posizione e anche l’esistenza di file sotto di essa, ho incontrato questo errore causa della percorso Principale errore di BATTITURA .

Lascia un commento