宝塔面板修改PHP配置应编辑模板文件php.ini.bak或通过Web界面操作,直接改php.ini会被覆盖;关键参数如memory_limit、max_execution_time、extension、date.timezone需谨慎设置;多站点差异化配置可用.user.ini或Nginx的fastcgi_param实现。
php.ini 文件,别直接编辑系统路径下的文件直接在终端用 vim /www/server/php/82/etc/php.ini(版本号可能不同)改,改完重启 PHP 也未必生效——宝塔会定期覆盖这个文件。真正生效的是宝塔自己维护的「配置模板」,它每次重启 PHP 或更新配置时,会基于模板自动生成实际的 php.ini。
/www/server/php/{版本号}/etc/php.ini(只读,不建议手动改)/www/server/php/{版本号}/etc/php.ini.bak(宝塔读取并生成最终文件的依据)php.ini 时,哪些参数不能乱调界面里填的值会直接写进模板,但部分参数有隐含依赖或冲突,改错会导致 PHP 启动失败、网站 500 或扩展加载异常。
memory_limit 调太高(比如 2G)且服务器内存不足,PHP-FPM 子进程可能被 OOM killmax_execution_time 设为 0(不限制)在线上环境风险高,容易卡住请求,建议设为 300 或按需调整extension= 相关项前,先确认对应扩展已安装(如 redis.so 对应 redis 扩展),否则 PHP 启动报错:PHP Warning: PHP Startup: Unable to load dynamic library 'redis'
date.timezone 必须设为合法时区名(如 Asia/Shanghai),设成 PRC 或空值会导致 date() 返回警告改完点「保存」,不代表立刻生效。常见失效原因不是改错了,而是没走对流程。
info.php 文件,内容为 ,浏览器访问,搜索你改的参数名,看显示值是否更新php.ini?宝塔不原生支持,得绕开宝塔所有站点共用同一套 PHP 配置,没有 per-site php.ini 的图形化开关。想实现差异化(比如 A 站开 display_errors,B 站关),只能靠运行时控制或 Nginx/FastCGI 传递。
.user.ini(需确保 php.ini 中 user_ini.filename = ".user.ini" 且未被注释).user.ini 内容示例:display_errors=On、upload_max_filesize=64M(仅支持部分参数)fastcgi_param PHP_VALUE "upload_max_filesize=64M \n post_max_size=64M";(注意换行和空格)注意:.user.ini 修改后不会立即生效,需等 OPcache 缓存过期(默认 300 秒)或手动清空 OPcache(宝塔「PHP 设置
