程序员茄子
全部
编程
代码
资讯
案例
综合
联系我们
软件定制开发/软件按需定制 技术文章
php
mysql
shell
go
vue
css
api接口对接
支付接口对接
mod_php + prefork 容量计算:ServerLimit 默认 256 压着 MaxRequestWorkers,PSS 才是每进程口径
编程
mod_php + prefork 容量计算:ServerLimit 默认 256 压着 MaxRequestWorkers,PSS 才是每进程口径
2026-11-05 00:05:16
mod_php 只能跑 prefork,容量规划要按每进程 PSS 算,opcache 的 mmap 共享段不能乘进程数。附 MaxRequestWorkers 被 ServerLimit 256 压住的报错、MaxConnectionsPerChild 回收取舍,以及 scoreboard 全是 W 时该查什么。
mod_php
Apache
mpm_prefork
性能调优
运维
auto-imports.d.ts 已生成还报 Cannot find name 'ref':TS、ESLint 9、模板三处断链
编程
auto-imports.d.ts 已生成还报 Cannot find name 'ref':TS、ESLint 9、模板三处断链
2026-11-05 00:04:27
unplugin-auto-import 把 import 注入了,静态检查却没看见:dts 落在根目录而 tsconfig 只 include src、ESLint 9 不再读 .eslintrc-auto-import.json、vueTemplate 下 ref 不解包、vueDirectives 没开导致 v-loading 静默失效。按症状给出配置写法与排查顺序。
自动导入
Vue3
Vite
ESLint
TypeScript
前端工程化
Modernizer 3.4.0 拿 javaVersion 当尺子:JDK 8 升 17 时 400+ 条遗留 API 规则怎么接
编程
Modernizer 3.4.0 拿 javaVersion 当尺子:JDK 8 升 17 时 400+ 条遗留 API 规则怎么接
2026-11-05 00:04:10
Modernizer Maven 插件按 rule.version 与 javaVersion 比较来报遗留 Java API,尺子填错一档就全不报或全报。整理 3.4.0 的 pom 接入、绑 verify、三个默认值坑(failOnViolations、includeTestClasses、violationsFile 会禁用默认 400+ 规则)、javap 格式排除项写法、@SuppressModernizer 边界,以及几处不等价替换。
modernizer
Java
Maven
静态检查
JDK升级
ASM
Grype 的退出码语义:--fail-on 触发时返回 2 不是 1,过滤在阈值判断之前
编程
Grype 的退出码语义:--fail-on 触发时返回 2 不是 1,过滤在阈值判断之前
2026-11-05 00:04:09
Grype 在 CI 里最容易出错的不是扫描本身,而是退出码与过滤参数组合:--fail-on 触发返回 2、配置注释却写 1,阈值判断发生在 --only-fixed/--ignore-states/VEX 过滤之后,fix state 四个值决定剩多少条,--only-fixed 与 --only-notfixed 同用会把结果全部过滤成假绿。附区分「策略拦截」与「扫描失败」的包装脚本。
Grype
漏洞扫描
容器安全
SBOM
CI
DevSecOps
notify_url 收不到回调:http 0、3xx、403、405、500 逐层定位
编程
notify_url 收不到回调:http 0、3xx、403、405、500 逐层定位
2026-11-05 00:03:39
浏览器能打开 notify_url,不代表支付平台的服务端 POST 能投递成功。按 http 0(DNS/证书/端口/IPv6)、3xx(尾斜杠与强制 HTTPS 重定向)、403/405、500 分层定位,附支付宝与微信地址格式差异表、curl 复现命令与 Nginx 反代配置。
notify_url
支付回调
异步通知
接口对接
运维
Nginx
EL9 不再提供 mod_php:Apache 2.4 + PHP 8.4 迁到 php-fpm 的配置与失效点
编程
EL9 不再提供 mod_php:Apache 2.4 + PHP 8.4 迁到 php-fpm 的配置与失效点
2026-11-05 00:03:27
EL9 官方仓库不再提供 mod_php,EL8 仍提供但要切 prefork。从 mod_php 迁到 php-fpm + mod_proxy_fcgi 的实测配置,以及 php_value 失效、运行用户变更、REDIRECT_ 前缀、opcache 每池独立、502/503 判据这几个坑。
mod_php
Apache
PHP-FPM
运维
mod_proxy_fcgi
MySQL 8.4 慢查询与锁排查:按总耗时排 SQL,KILL QUERY 不释放锁
编程
MySQL 8.4 慢查询与锁排查:按总耗时排 SQL,KILL QUERY 不释放锁
2026-11-04 21:31:48
MySQL 8.4 慢查询排查的可复现顺序:慢日志参数默认值、按总耗时排名、EXPLAIN 的 type/key/Extra、sys 视图找冗余索引,以及两个实测坑——KILL QUERY 不释放行锁、blocking_query 显示的不是加锁语句。
MySQL
慢查询
锁
索引
goose 迁移:开发用时间戳、上线前 fix 转顺序号,Down 段没写就没有回滚
综合
goose 迁移:开发用时间戳、上线前 fix 转顺序号,Down 段没写就没有回滚
2026-11-04 21:31:48
pressly/goose 的落地笔记:SQL 迁移文件注解、MySQL 必开的 parseTime 与 multiStatements、开发用时间戳上线前 fix 转顺序号、embed 内嵌进二进制,以及 Down 段没写就没有回滚这个前提。
goose
数据库迁移
Go
SQL
复制一个 time.Timer 会让整个 Go 程序卡死,panic 只给一句 ts set in timer
编程
复制一个 time.Timer 会让整个 Go 程序卡死,panic 只给一句 ts set in timer
2026-11-04 21:09:36
Go 1.22 里能跑的 *time.NewTimer(d) 赋值,到 1.23 起会让整个程序冻结或抛 ts set in timer,SIGQUIT 的栈里还看不出根因。讲清无缓冲 channel 与可回收改动为何让复制 Timer 必炸、vet copylock 与运行期动态检查的进展,以及指针写法的修法。
Go
定时器
并发
排障
systemd 259 之后 journal 默认写 /var/log/journal,networkd 的 iptables NAT 规则不再生成
综合
systemd 259 之后 journal 默认写 /var/log/journal,networkd 的 iptables NAT 规则不再生成
2026-11-04 21:08:48
systemd v259 三处默认行为变更会立刻出问题:journal 存储从 auto 变 persistent(只读根、容器、小磁盘都要看)、networkd 与 nspawn 只走 nftables 导致原 iptables NAT 规则不再生成、cgroup2 带 memory_hugetlb_accounting 后大页计入内存上限。附 OOMKills、run0 --empower 与 v260 移除预警。
systemd
运维
Linux
journald
MySQL 8.0 已经 EOL:先升主库还是先升从库,replica_allow_higher_version_source 决定了答案
综合
MySQL 8.0 已经 EOL:先升主库还是先升从库,replica_allow_higher_version_source 决定了答案
2026-11-04 21:07:45
MySQL 8.0.46 是 8.0 最后一个版本,2026 年 4 月起 EOL。往 8.4 还是 9.7 走、主库从库谁先升,本文按 replica_allow_higher_version_source 给出的可行排法来讨论,并附 cpuset cgroup 感知带来的线程数变化与升级前检查 SQL。
MySQL
运维
升级
复制
version
RoadRunner v3:http.middleware 改成从左到右执行,Kafka 重试也不再回写原 topic
编程
RoadRunner v3:http.middleware 改成从左到右执行,Kafka 重试也不再回写原 topic
2026-11-04 21:06:53
RoadRunner v3 升级里几处不报错但改行为的地方:http.middleware 从左到右执行(v5 列表要反转)、Goridge v4 去掉 MessagePack、H2C 只认 prior knowledge、Kafka 重试进进程内队列重启会丢、max_workers 变成"基础池之上的增量"。
RoadRunner
PHP
Go
队列
MySQL 9.7 把 UNIQUE NOT NULL 当主键等价:开着 sql_generate_invisible_primary_key 也不再补 GIPK
编程
MySQL 9.7 把 UNIQUE NOT NULL 当主键等价:开着 sql_generate_invisible_primary_key 也不再补 GIPK
2026-11-04 21:05:49
MySQL 9.7 起 UNIQUE NOT NULL 键在 CREATE/ALTER 中被视为主键等价,开着 sql_generate_invisible_primary_key 的表不再自动长 GIPK,SQL_REQUIRE_PRIMARY_KEY 下也能建这类表。附 InnoDB 行大小估算在 9.7.0 收紧、9.7.4 回退的排查顺序。
MySQL
数据库
DDL
GIPK
Vue 3.6 的 Vapor 不再默认把事件委托到 document:祖先 stopPropagation 不再吃掉子元素的处理函数
代码
Vue 3.6 的 Vapor 不再默认把事件委托到 document:祖先 stopPropagation 不再吃掉子元素的处理函数
2026-11-04 21:05:00
Vue 3.6 RC 里 Vapor 的三处行为差异:事件委托改成 opt-in(要 .delegate 才回到旧行为)、slots.default() 会真的渲染不能当探测、自定义指令变成函数加 getter。附 Vapor 不支持 API 清单与 createVaporApp / interop 的取舍。
Vue
前端
Vapor
迁移
OpenSSH 10 升级后 authorized_keys 里的 DSA 公钥被静默拒绝,日志还给不出原因
综合
OpenSSH 10 升级后 authorized_keys 里的 DSA 公钥被静默拒绝,日志还给不出原因
2026-11-04 21:04:07
OpenSSH 10.0 把 DSA 从代码里删掉,authorized_keys 里的 ssh-dss 公钥会直接登不上,客户端只有 Permission denied。附升级前的三条巡检命令、ssh-keygen -A 跳过 DSA 的坑、版本号字符串匹配失配,以及 sshd-auth 让日志来源变化导致告警漏采。
OpenSSH
运维
Linux
SSH
pnpm 11 升级:五个构建白名单设置合并成 allowBuilds,.npmrc 里除认证外的配置全失效
编程
pnpm 11 升级:五个构建白名单设置合并成 allowBuilds,.npmrc 里除认证外的配置全失效
2026-11-04 21:03:17
pnpm 11 把 onlyBuiltDependencies 等五个构建设置合并成 allowBuilds,未列出的依赖默认不许跑脚本;配置从 package.json 和 .npmrc 搬到 pnpm-workspace.yaml,npm_config_* 全部改名,minimumReleaseAge 默认卡一天。附前后对照与 codemod 覆盖不到的地方。
pnpm
前端工程化
Node.js
迁移
FrankenPHP 1.13 改了 num_threads 的算法:配了 worker 的实例会多起线程,max_threads 不够直接起不来
编程
FrankenPHP 1.13 改了 num_threads 的算法:配了 worker 的实例会多起线程,max_threads 不够直接起不来
2026-11-04 21:02:30
FrankenPHP 1.13 把 num_threads 改成只算非 worker 请求的线程,worker 线程另算在 max_threads 里,配置没重算会启动失败。附 putenv 行为变更、reload 先校验再替换、hot_reload 下 opcache.revalidate_freq 默认值从 2 变 0,以及 PHP2Shell 对应的 PHP 版本要求。
FrankenPHP
PHP
Caddy
部署
gopls v0.24.0 的交互式重构:服务端在算 edits 之前先向你提问
编程
gopls v0.24.0 的交互式重构:服务端在算 edits 之前先向你提问
2026-11-04 20:03:26
LSP 的 code action 一直是「无参函数」,服务端只能猜意图。gopls v0.24.0 用与 Dart 团队合作提的 interactive refactoring 提案(LSP #1164),让服务端在算 edits 之前先弹表单收集输入:struct tag 加哪些键、用什么命名风格、实现哪个接口、声明移到哪个文件。附各动作版本、maphash.Hasher 示例、panic("unimplemented") 桩与 import cycle 风险。
Go
gopls
LSP
重构
编辑器
ingress-nginx 退役后:Traefik 兼容模式零改动吃下 annotation,Gateway API 还得自己补细节
案例
ingress-nginx 退役后:Traefik 兼容模式零改动吃下 annotation,Gateway API 还得自己补细节
2026-11-04 20:01:28
ingress-nginx 2026 年 3 月停止维护后的两条迁移路径实测:Traefik v3.7.16 的 ingress-nginx 兼容 provider 可零改动吃下 ssl-redirect、proxy-read-timeout、whitelist-source-range 等常见 annotation;改走 Gateway API 则要自己补 308 状态码、IP 白名单(Traefik Middleware)与 entrypoint 超时。附 ingress2gateway v1.2.0 把超时转成 10 倍的实测结果。
Kubernetes
Traefik
GatewayAPI
Ingress
运维
支付宝异步通知验签不通过:先分清公钥模式与证书模式,再查签名串
代码
支付宝异步通知验签不通过:先分清公钥模式与证书模式,再查签名串
2026-11-04 09:02:11
支付宝 notify_url 验签 false 的分诊路径:应用公钥与支付宝公钥的区别、公钥模式与公钥证书模式的代码差异、PHP/Go 手写待验签串时被框架二次解码的坑,以及验签通过后仍会掉单的四个二次校验与 trade.query 兜底。
支付宝
异步通知
验签
支付回调
RSA2
Galera 下 causal_reads 等满 10 秒 timeout:换成 wsrep_sync_wait 位掩码
编程
Galera 下 causal_reads 等满 10 秒 timeout:换成 wsrep_sync_wait 位掩码
2026-11-04 00:04:36
Galera 三节点 + MaxScale 读写分离,照抄异步复制的 causal_reads=local 不生效:MASTER_GTID_WAIT 等不到 gtid_slave_pos,每个读白等满 10 秒超时。改用 wsrep_sync_wait 位掩码(1/2/4/8,常用 1/7/15),并记下四个静默跳过的条件:显式事务内、已有等待中的 GTID、非客户端线程、wsrep_dirty_reads=ON;附分区时 ERROR 1205、connection_init_sql_file 注入与连接池复位。
causal_reads
Galera
MariaDB
MaxScale
读写分离
数据库
MaxScale readwritesplit 默认值排障:max_slave_connections=255 与 max_replication_lag=0s
编程
MaxScale readwritesplit 默认值排障:max_slave_connections=255 与 max_replication_lag=0s
2026-11-04 00:04:19
readwritesplit 的三个默认值就能解释多数线上异常:每会话最多 255 条从库连接、max_replication_lag 默认 0s 等于延迟过滤关闭、24.02 起 strict_tmp_tables 默认 true 会在有临时表时静默禁掉主库重连。按参数把后端连接数上界、从库选择判据、master_failure_mode 三值行为算清楚,附可抄的 maxscale.cnf。
readwritesplit
MaxScale
读写分离
数据库代理
MariaDB
version
Seata AT 回滚报 Has dirty records when undo:镜像校验、全局锁与回滚顺序的排查记录
编程
Seata AT 回滚报 Has dirty records when undo:镜像校验、全局锁与回滚顺序的排查记录
2026-11-04 00:04:09
从 Seata AT 模式一次回滚失败切入:SQLUndoDirtyException 的四个判定分支、on update CURRENT_TIMESTAMP 如何破坏镜像校验、全局锁 lockKey 与 300ms 重试预算、undo_log 防悬挂记录,以及 2.0 正序回滚 bug(#6120)的复现条件与判据。
Seata
分布式事务
AT模式
undo_log
MySQL
Java
Vite SPA 打进 nginx 镜像后:启动时生成 env.js,一份镜像跑遍所有环境
编程
Vite SPA 打进 nginx 镜像后:启动时生成 env.js,一份镜像跑遍所有环境
2026-11-04 00:03:54
Vite 的 import.meta.env 在 build 期被静态替换,镜像一旦构建就与环境绑定。记录用容器启动时生成 env.js + 白名单写入 + no-store 缓存的做法,以及 envsubst 不带参数、alpine 缺 gettext、docker-entrypoint.d 执行顺序、覆盖 ENTRYPOINT 代价、提升环境后串配置等具体坑。
SPA部署
nginx
Vite
Docker
envsubst
运行时配置
大家都在搜索什么?
devops
易支付
一个官网+多少钱
统一接受回调
统一回调
python
sub
node
宝塔日志
mysql
shell
ElasticSearch
css
vue
api接口对接
2025
支付接口对接
go
php
php回调
上一页
1
2
3
4
5
6
7
…
345
下一页
共 345 页
到第
页
确定