关于php-fpm和php.ini的一个小Bug

结论写在最前面: web端调用php-fpm的php.ini和cli调用php.ini不一定是同一个。终端打印phpinfo的值加载的是cli的php.ini,  web打印phpinfo的值即为php-fpm加载的。

 

背景: 之前帮同学写的一个项目,据说昨天在使用的时候出了问题,具体是上传文件失败

 

调试过程: 第一步当然是复现咯,因为我设计的交互是前端传文件,后端返回url,前端再把url传给后端。于是熟练的打开f12,马上发现在第一步就出问题了,即后端没有返回url并报错。

 

查找原因: 在服务端打印$_FILES,看到tmp_name为"", error为1。果断面向google编程, 基本得到的答案都是php.ini里的 upload_max_filesize太小(忘了有没提到post_max_size,都改就完事了)。ok,知道要怎么解决了。直接

php -i |  grep 'ini'

查到Loaded Configuration File => /etc/php.ini ,于是修改/etc/php.ini, 重启php-fpm

 

kill -USR2 pid

 

(pid可以通过 ps -ef | grep php-fpm 查)

结果不行,反复在命令行输入

php -i |  grep 'max'

确认无误,结果还是没解决.

 

最终解决:

通过web端打印phpinfo,看到Loaded Configuration File的值是另一个路径

重复修改对应的ini及重启php-fpm即可

 

posted @ 2020-09-03 22:10  钺览IT  阅读(42)  评论(0编辑  收藏