Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Apa yang perlu dilakukan jika terdapat ralat semasa memuat turun fail besar dalam PHP

Apa yang perlu dilakukan jika terdapat ralat semasa memuat turun fail besar dalam PHP

藏色散人
藏色散人asal
2022-11-13 09:47:121784semak imbas

Penyelesaian kepada ralat apabila PHP memuat turun fail besar: 1. Lihat log nginx pada pelayan 2. Lihat identiti berjalan fpm 3. Edit konfigurasi nginx untuk menetapkan identiti; -R daemon / aichenk/soft/nginx/fastcgi_temp/" cuma tukar laluan.

Apa yang perlu dilakukan jika terdapat ralat semasa memuat turun fail besar dalam PHP

Persekitaran pengendalian tutorial ini: sistem Windows 7, PHP versi 8.1, komputer Dell G3.

Apakah yang perlu saya lakukan jika terdapat ralat apabila php memuat turun fail yang besar?

Ingat masalah apabila PHP gagal memuat turun fail besar

Penjelasan

php menyediakan penyimpanan dan muat turun fail, nginx berfungsi sebagai pelayan web, dan fpm melakukan menghurai.

Fenomena

Apabila memuat turun gambar 5M, ia sentiasa menggesa bahawa muat turun gagal, atau fail yang dimuat turun tidak lengkap dan hanya sebahagian daripada imej dipaparkan (berbeza untuk setiap muat turun)

Kod berkaitan muat turun php

$file = BASE_PATH . '/public/files/IMG_5727.jpg';
$size = filesize($file);
header( "Content-type: application/octet-stream" );
header("Accept-Ranges: bytes");
header("Accept-Length: {$size}");
header("Content-Disposition: attachment; filename=IMG_5727.jpg");
$fp = fopen($file, 'rb');
$readBuffer = 4096;
while (!feof($fp)) {
    echo fread($fp, $readBuffer);
}
fclose($fp);

Penyelesaian

Selepas mencari, saya pergi ke pelayan untuk menyemak log nginx, dan memang terdapat ralat mesej

2020/05/06 13:09:13 [crit] 1482#0: *23258 open() "/aichenk/soft/nginx/fastcgi_temp/4/17/0000000174" failed (13: Permis
sion denied) while reading upstream, client: 172.21.0.12, server: 192.168.5.5, request: "GET /temp/t2 HTTP/1.1", upstr
eam: "fastcgi://127.0.0.1:9001", host: "192.168.5.5:8080"

nginx menunjukkan isu kebenaran, dan akhirnya menyatukan identiti berjalan nginx dengan fpm

# fpm配置
[www]
user = daemon
group = daemon
 
# 查看到fpm运行身份为`daemon`,编辑nginx配置设置身份
 
# nginx配置
#user  nobody;
user daemon;

Pengguna pemilikan laluan sebelumnya berubah

chown -R daemon /aichenk/soft/nginx/fastcgi_temp/

Ujian lulus

Penjelasan

Analisis peribadi: Ralat ini sebenarnya tercermin apabila data diletakkan dalam penimbal Secara teori, bukan sahaja fail besar, tetapi juga jumlah penghantaran data melebihi nilai tertentu akan mengalami masalah ini Apabila menyediakan persekitaran Hanya beri perhatian apabila berbuat demikian

Pembelajaran yang disyorkan: "Tutorial Video PHP"

Atas ialah kandungan terperinci Apa yang perlu dilakukan jika terdapat ralat semasa memuat turun fail besar dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn