日期: 2019 年 3 月 29 日

  • 解决WordPress无法上传音频

    解决WordPress无法上传音频


    问题描述

    • 上传音频文件,提示“此响应不是合法的JSON响应。”
    • 图片可以正常上传。

    问题推断

    图片可以正常上传,说明不是文件夹权限的问题。网上没有搜到和非法JSON响应相关的内容。怀疑是无法上传比较大的文件导致。

    因为之前已经调整过Wordpress的文件最大上传限制了,所以不太可能是Wordpress的问题。


    解决方法一

    治标不治本的方法:把音频文件直接放进/wp-content/uploads/目录下面,插入音频时输入URL。

    虽然可行,但是后台媒体库不显示该文件,无法方便管理。且每次添加文件得用FlashFXP传,非常麻烦。


    解决方法二

    根据https://yq.aliyun.com/articles/625723 所述,修改nginx.conf,在http段添加代码如下:

    client_max_body_size 100m;

    服务器输入指令重启nginx:

    systemctl restart nginx

    重启后测试可以正常上传音频了。

  • 尝试解决WordPress经常无法连接数据库的问题

    尝试解决WordPress经常无法连接数据库的问题


    问题描述

    • 最近Jetpack经常提醒我Wordpress崩溃。上网站一看,貌似是无法访问数据库。
    • 修改Wordpress上传文件大小限制,然而传输超过1M的音频竟然会导致网站崩溃,出现与上一条类似的情况。

    问题推断

    怀疑是因为内存限制过小导致的。

    解决方案一

    在wp-config.php文件内添加代码如下:

    define(‘WP_MEMORY_LIMIT’, ’128M’);

    其结果是在网站首页顶部出现了如下代码:

    Constant WP_MEMORY_LIMIT already defined in /etc/wordpress/wp-config.php on line 104

    看起来是对于内存限制的代码重复了。

    解决方案二

    根据https://blog.csdn.net/qq_17087739/article/details/48137359的描述去修改了/wp-includes/default-constants.php里的相关代码:

    // set memory limits
    if( !defined('WP_MEMORY_LIMIT') ) {
        if( is_multisite() ) {
            define('WP_MEMORY_LIMIT','128M');
        }else{
            define('WP_MEMORY_LIMIT','64M');
        }
    }
      
    if( ! defined('WP_MAX_MEMORY_LIMIT') ) {
        define('WP_MAX_MEMORY_LIMIT','256M');
    }

    将其改为了:

    // set memory limits
    if( !defined('WP_MEMORY_LIMIT') ) {
        if( is_multisite() ) {
            define('WP_MEMORY_LIMIT','256M');
        }else{
            define('WP_MEMORY_LIMIT','256M');
        }
    }
      
    if( ! defined('WP_MAX_MEMORY_LIMIT') ) {
        define('WP_MAX_MEMORY_LIMIT','256M');
    }

    并且将解决方案一里添加的代码去掉。目前正在观望结果。


    2019.04.03跟进结果

    目前依旧偶尔会崩溃。

    2019.04.24跟进结果

    结合前段时间解决的问题汇总(近期解决的WordPress相关问题),猜测是因为数据库内存不足,无法分配资源,而导致mariaDB崩溃。解决方法已在文章里说明。