无法修改主机提供商设置的最大上传限制及PHP Max Input Vars值的求助
嘿,我之前也碰到过类似的WordPress上传限制和PHP参数不生效的问题,给你几个实用的排查和解决方向:
确认实际加载的PHP配置文件
有时候我们修改的php.ini并不是当前Web服务实际使用的版本。你可以在WordPress根目录新建一个info.php文件,内容如下:<?php phpinfo(); ?>然后通过浏览器访问这个文件(比如
http://你的域名/info.php),找到Loaded Configuration File这一项,检查它的路径是不是你修改的/etc/php/8.1/apache2/php.ini。如果不是,就得去修改对应路径下的配置文件。重启Apache服务让配置生效
修改php.ini之后,必须重启Apache服务才能让新配置生效,执行下面的命令:sudo systemctl restart apache2别忘了加上
sudo获取管理员权限哦。检查.htaccess的配置是否正确
确保你在.htaccess里添加的参数格式正确,且服务器允许通过.htaccess修改PHP配置:
针对上传限制,添加以下内容:php_value upload_max_filesize 40M php_value post_max_size 40M php_value memory_limit 128M针对PHP Max Input Vars,添加:
php_value max_input_vars 3000另外可以在phpinfo页面查看
AllowOverride选项,如果它的值不是All,可能会导致.htaccess的配置不生效,这时候需要修改Apache的站点配置文件,把对应目录的AllowOverride改成All,然后重启Apache。排查额外的PHP配置文件
有些Linux系统会在/etc/php/8.1/apache2/conf.d/目录下有额外的配置文件,这些文件里的设置可能会覆盖php.ini的内容。你可以检查这个目录下的所有.ini文件,看看有没有upload_max_filesize或者max_input_vars的配置,如果有,改成你需要的值,然后重启Apache。确认文件权限是否正确
确保php.ini和.htaccess的权限能让Apache正常读取:- php.ini的权限建议设置为
644,所有者为root:root - .htaccess的权限建议设置为
644,所有者为www-data(或者你的Web服务运行用户)
- php.ini的权限建议设置为
先按这些步骤一步步排查,应该能找到问题所在。如果还是不行,可以再检查下WordPress的主题或插件有没有额外的限制,但这种情况比较少见。
备注:内容来源于stack exchange,提问作者Massimo Sparavigna

