当前位置: 首页 > article >正文

一个WordPress连续登录失败的问题排查

文章目录

    • 1. 问题背景
    • 2. 解决方案搜索
    • 3. 问题定位
    • 4. 排查过程
    • 5. 清理空间
    • 6. 处理结果
    • 7. 后续优化

1. 问题背景

登录请求URL:

Request URL:
https://www.xxxxxx.com/wp-login.php

返回的响应头信息是:

location:
https://www.xxxxxx.com/wp-admin/

证明登录成功。

接下来浏览器自动跳转, 请求头信息是:

Request URL: https://www.xxxxxx.com/wp-admin/
Request Method: GET
Status Code: 302 Found
Remote Address: 8.210.93.167:443
Referrer Policy: strict-origin-when-cross-origin

结果响应信息变成这样:

location:
https://www.xxxxxx.com/wp-login.php?redirect_to=https%3A%2F%2Fwww.xxxxxx.com%2Fwp-admin%2F&reauth=1

再次要求登录。

试了很多次,都是一样的结果。

2. 解决方案搜索

使用搜索引擎,搜索关键字: wordpress 不能登录

找到一篇知乎的文章:

网站WordPress后台死活不能登录怎么办?

尝试了里面提供的多种方法, 都不能解决,还是同样的错误。

3. 问题定位

既然处理不了,那就看看Nginx日志是否报错。

# 进入Nginx日志目录
cd /var/log/nginx/# 查看当前目录下的文件列表
# ls -l
ll# 这里发现了一个197MB的错误日志文件
# -rw-r--r-- 1 nginx nginx  197636096 5月  13 11:27 error.log# 查看
tail -n 100 error.log

结果, 在这里发现了很多条类似的错误日志。

摘录如下:


