Linux(CentOS)下,PHP上传的文件执行move_uploaded_file方法时,特别特别慢。

昨天项目上线了,但我发现上传大文件时,PHP执行move_uploaded_file方法的速度特别慢。
https://img1.mukewang.com/5c8f3e7700019ff504610055.jpg

几百KB的文件的话,很快,秒传。
但上传大小为15MB的文件时。上传本身很快,才10几秒。
但把“临时目录的文件”复制到“我指定的目录”,这个过程很慢!需要好几分钟!
https://img3.mukewang.com/5c8f3e78000118b203570270.jpg
https://img3.mukewang.com/5c8f3e7a0001a3b204230175.jpg

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配置:
https://img4.mukewang.com/5c8f3e7b0001a72105440336.jpg

然而在Linux上重启PHP报错,无法加载。

https://img.mukewang.com/5c8f3e7d0001488708000159.jpg

【14.58更新】
我更改了配置文件,PHP-fpm确实是可以正确重启了。也自动生成了配置文件。
但我重新尝试下载,等了20几秒,尝试了好几次。日志仍然是空的。
应该不是权限的问题。难道问题不出在PHP身上?还是某种原因,日志没正确写入?
https://img4.mukewang.com/5c8f3e7e0001dbb003130029.jpg

【15.48更新】
我测试了一下,接收文件的PHP,直接返回结束。
结果,前端还是要等很长时间。可能是Nginx的反向代理,或者什么原因导致的。
https://img2.mukewang.com/5c8f3e7f00015df005650128.jpg

梵蒂冈之花
浏览 312回答 2
2回答

慕姐4208626

php-fpm.conf开启php的slowlog 另外麻烦做个测试 在/tmp目录下新建一个20M的文件,linux上面mv到你的PHP上传后的目录 4:00更新 检查slowlog权限 request_slowlog_timeout = 5 没有单位
打开App,查看更多内容
随时随地看视频慕课网APP