用WordPress的过程中,遇到下面这些问题,都需要修改PHP的参数:
- 上传主题或者导入备份时提示“上传的文件大小超过php.ini文件中定义的upload_max_filesize值”;
- 提示“Allowed memory size of xxx bytes exhausted”(内存耗尽);
- 导入演示数据到一半就中断,提示“Maximum execution time exceeded”;
- 菜单项加多了保存不上,或者Elementor提示需要提高max_input_vars。
Hostinger的虚拟主机不能直接编辑php.ini文件,这些参数要在hPanel里修改。
在哪里修改PHP参数?
- 登录hPanel,点击「Websites」,进入网站的「Dashboard」;
- 在左侧菜单点击「Advanced」→「PHP Configuration」;
- 切换到「PHP options」标签页;
- 修改需要的参数;
- 拉到页面底部,点击保存。
修改立即生效。
这个页面分成两部分:上面是一些开关,下面是可以填写数值的参数。Hostinger页面上的参数名是驼峰写法,比如 memoryLimit,对应的就是php.ini里的 memory_limit。
常用参数说明
| hPanel里的名称 | php.ini里的名称 | 作用 |
|---|---|---|
| uploadMaxFilesize | upload_max_filesize | 单个上传文件的最大体积 |
| postMaxSize | post_max_size | 一次提交数据的最大体积 |
| memoryLimit | memory_limit | 单个PHP进程能用的最大内存 |
| maxExecutionTime | max_execution_time | 脚本最长运行时间(秒) |
| maxInputTime | max_input_time | 脚本接收数据的最长时间(秒) |
| maxInputVars | max_input_vars | 一次提交最多接收多少个变量 |
上传文件大小
由 uploadMaxFilesize 和 postMaxSize 两个参数共同决定。postMaxSize 要大于或等于 uploadMaxFilesize,否则大文件还是传不上去。
比如要上传一个200MB的备份文件,两个值都要设置到256M以上。
内存限制
memoryLimit 是最常需要调整的参数。Elementor这类页面构建器和WooCommerce比较吃内存,官方建议至少256M。
执行时间
导入演示数据、恢复备份、批量处理图片这类耗时的操作,需要把 maxExecutionTime 调大,比如300秒。maxInputTime 一般跟着设成一样的值。
max_input_vars
默认值是1000。菜单项很多的网站、Elementor复杂的页面、WooCommerce有很多变体的产品,提交的变量数会超过1000,表现出来就是保存之后丢了一部分内容。一般调到3000或5000。
WordPress网站的推荐值
| 参数 | 推荐值 |
|---|---|
| memoryLimit | 256M 或以上 |
| uploadMaxFilesize | 128M 或以上 |
| postMaxSize | 128M 或以上 |
| maxExecutionTime | 300 |
| maxInputTime | 300 |
| maxInputVars | 3000 或以上 |
Hostinger默认已经把这些参数设置成了当前套餐允许的最大值,所以大多数情况下,你打开页面会发现数值已经不低了。如果某个值比上面的推荐值小,再手动调上去。
参数的上限由套餐决定
这些参数不能无限调大,每个套餐有各自的上限,越高的套餐上限越高。在页面上填写超过上限的值是保存不了的。
如果已经调到了最大值还是不够用,比如内存到了上限仍然报内存耗尽,有两种可能:
- 网站确实需要更多资源:只能升级套餐,各套餐的差别见《Hostinger主机多少钱?续费贵吗?》;
- 某个插件有问题:正常的WordPress网站256M到512M内存是够用的。如果给多少用多少,更可能是某个插件的代码有问题,应该去排查插件,而不是继续加内存。
上面的开关是做什么的?
「PHP options」页面上方有一组开关,常见的有:
- allowUrlFopen:允许PHP通过网址读取远程文件。有些插件需要它,默认是打开的;
- displayErrors:把PHP的报错直接显示在页面上。平时要关闭,只在排查问题时临时打开,否则访客会看到报错信息,还会暴露服务器的文件路径;
- logErrors:把PHP的报错记录到日志文件里。排查问题时很有用,见《Hostinger的网站出错了怎么办》;
- exposePhp:在响应头里显示PHP的版本号,建议关闭;
- shortOpenTag:允许使用
<?这种短标签,只有很老的程序才需要。
页面里还有一项禁用函数(disable functions)的列表,列出了出于安全考虑被禁止调用的PHP函数。不清楚作用的话保持默认,不要随便从列表里移除。
修改之后不生效怎么办?
1. WordPress自己也有内存限制
WordPress有自己的内存设置,会在PHP的限制之内再限制一层。打开网站根目录的 wp-config.php,在“That's all, stop editing!”这一行的上面加上:
define( 'WP_MEMORY_LIMIT', '256M' );
define( 'WP_MAX_MEMORY_LIMIT', '512M' );
2. .htaccess 或 .user.ini 里有旧的设置
以前如果有人在网站根目录的 .htaccess 或 .user.ini 里写过PHP参数,可能会和面板里的设置冲突。在File Manager里打开这两个文件,把相关的行删掉。
3. 这个目录用 .htaccess 单独指定了PHP版本
通过 .htaccess 指定PHP版本的目录,不会应用面板里的PHP选项。
4. 插件自己有限制
有些备份、导入类的插件有自己的文件大小限制,要到插件的设置里去改。
5. 缓存
清除一下LiteSpeed Cache的缓存再试。
怎么确认修改已经生效?
进入WordPress后台的「工具」→「站点健康」→「信息」,展开“服务器”一栏,可以看到当前实际生效的PHP内存限制、最大上传文件大小、最长执行时间和max input vars。
VPS上怎么改?
VPS没有这些限制,可以直接编辑php.ini。用宝塔面板的话,在软件商店里打开对应PHP版本的设置,“配置修改”里可以直接改这些参数,改完重载PHP即可。
总结
Hostinger的PHP参数在网站Dashboard的「Advanced」→「PHP Configuration」→「PHP options」里修改。最常调整的是内存限制、上传文件大小、执行时间和max_input_vars,这些参数默认已经是套餐允许的最大值,上限由套餐决定。改完不生效的话,检查wp-config.php里的WordPress内存设置,以及 .htaccess 里有没有冲突的旧配置。
PHP相关的其他设置,见《Hostinger支持哪些PHP版本?》和《Hostinger如何安装PHP扩展?》。更多Hostinger的使用教程,可以查看《Hostinger主机教程汇总》。



