您好,登錄后才能下訂單哦!
這篇“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í)候注意就可以了。
一、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è)資訊頻道。
免責(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)容。