Hostinger如何配置PHP参数?

蜗牛大人Hostinger主机教程

本文含推广链接:通过此链接购买,本站可获得佣金,不影响你的价格。

用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参数?

  1. 登录hPanel,点击「Websites」,进入网站的「Dashboard」;
  2. 在左侧菜单点击「Advanced」→「PHP Configuration」;
  3. 切换到「PHP options」标签页;
  4. 修改需要的参数;
  5. 拉到页面底部,点击保存。

修改立即生效。

这个页面分成两部分:上面是一些开关,下面是可以填写数值的参数。Hostinger页面上的参数名是驼峰写法,比如 memoryLimit,对应的就是php.ini里的 memory_limit。

常用参数说明

hPanel里的名称php.ini里的名称作用
uploadMaxFilesizeupload_max_filesize单个上传文件的最大体积
postMaxSizepost_max_size一次提交数据的最大体积
memoryLimitmemory_limit单个PHP进程能用的最大内存
maxExecutionTimemax_execution_time脚本最长运行时间(秒)
maxInputTimemax_input_time脚本接收数据的最长时间(秒)
maxInputVarsmax_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网站的推荐值

参数推荐值
memoryLimit256M 或以上
uploadMaxFilesize128M 或以上
postMaxSize128M 或以上
maxExecutionTime300
maxInputTime300
maxInputVars3000 或以上

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主机教程汇总》。

文章版权归作者所有,转载请注明出处:https://woniune.com/posts/hostinger-php-configuration/

相关推荐