You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用sed正则表达式替换php配置中post_max_size的任意值

解决GNU sed修改php.ini中post_max_size的正则替换问题

针对你的场景,以下是两种适配不同情况的GNU sed正则替换命令,可直接修改/usr/local/etc/php/php.ini中的post_max_size配置:

1. 仅修改已生效(未注释)的配置行

这个命令会匹配所有未被;注释的post_max_size行,保留原有的缩进格式,将任意数字+M的数值替换为128M:

sed -i 's/^\([[:space:]]*\)post_max_size[[:space:]]*=[[:space:]]*[0-9]*M/\1post_max_size = 128M/' /usr/local/etc/php/php.ini

正则解析:

  • ^ 匹配行开头
  • \([[:space:]]*\) 捕获行首的任意空白字符(空格/制表符),替换时用\1保留原缩进
  • post_max_size 精确匹配配置项名称
  • [[:space:]]*=[[:space:]]* 匹配等号前后任意数量的空白
  • [0-9]*M 匹配任意数字结尾加M的数值

2. 同时处理注释/未注释的配置行

如果需要自动去掉注释(若存在)并修改数值,使用这个命令:

sed -i 's/^\([[:space:]]*\);\?[[:space:]]*post_max_size[[:space:]]*=[[:space:]]*[0-9]*M/\1post_max_size = 128M/' /usr/local/etc/php/php.ini

额外正则解析:

  • ;\? 匹配0个或1个分号,兼容已注释和未注释的行,替换时自动移除注释符号

备份文件注意事项

如果需要在修改前自动备份原文件,给-i参数加上后缀,比如:

sed -i.bak 's/^\([[:space:]]*\)post_max_size[[:space:]]*=[[:space:]]*[0-9]*M/\1post_max_size = 128M/' /usr/local/etc/php/php.ini

执行后会生成php.ini.bak备份文件,避免误修改导致的问题。

内容的提问来源于stack exchange,提问作者DevWL

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 09:25:26