先森拿到了腾讯云的学生机,赶紧用nginx搭建好了WordPress的环境。今天试着导入WordPress的导出文件时,竟然遇到了“文件是空的。请上传有内容的文件。这个错误也有可能是因为您的php.ini禁止了上传,或其中post_max_size的值小于upload_max_filesize的值。”的错误。
文件是空的。请上传有内容...
下面就说说解决过程。
检查
错误提醒中也说了“可能是因为您的php.ini禁止了上传,或其中post_max_size的值小于upload_max_filesize的值”,所以我们首先要将这三条配置检查一下,做一个排除。如果能解决问题当然好,不能的话也明确了错误目标。
1.排除是否禁止了上传
php.ini的默认位置在/etc目录下,编辑打开,查看是否禁用了上传。
1
|
file_uploads = On |
是否允许HTTP文件上传。默认值为On允许HTTP文件上传,若设置为Off当然就不能上传了。
2.排除POST上传大小设置
1
|
post_max_size = 8M |
post 提交数据时的大小,默认值 8 MB,但你还可以增加它。此设置还会影响文件上传。上传大文件时,该值必须大于 upload_max_filesize。
3.排除最大可上传文件大小
1
|
upload_max_filesize = 2M |
上传文件时最大限制,默认值为2M。
如果和先森一样,刚安装还没有做什么修改,那上面的三样应该都是默认值,也就是问题不出在php.ini的配置上,那么接着往下看。
DeBUG寻找错误原因
先森也懒得去找php的错误日志了,直接开启了php.ini中的错误提醒。将Off改为On则为开启了。开启后,则在屏幕上可以显示错误
1
|
display_errors = On |
修改配置之后,重启php。
1
|
service php-fpm restart |
这时候再重新上传,就显示出来了一条错误:
1
|
Fatal error: Class 'DOMDocument' not found in /usr/local/nginx/html/wp-content/plugins/wordpress-importer/parsers .php on line 61 |
致命错误:在wordpress的程序代码中没有发现“DOMDocument”类。
虽然不清楚是什么意思,但是先打开文件,看看第61行是什么再说吧。
1
|
$dom = new DOMDocument; |
好吧,还是不清楚是怎么回事。所以直接拿着错误提醒进行百度,强行看了两篇英文贴找到了解决方法,原来是缺少php组件。yum安装一下即可。
1
|
yum install -y php-xml |
原来是无法识别xml文件,wordpress导出的文件就是xml格式的。
安装之后还需要重启php:
1
|
service php-fpm restart |
再次去WordPress后台导入文章,则顺利上传了。
来源: https://www.capjsj.cn/php_ini.html
如果给你带来帮助,欢迎微信或支付宝扫一扫,赞一下。