TroubleShooting

  • WordPress升级失败,提示“另一更新正在进行”的完美解决方法

    WordPress升级失败,提示“另一更新正在进行”的完美解决方法

    Visits: 16

    今天在更新WordPress主题的时候,遇到以下问题:

    升级WordPress
    另一更新正在进行。

    原因:

    原来升级WordPress时由于国内连接WP服务器慢会造成更新中途停止,并在数据库wp_options表中增加core_updater.lock记录,当再次更新时会提示:另一更新正在进行。

    解决方法:

    温馨提示:数据库属于敏感操作,操作之前切记备份!

    登陆数据库管理系统(如PHPMyAdmin或者SQLyog等),找到我们网站在用的数据库,点击数据库表“wp_options”(默认是此表,如果建站时又修改表前缀,请根据实际情况而定)在option_name字段找到core_updater.lock记录并将这一列数据删除即可。

    select * from wp_options where option_name='core_updater.lock';
    delete from wp_options where option_name='core_updater.lock';
  • WordPress插件WP Statistics无法保存GeoIP Collection和GeoIP 城市选项的问题

    WordPress插件WP Statistics无法保存GeoIP Collection和GeoIP 城市选项的问题

    Visits: 53

    今天在设置WordPress插件WP Statistics插件的GeoIP Collection和GeoIP 城市选项,进行保存的时候,一直无法保存成功,网上搜索了各种设置也无效,最终手动执行成功。

    现象:

    今天更新了CDN以及停用CNZZ统计转由WP-Statistics完成统计工作,一切都操作完成,查看访问数据时发现没有IP位置信息,经过一番排查确定是GeoIP没有启用,一顿骚操作结果发现设置报错。原因是我的网站服务器是国内的服务器上无法访问GeoIP数据库下载链接的域名,所以在设置GeoIP的时候会提示报错,然后我在Google和百度均没有找到解决方案,后来通过分析WP-Statistics的源代码发现class-wp-statistics-updates.php写明了数据库下载地址,我们只需要修改这个下载链接即可,知道了问题所在接下来开始操作。

    报错信息如下:

    下载GeoIP数据库时出错: https://raw.githubusercontent.com/wp-statistics/GeoLite2-Country/master/GeoLite2-Country.mmdb.gz-cURL error 28: Connection timed out after 10000 milliseconds

    版本信息

    WordPress 5.6.1
    WP Statistics 13.0.5

    解决方案:

    方案1:

    1、下载数据库

    Github最新数据库:GeoIP国家 GeoIP城市
    我的国内同步备份(不保证是最新版):GeoIP国家 GeoIP城市

    2、将下载后的文件上传到网站目录下,地址为:

    如果没有wp-statistics目录,那么手动创建,将下载的文件传到其目录下,如上图。

    方案2:

    1、需要修改的文件路径
    wp-content/plugins/wp-statistics/includes/classes/class-wp-statistics-updates.php
    修改代码github处的文件链接,链接可以是自己网站上的,也可以用我提供的CDN链接。
    https://cdn.rosm.cn/GeoLite2-City.mmdb.gz
    https://cdn.rosm.cn/GeoLite2-Country.mmdb.gz

    2、保存PHP后重新设置即可。

    设置成功后要在优化里面更新下国家/地区的数据,不然之前的数据不会显示国家和地址。

  • 解决 WordPress“正在执行例行维护,请一分钟后回来”的问题

    解决 WordPress“正在执行例行维护,请一分钟后回来”的问题

    Visits: 6

    WordPress在升级程序、主题、插件时,都会先切换到维护模式,也就是显示 “正在执行例行维护,请一分钟后回来(Briefly unavailable for scheduled maintenance. Check back in a minute)”,如果升级顺利,也就几秒左右就恢复正常;但是如果由于网速不佳等原因导致升级中断,WordPress就会一直停留在维护模式,不论前台还是后台,都一直显示“正在执行例行维护,请一分钟后回来“。

    解决方案:

    方案1:

    马上通过FTP或者SSH登录你的网站,删除WordPress根目录下的 .maintenance ,刷新网页即可。

    rm -rf .maintenance

    方案2:

    但是有时候你会发现,根目录根本就没有 .maintenance!最初以为是隐藏了,所以使用SSH登录服务器,但是依旧没有看到,怎么办?其实有一个比较简单的办法,直接新建一个空的txt文本,上传到主机空间中,然后重命名为 .maintenance,然后你会发现 .maintenance 居然不见了!不用担心,重新刷新你的网站,是不是正常了?!

    方案3:

    如果不存在.maintenance文件,需要伪造一份空的.maintenance文件来通过程序的检测。由于在计算机上无法创建这样的文件,所以先创建一个空的文件,然后上传到FTP上并更名为.maintenance。再次刷新网站首页,就能正常访问了。

    方案4:

    如果还是不行,或者你想让它以后可以显示 .maintenance ,那就打开 /wp-admin/includes/class-wp-filesystem-direct.php

    找到下面的代码:

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18function mkdir($path, $chmod = false, $chown = false, $chgrp = false) { // safe mode fails with a trailing slash under certain PHP versions. $path = untrailingslashit($path); if ( empty($path) ) return false;   if ( ! $chmod ) $chmod = FS_CHMOD_DIR;   if ( ! @mkdir($path) ) return false; $this->chmod($path, $chmod); if ( $chown ) $this->chown($path, $chown); if ( $chgrp ) $this->chgrp($path, $chgrp); return true; }

    将其改为:

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19function mkdir($path, $chmod = false, $chown = false, $chgrp = false) { // safe mode fails with a trailing slash under certain PHP versions. if ( ! $chmod ) $chmod = $this->permission;   if(ini_get(‘safe_mode’) && substr($path, -1) == ‘/’) { $path = substr($path, 0, -1); }   if ( ! @mkdir($path) ) return false; $this->chmod($path, $chmod); if ( $chown ) $this->chown($path, $chown); if ( $chgrp ) $this->chgrp($path, $chgrp); return true; }

    然后刷新FTP目录,是不是看到.maintenance了,删除它吧!

  • WordPress如何修改主题中的字体大小

    WordPress如何修改主题中的字体大小

    Visits: 10

    全球有超过三成的网站站长都在使用WordPress,比如众多的个人博客和企业等。但是我们在使用的时候发现有些内容在网页中显示的小,比如字体大小、文字颜色等,为了更好的显示文字大小,本文就介绍一种如何修改WordPress主题页面文字大小的方法。

    当前环境:

    系统:CentOS 7、CentOS 8

    WordPress版本为5.5.2

    操作步骤:

    1. WordPress中默认的字体大小为12px,显示中文的话会比较小

    2. 找到自己站点当前使用的主题,登录WordPress后,点击如下图:

    3. 如果出现如下图示内容,需要先修改文件style.css文件的权限,具备可写权限

    4. 由于在style.css文件中修改内容比较费劲,可以将其内容拷贝出,在文本编辑器中进行修改,譬如:EditPlus等,注意修改前为了避免出现问题,最好先将文件进行备份

    5. 先将其中所有的“font-size:14px”替换为你希望的文字大小,譬如:“font-size:18px”

    6. 然后再将所有的“font-size:12px”替换成为希望的文字大小,譬如:“font-size:16px”

    7. 修改完后将内容粘贴回上述步骤2中,并进行保存

    8. 为了避免误认为自己没有修改成功,可以在其他浏览器进行验证自己的修改是否成功

    9. 以下两图是修改前后的字体大小对比,大家可以看下效果

  • WordPress数据库经常报“Error establishing a database connection”错误

    WordPress数据库经常报“Error establishing a database connection”错误

    Visits: 8

    最近在个人站点上编写文章或者上传图片时,时不时的就处于宕机状态,网站访问不了,几分钟后就报“Error establishing a database connection”错误,遍寻整个网络,现将该问题的一些解决方案整理如下,至于哪个能解决自己的问题,碰到该问题的同学可以逐一排查,废话不多说了,总结如下:

    现象:

    可能原因及解决方案:

    1. 我自己首先是将几个无用的wordpress插件都禁用了,然后再留意是否有该问题现象,目前暂未出现过该问题

    2. 一般个人站点都是用的vps,此时可以登录控制面板,看能否远程连接到服务器,如果不能的话,那么可能是服务器挂了导致的,如果能登录到服务器,那么就检查一下mysql进程是否存在,不存在的话就启动mysql

    3. 检查磁盘空间是否满了。一般个人站点的vps各项配置都很少,所以经常会出现各种各样的问题

    4. 检查站点配置文件的用户名和密码是否与数据库中的信息一致,配置信息在wp-config.php这个文件当中

    5. 这个报错是数据库连接时的错误,如果以上步骤都排查过了,那么可以试下以下方法:这种问题现象一般由以下几种情况产生:

    1)数据库登录凭证错误或已更改,数据库服务器无响应,数据库已损坏。

    2)网站流量过大时,也会出现数据库连接错误。

    3)服务器多个服务影响,可以访问其他服务看看是否正常,判断是不是数据库服务器导致的。

    4)用户的权限是否足够。

    5)是否设置了拒绝远程连接。

  • 如何解决WordPress模板将双中横线“–”转义成了单中横线的问题“-”

    如何解决WordPress模板将双中横线“–”转义成了单中横线的问题“-”

    Visits: 2

    今天在浏览自己写的文档的时候,发现复制粘贴命令执行后报错,仔细一看,命令中的–在页面中显示为单横线-,结合网上的几个方法,找了一个最简单适合的方案,问题解决。

    现象:

    譬如WordPress后台编写的代码为:
    ./config shared –openssldir=/data/install/openssl –prefix=/data/install/openssl
    但是编写完发布后,在浏览器中显示为:
    ./config shared -openssldir=/data/install/openssl -prefix=/data/install/openssl
    莫名的少了一个横杠,就会产生问题

    原因:

    网上的说法,主要是WordPress的标题或者正文当中,如果带有横杠“-”的话,查看页面源代码title的时候就会发现横线会被转义为”–”,正文就会看到少了一个横杠。

    解决方案:

    方法一:禁用所有的 WP 转义

    wordpress 自带一个专一的钩子 wptexturize,很多地方都用到了这个钩子,具体可以看看 wp 的 wp-includes/formatting.php 中看看。我们可以通过以下代码(取自水煮鱼)来取消掉这个转义:

    add_filter( 'run_wptexturize', '__return_false' );

    我是增加在如下图示的位置:

    方法二:禁用部分的 WP 转义(推荐)

    为了解决本文标题描述的这个问题,可以只是禁止 wptexturize 对标题的转义:

    /** 
    * WordPress 标题中的横线“-”被转义成“–”的问题 - 龙笑天下 
    * https://www.ilxtx.com/wordpress-html-entity-decode-title.html 
    * 20181213 更新:wp_title、single_post_title、single_cat_title、get_the_title、single_tag_title 
    */ 
    remove_filter('the_title', 'wptexturize'); 
    remove_filter('wp_title', 'wptexturize'); 
    remove_filter('single_post_title', 'wptexturize');

    方法三:把下方代码复制放到 function 文档里:

    function HTML_entity_decode_title($title) 
    { 
        $title = str_replace("–", "-", $title); 
        $title = html_entity_decode($title); 
        return $title; 
    } 
    add_filter('the_title', 'html_entity_decode_title'); 
    add_filter('wp_title', 'html_entity_decode_title');