新建了个wordpress博客,通过后台发布文章,经常需要上传些图片或者视频文件,结果总是提示无法上传。遇到这类情况,通常的解决思路是这样的:

首先需要确认文件夹的属主及相关权限是否正确,如果不正确的话运行:

chown -R apache:apache /mnt/sdb/wordpress

此时,再次尝试上传文件,还是无法成功,把权限改成777,发现还是无法上传成功。这时候,可以考虑下是否是SELinux在搞鬼。运行:

setenforce 0

发现可以上传了。那么,确认是由于SeLinux导致无法上传的。现在查看下Selinux权限:

ll -Zd /mnt/sdb/wordpress/wp-content

显示:

drwxr-xr-x. apache apache unconfined_u:object_r:httpd_sys_content_t:s0 /mnt/sdb/wordpress/wp-content/

发现上下文是httpd_sys_content_t,不带rw权限,估计就是这个导致无法写入内容的。运行:

chcon -R -t httpd_sys_rw_content_t /mnt/sdb/wordpress/wp-content/

要是上述设置永久生效,必须永久改变Selinux上下文标签:

semanage fcontext -a -t httpd_sys_rw_content_t "/mnt/sdb/wordpress/wp-content(/.*)?"

再还原下wp-content文件夹下的文件的上下文内容:

restorecon -R -v /mnt/sdb/wordpress/wp-content/

需要注意的是,有时候,通过wp-admin/install.php安装wordpress,提示无法穿件wp-config.php,也是由于Selinux引起的。

 

解决wordpress无法上传文件的问题

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注