KapsuleHost网站托管为WordPress、WooCommerce和PHP网站提供哪些PHP版本和扩展,您可以自行更改哪些设置,以及为什么更改最多需要五分钟才能生效。
静态、Node.js和Python网站不运行PHP。与网站相关的所有PHP事务都集中在一个位置:网站,点击该网站,设置,然后PHP。该页面包含版本选择器、您可以更改的设置、Composer运行器,以及PHP错误日志。

选择PHP版本
可选四个版本:8.4、8.3、8.2和8.1。新建网站默认使用8.3。
请选择您的软件实际支持的最新版本。较新的PHP速度明显更快,且安全修复的支持周期也更长。之所以不建议直接跳到最新版本,是出于兼容性考虑:一个旧插件或多年前编写的自定义代码,在从未测试过的版本上可能会直接失败。
要更改版本,选择相应版本后点击应用版本。更改会立即生效,您无需进行任何重启操作,也不会造成任何停机。
请先在预发布环境中更改PHP版本,逐页点击检查网站,确认无误后再在生产环境中更改。如果您必须在生产环境中直接操作,请选择您能够实时监控的时段进行,并且要知道切换回旧版本只需一次点击。另请参阅预发布环境。
如果版本更改导致网站出现问题,请切换回之前的版本并查看日志。错误信息会指出无法运行的文件。另请参阅更改PHP版本和错误日志。
您可以更改的设置
PHP页面以下拉菜单的形式提供五项设置。这些设置之所以被展示出来,正是因为它们在实践中最容易引发问题。
| 设置 | 默认值 | 可选值 | 控制内容 |
|---|---|---|---|
memory_limit | 256M | 128M、256M、512M、1024M、2048M | 单次请求可使用的内存量 |
max_execution_time | 30 | 30、60、120、300、600 | 单次请求可运行的秒数 |
upload_max_filesize | 64M | 16M、32M、64M、128M、256M | 可上传的最大单个文件大小 |
post_max_size | 65M | 17M、33M、65M、129M、257M | 最大的表单提交总大小 |
max_input_vars | 3000 | 1000、3000、5000、10000 | 单次提交可包含的最大字段数 |
您需要调整的设置取决于具体情况:
- 超过一定大小的上传失败:请提高
upload_max_filesize,并同步提高post_max_size。 - 大型表单或页面构建器在保存时丢失字段:请提高
max_input_vars。这个问题很隐蔽也很令人困扰,因为不会出现任何错误提示,多余的字段只是被默默丢弃了。 - 页面在加载到一半时无故中断,且没有任何错误提示:请提高
memory_limit。另请参阅WordPress内存限制。 - 长时间的导入或导出操作超时:请提高
max_execution_time,并考虑改用命令行来执行该任务。另请参阅WP-CLI。
post_max_size必须大于upload_max_filesize,因为上传内容是随表单一起提交的。如果您选择的组合不满足这一条件,平台会自动将post_max_size上调以符合要求。这就是为什么您有时会看到一个并非自己选择的数值。
为什么更改最多需要五分钟才能生效
这是本页面最常见的困惑之处,因此有必要说清楚。
您的设置会被写入您网站文档根目录下的一个.user.ini文件。PHP会读取该文件,然后将其缓存300秒,也就是五分钟。在该缓存过期之前,PHP会继续使用之前的数值。
因此,在保存更改之后:
- 页面在最多五分钟内仍会显示旧的限制值。
phpinfo()在最多五分钟内仍会显示旧的限制值。- 强制刷新无济于事,清除浏览器缓存同样无济于事。
- 您无需重启任何内容,实际上也无法重启。只需耐心等待即可。
如果已经超过五分钟,数值仍未发生变化,那就说明确实出现了问题,值得提交工单。
自行编辑.user.ini
如果您愿意,也可以通过SFTP或SSH直接编辑.user.ini,或者在需要设置面板未提供的指令时这样做。该文件位于您网站的文档根目录下。另请参阅SFTP访问。
格式为每行一条指令:
memory_limit = 512M
max_execution_time = 120
关于.user.ini能做什么,有两个重要限制:
它只对PHP允许按目录或按用户设置的指令生效。上述五项设置均符合条件。只能在系统级别设置的指令,例如disable_functions或通过extension=加载扩展,在.user.ini文件中会被忽略。它们不会报错,只是悄无声息地不起作用,这正是许多人为此耗费一整个下午的原因。
面板只能读取简单的键名。包含点号的指令,例如opcache.enable或date.timezone,PHP会正常遵循,但不会显示在面板的表单中。如果您手动设置了此类指令,之后又通过面板更改了其他设置,请事后检查该文件。
KapsuleHost网站托管运行的是nginx,而非Apache。.htaccess文件不会被任何程序读取。放置在.htaccess文件中的PHP指令,例如php_value memory_limit,在这里完全不起作用。请改用.user.ini或面板设置。另请参阅WordPress与.htaccess。
有哪些扩展可用
标准构建的扩展范围很广,涵盖了WordPress、WooCommerce和大多数PHP应用程序所需要的一切。
数据库:mysqli、pdo_mysql、sqlite3、pdo_sqlite
图像:gd、imagick、exif
缓存:Zend OPcache、redis、memcached
文本与区域设置:mbstring、iconv、intl、gettext、ctype
XML与数据:dom、simplexml、xml、xmlreader、xmlwriter、xsl、json
网络:curl、soap、sockets、ftp、openssl
数学与加密:bcmath、sodium、hash、random
文件与系统:fileinfo、zip、zlib、phar、posix、pcntl、shmop、calendar、tokenizer
有一点版本差异值得了解:imap扩展在8.3及更早版本中存在,但在8.4中不存在,因为该扩展在该版本中已从PHP本身移除。如果您的应用程序仍然需要它,请保留在8.3版本,或将该应用程序迁移到现代的邮件处理库。
未安装的组件:PostgreSQL驱动程序、MongoDB、Xdebug、mcrypt,以及ionCube和SourceGuardian等商业代码加载器。
您无法自行从面板中启用或禁用扩展。如果您的应用程序需要列表之外的某个扩展,请提交工单并说明您所运行的内容。能否添加该扩展取决于扩展本身的情况。另请参阅提交支持工单。
检查实际加载的内容
与其猜测,不如直接确认:
- 在WordPress中:依次打开工具、站点健康、信息、服务器。其中会列出PHP版本及相关限制。
- 通过SSH:使用
php -v查看版本,使用php -m查看已加载的扩展。另请参阅添加SSH密钥。
请勿在您的网站根目录中保留phpinfo()文件。它会向任何发现它的人公开您的路径、扩展和配置信息,而自动化扫描工具正是专门寻找这个文件名的。如果您创建该文件用于检查某些内容,请在检查完毕后立即删除。