分类 技术笔记 下的文章

下载xdebug.dll

下载与PHP版本对应的Xdebug.dll,下载链接:https://github.com/xdebug/xdebug/releases

配置php.ini

[Xdebug]
; 加载 Xdebug 扩展
zend_extension = php_xdebug.dll

; 启用 Xdebug,这里同时启用了复合模式
xdebug.mode = debug,coverage
xdebug.start_with_request = yes

; 指定 Xdebug 与 IDE 通信的主机和端口
xdebug.client_host = 127.0.0.1
xdebug.client_port = 9003

; 配置 Xdebug 日志(可选)
xdebug.log = "xdebug.log"

PhpStorm

配置CLI

2024-07-27T16:54:36.png

配置CLI

2024-07-27T16:55:21.png

在这里新增配置。

2024-07-28T02:54:12.png

配置如下图所示。

2024-07-28T02:53:27.png

数据操作权限:

SELECT:允许用户查询数据库中的数据。

INSERT:允许用户向数据库中插入新的数据。

UPDATE:允许用户更新数据库中已有的数据。

DELETE:允许用户从数据库中删除数据。

这些权限用于控制用户对数据库中数据的操作,如查询、添加、修改和删除数据等。
结构操作权限:

CREATE:允许用户创建新的数据库、表、索引等结构对象。

ALTER:允许用户修改数据库中已有的结构对象。

INDEX:允许用户创建索引。

DROP:允许用户删除数据库中的结构对象。

CREATE TEMPORARY TABLES:允许用户创建临时表,这些表在当前会话结束时会被自动删除。

SHOW VIEW:允许用户查看视图。

CREATE ROUTINE:允许用户创建存储过程和函数。

ALTER ROUTINE:允许用户修改存储过程和函数。

EXECUTE:允许用户执行存储过程。

CREATE VIEW:允许用户创建视图。

EVENT:允许用户创建事件。

TRIGGER:允许用户创建触发器。

这些权限用于控制用户对数据库结构的操作,如创建、修改、删除表、索引、视图、存储过程等。
管理权限:

GRANT:允许用户授予或撤销其他用户的权限。

LOCK TABLES:允许用户锁定表,以实现更高级的并发控制。

REFERENCES:允许用户创建外键。

这些权限用于控制用户对数据库管理方面的操作,如授权、锁定表、创建外键等。

在给定账号授权时,可以根据实际需要为用户授予相应的权限,以确保用户能够完成其工作所需的操作,同时保证数据库的安全性和完整性。

这个项目是我开发的一个校园号卡分销系统,按年授权提供给各大高校的营业厅老板使用。

没想到流量超乎我的预设,中途服务器进行了多次扩容,不然根本无法承受的访问。收的他们年授权费用也亏了,明年得涨价😁,总之这个项目是亏本了,收的钱少了。


今天一大早收到负载告警。

这个问题过年期间一直存在,一开始以为是资源过多,因为确实加载了很多图片以及其他静态资源。
当时登录上可视化Linux面板,先看看服务监控,看到区别于往日的上下行流量,下意识的判断是静态资源过多,于是把静态资源全部放到一个单独的语速下并使用CDN配置缓存时间,当时流量确实有减少,但问题并没有解决,因为我并没有发现问题的真正所在,再一个过年,好多事要忙,也没空去继续管了,因为CPU负载也没有100%了,好歹系统能正常访问了。

2024-03-02T03:47:13.png
2024-03-02T03:35:05.png
2024-03-02T03:35:13.png


没想到这个月又出现这种问题,于是我心想,可能是其他问题,也许网站程序或者服务器配置出错了。
暴露出来的特征:CPU 100%、上下行流量不正常。

先分析服务器网络流量,发现是正常的。
2024-03-02T03:34:39.png

再看看CPU占用是怎么回事。

发现是Redis在大量占用。

2024-03-02T03:39:23.png

那么可能是网站程序在不恰当的使用Redis,查看网站日志,找到对应URL。

2024-03-02T03:41:10.png

找到对应的代码。

2024-03-02T03:41:58.png

输出数据后发现有数千条,那这样就知道了。

每个用户访问都会使用Redis查询数千条数据,能不卡才怪。上下翻了下代码,当时为什么要这么写,原来本来设置一分钟的缓存时间错误的设置成了24小时,所以查询的数据量巨大。

问题,搞定!

好习惯:处理完问题之后,服务器防火墙关闭SHS端口哦。🤪

(文中出于安全考虑,只展示关键截图,可能影响系统安全的因素均不予展示)