最近个人博客网站通过媒体库上传照片的时候,每次都会出现一个错误:“从服务器收到预料之外的响应。此文件可能已被成功上传。请检查媒体库或刷新本页”。上传的状态显示100%,但是刷新媒体库却找不到新上传的文件,后台登录uploads目录也找不到,所以应该是上传失败了。
谷歌了一下,发现所有的答案都指向php和nginx配置的参数不对。于是按照如下的步骤对参数进行了设置:
1、修改php.ini配置文件 upload_max_filesize、post_max_size、memory_limit。
查找 php.ini 的位置
使用命令:php –ini
2、此时再上传如果还是提示同样的错误,可能是因为nginx还限制了请求体大小,需要在nginx的配置文件中添加:
client_max_body_size 50m;
3、此时再上传如果是提示文件是不支持的类型,因为安全原因不能上传此后缀名的文件。此时可修改wp-config.php文件,增加如下行:
define( ‘ALLOW_UNFILTERED_UPLOADS’, true);
完成了上述的步骤,重新upload,结果还是同样的错误,这会是什么原因呢?我于是登录WordPress服务器后台,进入wp-content/uploads目录,发现这个目录下多了一个wpcode目录:
# cd wp-content/uploads/
# ll
总用量 12
drwxr-xr-x 4 nginx nginx 4096 1月 9 02:17 2023
drwxr-xr-x 3 nginx nginx 4096 1月 9 02:17 2024
drwxr-xr-x 3 nginx nginx 4096 1月 12 11:07 wpcode
进入到这个目录再看个究竟。。。
# cd wpcode
# find
.
./cache
./cache/library
./cache/library/index.html
./cache/library/snippets.json
./cache/docs.json
./cache/index.html
./index.html
发现这个目录里有个cache目录。难道这里记录了我以前的错误状态无法恢复导致现在所有的upload都不能成功?不管它三七二十一,先把这个cache清掉再说。。。为了保险起见,先不直接删除,rename一下。。。
# cd ..
# mv wpcode wpcode--
# ll
总用量 12
drwxr-xr-x 4 nginx nginx 4096 1月 9 02:17 2023
drwxr-xr-x 3 nginx nginx 4096 1月 9 02:17 2024
drwxr-xr-x 3 nginx nginx 4096 1月 12 11:07 wpcode--
然后再来试一下上传照片,成功了。果然是因为cache里的错误状态无法恢复导致的锅。至于cache里的文件都啥内容,也懒得去分析了。有高手知道的,可以告诉我一下 🙂