昨天項目上線了,但我發現上傳大文件時,PHP執行move_uploaded_file方法的速度特別慢。
幾百KB的文件的話,很快,秒傳。但上傳大小為15MB的文件時。上傳本身很快,才10幾秒。但把“臨時目錄的文件”復制到“我指定的目錄”,這個過程很慢!需要好幾分鐘!
PHP.ini的配置如下(Windows測試服務器是一樣的配置,沒有問題)
post_max_size 101M
upload_max_filesize 101M
max_execution_time = 120
max_input_time = 60
memory_limit = 256M
我通過find命令,搜索過Linux下的php.ini文件,確認只有這一個配置文件。并且重啟過php-fpm、重啟過apache。也測試過手動cp 15MB.zip,發現復制速度很快,秒復制。文件可以上傳,應該不是權限問題。(chmod 777/chmod a+rwx)
真的不知道該怎么解決了,還望各位指教。謝謝??!
【下午13:31更新】我剛才重裝了PHP,然而問題還在。(通過YUM安裝。yum -y install php72w php72w-cli php72w-common php72w-devel php72w-embedded php72w-fpm .....)這是我的php-fpm.conf配置:然而在Linux上重啟PHP報錯,無法加載。
【14.58更新】我更改了配置文件,PHP-fpm確實是可以正確重啟了。也自動生成了配置文件。但我重新嘗試下載,等了20幾秒,嘗試了好幾次。日志仍然是空的。應該不是權限的問題。難道問題不出在PHP身上?還是某種原因,日志沒正確寫入?
【15.48更新】我測試了一下,接收文件的PHP,直接返回結束。結果,前端還是要等很長時間。可能是Nginx的反向代理,或者什么原因導致的。
2 回答

慕姐4208626
TA貢獻1852條經驗 獲得超7個贊
php-fpm.conf開啟php的slowlog
另外麻煩做個測試 在/tmp
目錄下新建一個20M的文件,linux上面mv到你的PHP上傳后的目錄
4:00更新
- 檢查slowlog權限
- request_slowlog_timeout = 5 沒有單位
- 2 回答
- 0 關注
- 327 瀏覽
添加回答
舉報
0/150
提交
取消