2017-02-25 4 views
1

Kürzlich habe ich begonnen, etwas, was wie verzerrte Daten aussieht, als Antworten für die Seiten, die von meinem CodeIgniter 2 basierten Code serviert werden. Wenn ich eine info.php-Seite einfüge, kommt die Seite korrekt zurück.CodeIgniter 2, PHP 5.6 und Nginx, die zufälligen Inhalt zurückgeben?

Der Server läuft mit Nginx 1.6.2 auf einem Raspbian basierten Host mit PHP 5.6 (PHP Version 5.6.29-0 + deb8u1).

Ich habe meine Codeänderungen von meinem Projekt auf die letzte gute Version zurückgesetzt, aber das scheint das Problem nicht zu lösen. Die Komprimierung ist in der CI2-Konfiguration für das Projekt deaktiviert.

Der PHP-Abschnitt der Konfigurations für den virtuellen Host ist:

location ~ \.php$ { 
    try_files $uri =404; 
    fastcgi_split_path_info ^(.+\.php)(/.+)$; 
    fastcgi_pass unix:/var/run/php5-fpm.sock; 
    fastcgi_index index.php; 
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
    include fastcgi_params; 
    # added to try to fix the garbled response, no change 
    gzip off; 
} 

Die HTTP-Antwort, sobald gzip angegeben ist ausgeschaltet werden soll:

HTTP/1.1 200 OK 
Server: nginx/1.6.2 
Date: Sat, 25 Feb 2017 00:34:08 GMT 
Content-Type: text/html; charset=UTF-8 
Transfer-Encoding: chunked 
Connection: keep-alive 

habe ich versucht, den Host-Neustart Neustart der Nginx, der php5-fpm und ich bin derzeit ratlos. Ich habe php5-fpm neu installiert.

Ein Beispiel für den Zufall verstümmelte Daten:

Example of the garbled data

Hat jemand irgendwelche Ideen, was soll ich suchen, dieses Problem zu lösen?

+0

Überprüfen Sie, ob es durch CI GZip Seiten selbst verursacht wird, e.i. '$ config ['compress_output']' Einstellung. – Vaviloff

+0

Es wurde auf false gesetzt, stellt sich heraus, einige Dateien wurden irgendwie beschädigt. –

Antwort

0

Es stellt sich heraus, dass das Problem auf einige beschädigte Dateien zurückzuführen ist.

Ich arbeitete dies aus, indem Sie das aktuelle Projekt beiseite schieben und eine neue git clone tun, und versuchte dann erneut auf die Seite zuzugreifen, und es wurde korrekt gerendert. Doing a diff offenbarte eine Anzahl von Dateien im Problemprojekt, die offensichtlichen Abfall enthielten. Git hat diese Dateien nicht als modifiziert markiert.

Auf einer Kopie des korrupten Projektes sah ich, dass ich das Problem des folgenden zu lösen versucht haben könnte:

git reset --hard 

Diese aufgelöst, aber auf dem Original tat es nicht. Der einzige Weg, dies auf dem Original zu erhalten repariert war zu ‚berühren‘ alle Dateien:

find . -exec touch {} \; 
git reset --hard 

Nicht sicher, ob dies etwas mit Git oder ein Dateisystem Problem zu tun war, da diese auf einer SD-Karte ist, aber Die Dinge sind jetzt gelöst.