溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

php下載大文件時(shí)錯(cuò)誤如何解決

發(fā)布時(shí)間:2022-11-14 09:21:23 來(lái)源:億速云 閱讀:145 作者:iii 欄目:編程語(yǔ)言

這篇“php下載大文件時(shí)錯(cuò)誤如何解決”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來(lái)看看這篇“php下載大文件時(shí)錯(cuò)誤如何解決”文章吧。

php下載大文件時(shí)錯(cuò)誤的解決辦法:1、在服務(wù)器上查看nginx日志;2、 查看到fpm運(yùn)行身份;3、編輯nginx配置設(shè)置身份;4、通過(guò)“chown -R daemon /aichenk/soft/nginx/fastcgi_temp/”更改路徑即可。

php下載大文件時(shí)錯(cuò)誤怎么辦?

記PHP下載大文件失敗的一次坑

說(shuō)明

php提供文件的儲(chǔ)存和下載,nginx作為web服務(wù)器,fpm做解析。

現(xiàn)象

當(dāng)下載一個(gè)5M大小的圖片時(shí),總提示下載失敗,或下載下來(lái)的文件不完整,僅顯示部分圖像(每次下載不一樣)

php下載相關(guān)代碼

$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);

解決

找了一圈后去服務(wù)器上查看了nginx日志,確實(shí)有報(bào)錯(cuò)信息

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顯示權(quán)限問(wèn)題,最終把nginx運(yùn)行身份與fpm進(jìn)行統(tǒng)一

# fpm配置
[www]
user = daemon
group = daemon
 
# 查看到fpm運(yùn)行身份為`daemon`,編輯nginx配置設(shè)置身份
 
# nginx配置
#user  nobody;
user daemon;

之前路徑歸屬用戶更改

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

測(cè)試通過(guò)

解釋

個(gè)人分析這次錯(cuò)誤其實(shí)是數(shù)據(jù)放到緩沖區(qū)才體現(xiàn),理論上不光是大文件,數(shù)據(jù)傳輸量超過(guò)一定值也會(huì)有這個(gè)問(wèn)題,在搭建環(huán)境的時(shí)候注意就可以了。

PHP開發(fā)環(huán)境搭建工具有哪些

一、phpStudy,是一個(gè)新手入門最常用的開發(fā)環(huán)境。

二、WampServer,WampServer也同樣的也是和phpStudy一樣操作簡(jiǎn)單對(duì)小白比較友好。

三、XAMPP,XAMPP(Apache+MySQL+PHP+PERL)是一個(gè)功能強(qiáng)大的建站集成軟件包。

四、MAMP,MAMP分為兩種MAMP和MAMP Pro for Mac。

五、寶塔面板,寶塔面板是一款服務(wù)器管理軟件,支持windows和linux系統(tǒng)。

六、UPUPW,UPUPW是目前Windows平臺(tái)下最具特色的Web服務(wù)器PHP套件。

以上就是關(guān)于“php下載大文件時(shí)錯(cuò)誤如何解決”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI