it-swarm.com.de

Empfang 404 beim Hochladen einer Datei, die größer als 10 KB ist

Ich habe ein Formular zum Hochladen von Dateien mit AJAX Code erstellt, der perfekt auf meinem lokalen Host (xampp/Apache) ausgeführt wird. Ich kann bis zu 256 MB große Dateien hochladen. HTTP verwenden.

Wenn ich diesen Code jedoch auf meinen Nginx-Server auf aws ec2 hochlade, erhalte ich eine 404, wenn ich versuche, eine Datei hochzuladen, die größer als 10 KB ist (ja, das ist ein K). Ich benutze HTTPS.

Ich dachte, dass die Einstellungen in der php.ini möglicherweise falsch sind, und fügte diesen Code dem Formular zum Hochladen von Dateien hinzu.

<script>
    console.log("max_execution_time = <?php echo(ini_get('max_execution_time')); ?>");
    console.log("max_input_time = <?php echo ini_get('max_input_time'); ?>");
    console.log("memory_limit = <?php echo ini_get('memory_limit'); ?>");
    console.log("post_max_size = <?php echo ini_get('post_max_size'); ?>");
    console.log("file_uploads = <?php echo ini_get('file_uploads'); ?>");
    console.log("upload_max_filesize = <?php echo ini_get('upload_max_filesize'); ?>");
    console.log("max_file_uploads = <?php echo ini_get('max_file_uploads'); ?>");
    console.log("default_socket_timeout = <?php echo ini_get('default_socket_timeout'); ?>");
</script>

Ich bekomme diese Konsolenausgabe.

Notieren Sie die 0, gefolgt von "File upload success". Hier ist 0 der Dateifehlercode, d. H. $_FILES['ninja_file']['error']

Die beiden Dateien, die ich in diesem Fall hochgeladen habe, waren 9 KB groß.

Wenn Sie die Post ... 404 () am unteren Rand sehen, war das darauf zurückzuführen, dass ich versucht habe, eine 22-KB-Datei hochzuladen.

enter image description here

In der nginx.conf habe ich gesetzt

client_max_body_size 0;

Wenn Sie die Größe auf 0 setzen, wird die Überprüfung der Größe des Clientanfragetexts gemäß den Dokumenten http://nginx.org/en/docs/http/ngx_http_core_module.html#client_max_body_size deaktiviert. )

Technologie:

  • Wordpress 4.7
  • PHP 7.0
  • NGINX 1.10
1
nu everest

Überprüfen Sie die Datei "nginx error.log" (basierend auf der Position "nginx.conf error_log").

$ Sudo nano /path/to/nginx/error.log

Bei /var/lib/nginx ist ein Fehler "Berechtigung verweigert" aufgetreten. Dies geschah, weil ich die Einstellung user in der Datei nginx.conf von geändert habe

user nginx;

zu etwas anderem. In diesem Fall,

user iam;

Lösung:

Überprüfen Sie den aktuellen Benutzer- und Gruppenbesitz in/var/lib/nginx.

$ ls -ld /var/lib/nginx
drwx------ 3 nginx nginx 4096 Aug  5 00:05 /var/lib/nginx

Dies sagt Ihnen, dass ein möglicherweise nicht vorhandener Benutzer und eine Gruppe mit dem Namen nginx diesen Ordner besitzen. Dies verhindert das Hochladen von Dateien.

Ändern Sie in diesem Fall den Ordnerbesitz in den in nginx.conf definierten Benutzer iam (Sudo ist möglicherweise nicht erforderlich).

$ Sudo chown -Rf iam:iam /var/lib/nginx

Stellen Sie sicher, dass es tatsächlich geändert wurde.

$ ls -ld /var/lib/nginx
drwx------ 3 iam iam 4096 Aug  5 00:05 /var/lib/nginx

Der Fehler "Erlaubnis verweigert" sollte jetzt verschwinden. Überprüfen Sie das error.log (basierend auf dem Speicherort von nginx.conf error_log).

$ Sudo nano /path/to/nginx/error.log

Wenn das nicht funktioniert, müssen Sie möglicherweise nginx und php-fpm neu laden.

$ Sudo service nginx reload
$ Sudo service php-fpm reload
0
nu everest