2025/05/13 11:19:26 [error] 16175#0: *10189413 FastCGI sent in stderr: "PHP message: WordPress数据库查询SHOW FULL COLUMNS FROM `wp_options`时发生Disk full (/tmp/#sql_543_0.MAI); waiting for someone to free some space... (errno: 28 "No space left on device")错误,这是由require('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, call_user_func_array, wp_cron, spawn_cron, set_transient, update_option查询的
PHP message: WordPress数据库查询SHOW FULL COLUMNS FROM `wp_usermeta`时发生Disk full (/tmp/#sql_543_0.MAI); waiting for someone to free some space... (errno: 28 "No space left on device")错误,这是由wp_signon, wp_set_auth_cookie, WP_Session_Tokens->create, WP_Session_Tokens->update, WP_User_Meta_Session_Tokens->update_session, WP_User_Meta_Session_Tokens->update_sessions, update_user_meta, update_metadata查询的" while reading response header from upstream, client: 183.225.154.250, server: xxxxxx.com, request: "POST /wp-login.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "www.xxxxxx.com", referrer: q^C

找到其中的关键原因, Disk full, 也就是磁盘满了。

使用 df -h 命令查看:

# 查看磁盘使用情况
df -h# 文件系统      容量    已用     可用  已用%    挂载点
# /dev/vda1    40G    38G      0    100%    /

确认是磁盘空间占满导致的问题。

4. 排查过程

磁盘空间用满, 或者内存空间溢出, 是很多服务器端故障问题的原因。
排查问题时, 可以优先排查这一类问题。

我们可以使用 du -sh 命令来辅助进行磁盘空间占用情况排查, 以查看各个目录占用的空间。

# 进入需要排查的目录
cd /# 查看当前目录下的磁盘空间占用情况
du -sh *

得到的结果大致如下:

2.1G	data
1.6G	root
23G	    usr
9.3G	var

简单分析, 这里的情况是:

  • /usr 目录占用了 23GB
  • /var 目录占用了 9.3GB

有了这个信息, 我们就可以依次进入各个目录, 排查到底是哪些文件或目录占用了磁盘空间。


# 依次进入各个子目录排查
cd /usr/
du -sh *cd /usr/local/
du -sh *# 发现了一个目录使用的磁盘空间较多
# 17G	 wwwcd /usr/local/www
du -sh *# 继续往下查找
# 17G	tomcat-8.0.48cd /usr/local/www/tomcat-8.0.48
du -sh *# 17G	logs# 继续往下排查
cd /usr/local/www/tomcat-8.0.48/logs/
# 查看文件列表
ll 

通过 ll 命令, 发现该目录下有大量的文件,

这里列出部分:

ll
总用量 5129216
-rw-r--r-- 1 root root    6955733 111 2020 access_log.2020-11-01.txt
-rw-r--r-- 1 root root    6956111 113 2020 access_log.2020-11-02.txt
......
-rw-r--r-- 1 root root     250140 512 23:44 access_log.2025-05-12.txt
-rw-r--r-- 1 root root      44236 513 11:36 access_log.2025-05-13.txt-rw-r--r-- 1 root root       1115 111 2020 catalina.2020-11-01.log
-rw-r--r-- 1 root root       3580 112 2020 catalina.2020-11-02.log
......
-rw-r--r-- 1 root root       6473 511 21:05 catalina.2025-05-11.log
-rw-r--r-- 1 root root       8669 512 23:18 catalina.2025-05-12.log-rw-r--r-- 1 root root 1198692264 513 11:36 catalina.out
-rw-r--r-- 1 root root 2671361318 513 11:36 gc.log-rw-r--r-- 1 root root       5527 111 2020 localhost.2020-11-01.log
-rw-r--r-- 1 root root       4950 113 2020 localhost.2020-11-03.log
......
-rw-r--r-- 1 root root       5887 512 07:32 localhost.2025-05-12.log
-rw-r--r-- 1 root root       5887 513 06:53 localhost.2025-05-13.log

可以看到:

  • catalina.out 文件的大小是 1198692264, 大约 1.1GB.
  • gc.log 文件的大小是 2671361318, 大约 2.6GB.
  • 此外, 还有大量的从 2020 年开始的 Tomcat 日志。

5. 清理空间

确实是很久没有清理日志文件了。

如果是生产环境,那么一般会配置定期归档或清理的命令。

这里因为是个人站点, 所以直接把比较老的文件删除即可。


# 进入目标目录
cd /usr/local/www/tomcat-8.0.48/logs/# 列出文件列表
ll # 执行清理
# rm -f localhost.2025-04* localhost.2025-03*
# rm -f localhost.2025-02* localhost.2025-01*
# rm -f localhost.2024* localhost.2023* localhost.2022* 
# rm -f localhost.2021* localhost.2020*# 继续列出文件列表
ll # 继续执行清理
# rm -f catalina.2025-04* catalina.2025-03*
# rm -f catalina.2025-02*  catalina.2025-01*
# rm -f catalina.2024* catalina.2023* catalina.2022* 
# rm -f catalina.2021* catalina.2020*# 继续列出文件列表
ll # 继续执行清理
# rm -f access_log.2025-04* access_log.2025-03*
# rm -f access_log.2025-02*  access_log.2025-01*
# rm -f access_log.2024* access_log.2023* access_log.2022* 
# rm -f access_log.2021* access_log.2020*

6. 处理结果

在浏览器重新页面,登录成功。 此问题处理完成。

7. 后续优化

如果是持续运维和升级的系统,一般不会有这么大的日志文件。

如果是容器化的部署系统,也会有很多类似的清理脚本来辅助运行。

为了防止出现类型情况, 需要执行一些优化操作:

    1. 设置JVM的GC日志大小和滚动策略。 比如这篇文章:

ROTATING GC LOG FILES

    1. 设置日志定期清理任务, 比如清理3个月之前的,满足特定前缀的日志文件。

How to rotate catalina.out without restarting tomcat

    1. catalina.out 文件切割或清空。

How to Rotate Tomcat catalina.out

相关文章:

一个WordPress连续登录失败的问题排查

文章目录 1. 问题背景2. 解决方案搜索3. 问题定位4. 排查过程5. 清理空间6. 处理结果7. 后续优化 1. 问题背景 登录请求URL: Request URL: https://www.xxxxxx.com/wp-login.php 返回的响应头信息是: location: https://www.xxxxxx.com/wp-admin/ 证明登录成功。 接下来浏览器…...

【SSM-SSM整合】将Spring、SpringMVC、Mybatis三者进行整合;本文阐述了几个核心原理知识点,附带对应的源码以及描述解析

SSM整合的基础jar包 需要创建的层级: controller层 该层下需要创建对应的控制器Servlet POJO文件夹 该层下需要创建与数据库对应的POJO类 mapper层 该层下需要创建Mapper的接口实现 service层 该层下需要创建业务层的接口及其接口实现 需要创建的配置文件&#x…...

Go语言超时控制方案全解析:基于goroutine的优雅实现

一、引言 在构建高可靠的后端服务时,超时控制就像是守护系统稳定性的"安全阀",它确保当某些操作无法在预期时间内完成时,系统能够及时止损并释放资源。想象一下,如果没有超时控制,一个简单的数据库查询卡住…...

spark运行架构及核心组件介绍

目录 1. Spark 的运行架构1.1 Driver1.2 Executor1.3 Cluster Manager1.4 工作流程 2. Spark 的核心组件2.1 Spark Core2.2 Spark SQL2.3 Spark Streaming2.4 MLlib2.5 GraphX 3. Spark 架构图4. Spark 的优势4.1 高性能4.2 易用性4.3 扩展性4.4 容错性 5. 总结 1. Spark 的运行…...

idea中编写spark程序

### 在 IntelliJ IDEA 中配置和编写 Spark 程序 要在 IntelliJ IDEA 中高效地开发 Spark 程序,需要完成一系列必要的环境配置以及项目搭建工作。以下是详细的说明。 --- #### 1. 安装与配置 IntelliJ IDEA 为了确保 IDE 可以支持 Scala 开发,首先需要…...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(21):复习

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(21):复习 1、前言(1)情况说明(2)工程师的信仰 2、知识点(1)じょうけん 条件形1、復習 (&#x…...

MYSQL数据库集群高可用和数据监控平台

项目环境 项目拓扑结构 软硬件环境清单 软硬件环境清单 软硬件环境清单 主机名IP硬件软件 master1 192.168.12.130 VIP:192.168.12.200 cpu:1颗2核 内 存:2GB HDD:20GB 网 络:NAT VmWare17 OpenEuler22.03 SP4 MySql8.0.3…...

Spark SQL 读取 CSV 文件,并将数据写入 MySQL 数据库

在 Spark 中,可以使用 Spark SQL 读取 CSV 文件,并将数据写入 MySQL 数据库。以下是一个完整的示例,展示如何实现这一过程。 环境准备 安装 MySQL:确保 MySQL 数据库已安装并运行。创建 MySQL 数据库和表:CREATE DAT…...

C++矩阵操作:正交矩阵(旋转矩阵)

文章目录 一、简介二、实现代码三、实现效果一、简介 我们知道判断一个矩阵的正交性可以看它是否符合以下条件: R T R = I R^TR=I R...

基于单片机的车灯智能控制系统设计与实现

标题:基于单片机的车灯智能控制系统设计与实现 内容:1.摘要 随着汽车行业的快速发展,车灯的智能化控制成为提升行车安全和驾驶体验的关键因素。本文旨在设计并实现一种基于单片机的车灯智能控制系统。采用单片机作为控制核心,结合光照传感器、雨滴传感器…...

机器学习第十一讲:标准化 → 把厘米和公斤单位统一成标准值

机器学习第十一讲:标准化 → 把厘米和公斤单位统一成标准值 资料取自《零基础学机器学习》。 查看总目录:学习大纲 关于DeepSeek本地部署指南可以看下我之前写的文章:DeepSeek R1本地与线上满血版部署:超详细手把手指南 一、买菜…...

uni-app vue3版本打包h5后 页面跳转报错(uni[e] is not a function)

先看问题 解决方案 在HBuilderX项目中,若需在Web配置中显式关闭摇树优化(Tree Shaking),可以通过以下步骤实现:首先,在配置中打开摇树优化,然后再将其关闭。这样操作后,配置文件中会…...

大二java第一面小厂(挂)

第一场: mybatis怎么防止数据转义。 Hutool用的那些你常用的方法。 springboot的常用注解。 redis的多级缓存。 websocket怎么实现的多人协作编辑功能。 怎么实现的分库分表。 mysql里面的各种操作,比如说分表怎么分,分页查询怎么用。 mybat…...

【Redis】缓存穿透、缓存雪崩、缓存击穿

1.缓存穿透 是指客户端请求的数据在缓存中和数据库中都不存在,这样缓存永远不会生效,导致请求直接穿透缓存到达数据库,给数据库带来压力的情况。 常见的解决方案有两种: 缓存空对象:实现简单,维护方便&am…...

双目云台摄像机:双摄安防功能全方位

双目云台摄像机是一种具有革命性设计的云台摄像机设备,其核心在于其独特的双摄像头配置。以下是对这种先进安防设备的详细介绍: 一、核心原理 双目云台摄像机的核心原理在于利用两个摄像头从不同角度捕捉同一场景,通过先进的算法计算两个图…...

告别数据僵尸!Redis实现自动清理过期键值对

在这个数据爆炸的时代,内存就像珍贵的土地资源,而Redis则是这片土地上的智能管家。它不仅能高效存储数据,还能像秋叶定时凋零般,让键值对在指定时间自动消失。今天,就让我们揭开这项"数据保鲜"技术的奥秘。 …...

web第三次课后作业--基于JDBC对mysql数据库的增删查改操作

一、工程搭建步骤 1.新建java项目,添加jdbc依赖 2.写java程序 3.添加mysql数据源,连接本地数据库 4.运行程序二、运行结果 三、代码 代码解析 加载数据驱动 try {Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundExceptio…...

《P2345 [USACO04OPEN] MooFest G》

题目背景 P5094 [USACO04OPEN] MooFest G 加强版 题目描述 约翰的 n 头奶牛每年都会参加“哞哞大会”。 哞哞大会是奶牛界的盛事。集会上的活动很多,比如堆干草,跨栅栏,摸牛仔的屁股等等。 它们参加活动时会聚在一起,第 i 头…...

现代 Web 自动化测试框架对比:Playwright 与 Selenium 的深度剖析

现代 Web 自动化测试框架对比:Playwright 与 Selenium 的深度剖析 摘要:本文对 Playwright 与 Selenium 在开发适配性、使用难度、场景适用性及性能表现等方面进行了全面深入的对比分析。通过详细的技术实现细节阐述与实测数据支撑,为开发者…...

【网络协议】TCP、HTTP、MQTT 和 WebSocket 对比

从协议本质、工作原理、特点、应用场景等方面详细对比 TCP、HTTP、MQTT 和 WebSocket。 1. TCP(Transmission Control Protocol,传输控制协议) 本质 协议类型:传输层协议(OSI模型第4层)。核心功能&#x…...

Cython打包多层目录Python文件方法

为了使用Cython打包多层目录下的Python文件,并保持目录结构,请按照以下步骤操作: 步骤1:项目结构示例 假设项目结构如下: myproject/setup.pysrc/__init__.pymodule1.pysubdir/__init__.pymodule2.py步骤2&#xff…...

[数据结构]5. 栈-Stack

栈-Stack 1. 介绍2. 栈的实现2.1 基于链表的实现2.2 基于数组的实现 3. 栈操作CreateInitilizateDestoryPushPopTopEmptySize 1. 介绍 栈(stack) 是一种遵循先入后出逻辑的线性数据结构。顶部称为“栈顶”,底部称为“栈底”。把元素添加到栈…...

2020年下半年试题三:论云原生架构及其应用

论文库链接:系统架构设计师论文 论文题目 近年来,随着数字化转型不断深入,科技创新与业务发展不断融合,各行各业正在从大工业时代的固化范式进化成面向创新型组织与灵活型业务的崭新模式。在这一背景下,以容器盒微服务…...

基于Spring Boot + Vue的高校心理教育辅导系统

一、项目背景介绍 随着高校对学生心理健康教育的重视,传统的人工心理辅导与测评模式已经难以满足广大师生的个性化需求。为了提高心理服务的效率、便捷度和覆盖范围,本项目开发了一个高校心理教育辅导系统,集成心理评测、辅导预约、留言交流…...

JavaSwing之-JDialog

JavaSwing之-JDialog JDialog 是 Java Swing 中用于创建对话框窗口的容器类,继承自 Dialog 类(AWT),常用于显示临时信息、获取用户输入或执行模态操作。它是 javax.swing.JDialog 包中的类。 与 JFrame 不同的是,JDia…...

【学习路线】 游戏客户端开发入门到进阶

目录 游戏客户端开发入门到进阶:系统学习路线与推荐书单一、学习总原则:从底层出发,项目驱动,持续迭代二、推荐学习路线图(初学者→进阶)第一阶段:语言基础与编程思维第二阶段:游戏开…...

部署安装gitlab-ce-17.9.7-ce.0.el8.x86_64.rpm

目录 ​编辑 实验环境 所需软件 实验开始 安装部署gitlab171.配置清华源仓库(版本高的系统无需做)vim /etc/yum.repos.d/gitlab-ce.repo 2.提前下载包dnf localinstall gitlab-ce-17.9.7-ce.0.el8.x86_64.rpm --rocklinux 3.修改配…...

备战菊厂笔试2-BFS记忆化MLE?用Set去重-Set会TLE?用SortedSet剪枝

目录 200.岛屿数量 不用getnei,直接在dfs判断,去掉解包 如果害怕栈溢出那么可以用bfs 2617.网格图中最少访问的格子数 注意特判! MLE主要是因为vis占用的内存过大 用SortedSet有序剪枝 什么是SortedSet? 基本性质 导入 …...

主机A向主机B发送一个长度为L字节的文件,假设TCP的MSS为1460字节,则在TCP的序号不重复使用的前提下,L的最大值是多少?

📘题干回顾: 主机A向主机B发送一个长度为L字节的文件,假设TCP的MSS为1460字节,则在TCP的序号不重复使用的前提下,L的最大值是多少? 这个问题关键在于“TCP序号不重复使用”。 ✅ 正确答案是:D.…...

【RabbitMQ】发布确认机制的具体实现

文章目录 模式介绍建立连接单独确认代码实现逻辑运行结果 批量确认代码实现逻辑运行结果 异步确认实现逻辑介绍代码实现逻辑运行结果 三种策略对比以及完整代码 模式介绍 作为消息中间件,都会面临消息丢失的问题,消息丢失大概分为三种情况: …...