這篇“php下載大文件時(shí)錯(cuò)誤如何解決”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“php下載大文件時(shí)錯(cuò)誤如何解決”文章吧。
成都創(chuàng)新互聯(lián)公司專注于企業(yè)成都全網(wǎng)營銷推廣、網(wǎng)站重做改版、色尼網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5技術(shù)、商城網(wǎng)站制作、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為色尼等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
php下載大文件時(shí)錯(cuò)誤的解決辦法:1、在服務(wù)器上查看nginx日志;2、 查看到fpm運(yùn)行身份;3、編輯nginx配置設(shè)置身份;4、通過“chown -R daemon /aichenk/soft/nginx/fastcgi_temp/”更改路徑即可。
php下載大文件時(shí)錯(cuò)誤怎么辦?
記PHP下載大文件失敗的一次坑
說明
php提供文件的儲(chǔ)存和下載,nginx作為web服務(wù)器,fpm做解析。
現(xiàn)象
當(dāng)下載一個(gè)5M大小的圖片時(shí),總提示下載失敗,或下載下來的文件不完整,僅顯示部分圖像(每次下載不一樣)
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)限問題,最終把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/
測試通過
解釋
個(gè)人分析這次錯(cuò)誤其實(shí)是數(shù)據(jù)放到緩沖區(qū)才體現(xiàn),理論上不光是大文件,數(shù)據(jù)傳輸量超過一定值也會(huì)有這個(gè)問題,在搭建環(huán)境的時(shí)候注意就可以了。
一、phpStudy,是一個(gè)新手入門最常用的開發(fā)環(huán)境。
二、WampServer,WampServer也同樣的也是和phpStudy一樣操作簡單對(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)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。