记录一次蛋疼的问题,php能返回但是200,但是网站状态吗是500

  • 背景
    项目是php+vue
    今天尝试切换服务器部署,发现大部分接口就是正常,但是有一个接口奇怪了,状态吗500,但是php有返回记录
    在这里插入图片描述

在这里插入图片描述

  • 解决思路
    1.尝试替换vue的前端和后端的php代码,从正常的服务器拷贝过来发现还是不行
    2.着手从php环境和nginx环境下手排查

  • 解决步骤
    输入php -m查看模块是否完整,发现提示这个php -m PHP Warning: Module 'mbstring' already loaded in Unknown on line 0

如果遇到这个问题,你们可以尝试

# 1. 删除所有 mbstring 配置(包括隐藏的)
sudo find /etc/ -name "*mbstring*" -exec rm -f {} \;

# 2. 检查 PHP 编译参数(如果是内置模块)
php -i | grep "Configure Command" | grep mbstring
# 如果输出包含 --enable-mbstring,需要重编译 PHP 去掉该参数

# 3. 强制重新安装 mbstring
sudo yum remove php-mbstring -y   # CentOS
sudo yum install php-mbstring -y
# 或 Ubuntu: sudo apt-get install --reinstall php-mbstring

# 4. 确认唯一加载源
ls -la /etc/php.d/mbstring.ini  # 应该只存在这一个文件

我的解决方式是从正常的服务器拷贝一个php.ini文件就可以了

  • 总结
    为什么我解决mbstring这个就可以了呢?
    可能的原因
  1. 当 mbstring 被多次加载时:
    第一次加载:正常初始化字符串处理函数(如 mb_strlen())
    第二次加载:尝试重复注册同名函数 → 导致PHP内部函数表混乱
  2. 内存管理冲突
    重复加载的模块会 双重占用内存:
    内存越界访问
    关键数据结构损坏 → 引发500错误

我个人认为,解决了就表示php模块是单一加载了

场景内存状态结果
重复加载模块结构体重叠随机崩溃
单一加载域模块独占内存区稳定运行

如果老鸟发现博文有问题,欢迎指点

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hello Bug

谢谢老板,老板大气,老板硬邦邦

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值