解决织梦(DEDECMS)后台无法上传图片问题

织梦(DEDECMS)后台无法上传提片,提示上传失败,令人懊恼。而织梦或其它程序使图片上传失败的原因无非就那么几种可能,我们首先分析下上传失败的可能性,排除并解决后台图片不能上传的问题。 笔者昨天对LINUX服务器

织梦(DEDECMS)后台无法上传提片,提示上传失败,令人懊恼。而织梦或其它程序使图片上传失败的原因无非就那么几种可能,我们首先分析下上传失败的可能性,排除并解决后台图片不能上传的问题。

笔者昨天对LINUX服务器做了安全设置,导致图片不能上传,本以为是程序漏洞导致,最后发现所有网站都无法上传图片,则肯定了和程序漏洞的关系可能比较小。

其实,图片不能上传成功的原因大概有以下几种:

1、目录上传权限不够。

2、程序本身漏洞导致,或程序不完整导致。

3、操作系统问题。

检测目录权限

当 提示图片上传失败的时候,我首先检测的是文件权限是否足够。经过检测,文件夹的权限是755表示已经足够,并且已经重新创建了文件夹并赋予最高权限,依然 没有解决该问题,接着检测用户组权限是否足够,通过检测也没有发现任何的问题,因此文件夹权限导致图片不能正常上传的可能性被排除。

网站程序完整性

接着检测网站程序的完整性,发现十多个网站都不能正常上传图片,于是排除了网站程序完整性导致图片上传失败的可能性。

操作系统问题

于是检测 WEB NGINX 服务器,将图片上传文件夹的可执行权限开放,但任然不能成功上传图片。此时,忽然想起了之前配置过 php.ini 配置文 档,将 open_basedir 配置成了网站程序所在根目录 /htdocs,于是将该行代码注释掉,之后便成功的上传了图片,问题被解决掉。但是, 这样做放弃了安全性,有些舍不得。

通过以下方法,不仅让安全性提高,也解决了图片上传失败的问题:

php.ini 中的open_basedir 表示:php程序执行限制在了指定的目录中,这样可以限制入侵者继续提权到操作系统,安全性有更一步的保障。其 中 upload_tmp_dir 表示的是文件上传临时目录,如果设置了 open_basedir 参数,那么 upload_tmp_dir 必须 配置,否则文件上传将不能成功。

总结:遇到图片不能上传,表示相当棘手。需要从上传的图片类型、图片的尺寸、文件夹权限、程序完整性到最后 的系统环境一一分析,遇到问题不要焦急,相信经过透彻的分析与测试,问题总会被解决掉。本文最终解决方法就有两个,注释 open_basedir 该行 代码就能解决问题,如果配置了 open_basedir 那么需要设定文件上传临时目录,最后笔者将 upload_tmp_dir 设定 为 /tmp 后,图片就可以成功上传了!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

dedecms织梦默认的TAG标签不是很灵活。有时候我们的标签需要进行一个分类,能不能像{dede:arclist}标签的自定义属性(如:flag=c,h),这样全站调用的时候更灵活。 全站调用TAG标签方法一般是: {dede:tag row='100' sort='new' getall='1'}a target="_blank
未审核文档的TAG会显示在TAG列表页面, 固然点击进入TAG时, 相关的未审核文章不会显示出来, 这样对用户体验是很不好的. DEDECMS暂时没有提供这个功能,所以要解决这个问题, 让DEDECMS不显示未审核文档的TAG, 就要修改TAG的显示库文件 tag.lib.php。 方法一 打
我们都知道DEDECMS生成的文件夹是按天生成的,只要传了图片就会自动建立个年月日的文件,centos系统下,都是随便排序的,很难找到对应文件夹,如果要按顺序排列,要怎么操作呢? 一、文件管理器: 修改 /dede/templets/file_manage_main.html $dh = dir($inp
我们在用到织梦dedecms软件模型的时候,手动指定地址通常只能是引用其他网址或者链接,我们要实现直接选取站内的文件,这个要怎么操作呢?下面小编一步步为您解答,最终效果如下图所示: 实现教程 1、打开 /dede/templets/soft_add.htm 找到 input type=text
我们有时候需要对织梦文档的点击量进行批量维护,比如采集来的文章,点击量都为0,需要批量修改,可以用到如下方法1。 1、在数据库里运行下面的代码就可以了,文章的点击量变得随机从500到1000 UPDATE dede_archives SET click=FLOOR(500 + (RAND() * 1000))
用过dedecms的朋友都知道,织梦cms后台系统基本参数里是无法直接上传图片的,我们更换logo图只能到ftp里替换,非常的不方便,我们如果想直接在系统基本参数里上传,要怎么处理呢?在这里需要对代码进行修改,具体流程如下: 实现方法,打开/dede/templets/sy