前言:

我的个人博客网站荒原之梦在安装成功WordPress之后本来是可以上传媒体文件,安装主题和插件的,但是后来不知道怎么回事就出了问题:不能上传媒体文件也不能安装主题和插件了。出现这个问题后我尝试了去解决,但是一时没能成功完成,后来博文里的图片都放到图床里了,这个问题也就一直被搁置到了今天(这样做是不对的,遇到问题要及时解决)。今天我决定解决这个问题,上网查资料,大概两个小时后弄好了,现在将解决过程记录下来。

操作环境:

1.网站服务器:Linux云服务器

2.网站程序:WordPress 4.7.5

一 我遇到的问题

使用WordPress上传媒体文件和安装主题及插件的时候均无法成功完成并出现如下错误提示:

1.上传媒体文件时显示“无法创建目录"wp-content/**”:



图1

2.安装主题或者插件时弹出窗口要求输入FTP账号和密码,输入FTP账号相关信息后点击“安装”,之后又显示安装失败,提示的失败原因是“无法创建目录”:



图2

二 解决步骤如下:

1.首先用FTP工具连接服务器,在*/wordpress/wp-content目录下将upgrade、themes和plugins都右键设置成766权限,并选中“包含子目录”复选框。

然后我们使用FTP工具在*/wordpress目录中,找到wp-config.php,添加如下代码:

define("FS_METHOD","direct");
define("FS_CHMOD_DIR", 0777);
define("FS_CHMOD_FILE", 0777);

添加后保存,再安装插件已经不再提示输入FTP密码,但是仍然安装失败,并显示“安装失败:无法创建文件(如图2一样)”。此时也无法上传媒体文件。

2.登陆到数据库

找到数据库中的wp_options,查看其对应的upload_path表的键值是不是wp-content/uploads(不要给键值加双引号),如果为空或者不是该值则改成该值。

之后在wordpress仪表盘中找到“设置->多媒体”,将文件上传路径改成wp-content/uploads(不要给路径加双引号),点击“保存更改”。

这时再尝试上传媒体文件已经可以上传了,但是仍然不能安装主题或插件,安装主题或插件时仍然显示“无法创建目录”

3.使用ssh工具连接到服务器,进入wordpress的上一级路径,输入:

ls -l wordpress

发现wordpress的用户和组都是root.

也就是说不能下载安装主题和插件并不仅仅是因为权限不够(出现无法创建目录的问题人们最直接的反应就是权限不够,但是我尝试过,即使给upgrade、themes和plugins这些文件夹777的权限,仍然无法解决问题,而且还会因为权限过高产生隐患),而是因为执行下载安装主题和插件的用户组是web用户组(名称一般为www)。

所以我们输入:

chown -R www:www wordpress

将wordpress所属的用户和组全部改成www.

至此问题已全部解决,可以上传媒体文件,以及安装主题和插件了。

end

更多内容请访问我的个人网站荒原之梦

解决WordPress无法上传媒体文件以及无法下载和安装主题与插件的问题的更多相关文章

  1. 如何让WordPress支持上传更多文件类型

    如何让WordPress支持上传更多文件类型   可以在functions.php中这样写: 1 2 3 4 5 6 7 8 9 add_filter('upload_mimes', 'wpdit_f ...

  2. [转]通过设置nginx的client_max_body_size解决nginx+php上传大文件的问题

    转:http://blog.csdn.net/zhengwish/article/details/51602059 通过设置nginx的client_max_body_size解决nginx+php上 ...

  3. 通过设置nginx的client_max_body_size解决nginx+php上传大文件的问题

    通过设置nginx的client_max_body_size解决nginx+php上传大文件的问题:用nginx来做webserver的时,上传大文件时需要特别注意client_max_body_si ...

  4. 解决Cornerstone不能上传.a文件的问题 Cornerstone不上传*.xcuserstate,*.xcbkptlist文件

    在使用CornerStone的时候经常会出现.a文件无法上传的问题,导致从svn checkout到本地的时候编译报错 这里可以通过配置CornerStone来达到上传.a文件的效果 操作步骤: 打开 ...

  5. 应用HtmlInputFile进行大文件上传 解决asp.net上传大文件默认文件大小限制

    选择一个文件,也可以正确上传至服务器,但您会发现文件大于2048的时候,出现:Internet Explorer显示 "The page cannot be displayed - Cann ...

  6. 解决iis7只能上传30M文件的限制

    首先停止IIS7 服务 访问 下面的目录 X:\Windows\System32\inetsrv\config\schema 用记事本打开 IIS_schema.xml 右键管理员取得权限,以去除只读 ...

  7. linux curl命令如何上传本地文件夹和下载文件

    本地有一个文件夹为my_dir,里面有四个文件,分别是test1.txt,user_account,tools_user,plans 要把这个my_dir文件夹传到ftp 192.168.8.251 ...

  8. WordPress“无法将上传的文件移动至wp-content/uploads/”的解决办法

    WordPress“无法将上传的文件移动至wp-content/uploads/”的问题在有些配置不完善的虚拟主机或服务器中会碰到,一般会出现以下症状:1.无论是从文章编辑页面还是媒体库页面都无法上传 ...

  9. 解决WordPress中无法将上传的文件移动至wp-content/uploads

    搭建lnmp环境,放一个wordpress建站系统 lnmp环境很快就搭建完成了,但是在放wordpress的时候出现了一些问题 最主要的问题: 1.第一个是wp-content/uploads没有权 ...

随机推荐

  1. Gradle 1.12用户指南翻译——第二十六章. War 插件

    其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Github上的地址: https://g ...

  2. unity用PUN进行信息交互模块

    using UnityEngine; using System.Collections.Generic; public class MessageChat : Photon.MonoBehaviour ...

  3. 网站开发进阶(十五)JS基础知识充电站

    JS基础知识充电站 1.javascript alert弹出对话框时确定和取消两个按钮返回值? 用的不是alert对话框,是confirm confirm(str); 参数str:你要说的话或问题: ...

  4. Oracle数据库容灾备份技术探讨

    Oracle数据库容灾备份技术探讨 三种Oracle灾备技术 对于Oracle数据库的灾备技术,我们可以从Data Guard,GoldenGate和CDP角度去考虑. Oracle Data Gua ...

  5. C语言实现字符串中(10进制和16进制)转成十进制数

    如何将字符串中的10进制数和16进制数提取出来,看以下代码: #include <stdio.h> typedef char TUINT8 ; typedef int TUINT32; T ...

  6. PS 滤镜——旋转模糊

    这里给出灰度图像的模糊算法,彩色图像只要分别对三个通道做模糊即可. %%  spin blur % 旋转模糊 clc; clear all; close all; I=imread('4.jpg'); ...

  7. java的io库用到的装饰模式是如何体现的?

    概论 java的io包下大概有85个类,真复杂.其实不然这些类又可以分为以下四个部分. 输入流                输出流 字节流         InputStream          ...

  8. angularjs作用域之transclude

    transclude是一个可选的参数.如果设置了,其值必须为true,它的默认值是false.嵌入有时被认为是一个高级主题,但某些情况下它与我们刚刚学习过的作用域之间会有非常好的配合.使用嵌入也会很好 ...

  9. decode ways(动态规划)

    A message containing letters from A-Z is being encoded to numbers using the following mapping: 'A' - ...

  10. same tree(判断两颗二叉树是否相等)

    Input: 1 1 / \ / \ 2 3 2 3 [1,2,3], [1,2,3] Output: true Example 2: Input: 1 1 / \ 2 2 [1,2], [1,nul ...