在 IIS 中通过 web.config 增加 PHP max_input_vars
Increase PHP max_input_vars via web.config in IIS
我在 windows 主机下有一个简单的 wordpress 网站,我知道 Linux 环境更适合 wp 但我需要 windows 另一个 ASP.NET应用。无论如何 wordpress 向我显示一条关于 max_input_vars
设置为 1000 的错误消息,这个值应该是 4000,我无法编辑 php.ini
那么我想知道是否可以在web.config
,我知道在 Apache 中可以在 .htaccess
中设置,所以我希望也可以在 web.config
中设置。
多谢指教!
编辑
我找到了一个解决方案:我用 max_input_vars=4000
创建了一个 php.ini
文件,然后我将它添加到 wp-admin 文件夹,之后错误消息消失并通过 [=34 检查环境设置=] 设置 wordpress 插件 max_input_vars
值为 4000,我不知道这是否是最佳实践,但有效,如果有人有更好的解决方案请解释。
谢谢!
可以设置 PHP 指令的四种模式:
- PHP_INI_USER
- PHP_INI_PERDIR
- PHP_INI_SYSTEM
- PHP_INI_ALL
请看一下这些是如何管理的:http://www.php.net/manual/en/configuration.changes.modes.php
每个指令都定义了其中一种可变模式,您可以访问:http://www.php.net/manual/en/ini.list.php
如您所见,指令 max_input_vars
的可变属性是 PHP_INI_PERDIR
,这意味着可以通过在 php.ini
、[=13] 中添加自定义值来覆盖它=]、httpd.conf
(Apache) 或 .user.ini
。因此,定义一个新的 php.ini
文件来增加 max_input_vars
的限制与其他三个解决方法一样好。
请记住,有时 PHP 使用的某些扩展名可能需要在自定义 ini
文件中是 re-enabled。例如,我有时 运行 遇到 pdo
和 mysqli
被视为已禁用的问题,除非在自定义文件中也明确设置,当使用覆盖 ini
文件。
我知道这已经很长时间了,但我想 post 为搜索此问题的任何人提供解决方案。
- 转到 IIS,然后在右侧有一个停止服务器的选项。单击它。
- 转到您的默认程序文件夹。可能是 C: 驱动器 (C:\Program Files (x86)) 然后搜索 PHP 文件夹.. 可能你会发现不止一个版本。选择您在 wordpress 中使用的那个。
- 在该文件夹中,您将找到一个文件 (php.ini) 使用记事本编辑该文件(您必须使用管理员权限启动记事本)。
- 这是一个大文件.. 所以搜索 (max_input_vars = 1000) 并对其进行注释。所以你必须去掉 max 之前的分号,然后将其增加到 4000。你也可以搜索 memory_limit 并将其增加到 128m 或更多。
- 保存文件并确保文件保存正确。尝试再次打开它并确保您的更改已保存。
- Return 返回 IIS 并启动服务器。
- 关闭浏览器再打开。如果问题已解决,请检查您的 wordpress。
祝你好运。
我在 windows 主机下有一个简单的 wordpress 网站,我知道 Linux 环境更适合 wp 但我需要 windows 另一个 ASP.NET应用。无论如何 wordpress 向我显示一条关于 max_input_vars
设置为 1000 的错误消息,这个值应该是 4000,我无法编辑 php.ini
那么我想知道是否可以在web.config
,我知道在 Apache 中可以在 .htaccess
中设置,所以我希望也可以在 web.config
中设置。
多谢指教!
编辑
我找到了一个解决方案:我用 max_input_vars=4000
创建了一个 php.ini
文件,然后我将它添加到 wp-admin 文件夹,之后错误消息消失并通过 [=34 检查环境设置=] 设置 wordpress 插件 max_input_vars
值为 4000,我不知道这是否是最佳实践,但有效,如果有人有更好的解决方案请解释。
谢谢!
可以设置 PHP 指令的四种模式:
- PHP_INI_USER
- PHP_INI_PERDIR
- PHP_INI_SYSTEM
- PHP_INI_ALL
请看一下这些是如何管理的:http://www.php.net/manual/en/configuration.changes.modes.php
每个指令都定义了其中一种可变模式,您可以访问:http://www.php.net/manual/en/ini.list.php
如您所见,指令 max_input_vars
的可变属性是 PHP_INI_PERDIR
,这意味着可以通过在 php.ini
、[=13] 中添加自定义值来覆盖它=]、httpd.conf
(Apache) 或 .user.ini
。因此,定义一个新的 php.ini
文件来增加 max_input_vars
的限制与其他三个解决方法一样好。
请记住,有时 PHP 使用的某些扩展名可能需要在自定义 ini
文件中是 re-enabled。例如,我有时 运行 遇到 pdo
和 mysqli
被视为已禁用的问题,除非在自定义文件中也明确设置,当使用覆盖 ini
文件。
我知道这已经很长时间了,但我想 post 为搜索此问题的任何人提供解决方案。
- 转到 IIS,然后在右侧有一个停止服务器的选项。单击它。
- 转到您的默认程序文件夹。可能是 C: 驱动器 (C:\Program Files (x86)) 然后搜索 PHP 文件夹.. 可能你会发现不止一个版本。选择您在 wordpress 中使用的那个。
- 在该文件夹中,您将找到一个文件 (php.ini) 使用记事本编辑该文件(您必须使用管理员权限启动记事本)。
- 这是一个大文件.. 所以搜索 (max_input_vars = 1000) 并对其进行注释。所以你必须去掉 max 之前的分号,然后将其增加到 4000。你也可以搜索 memory_limit 并将其增加到 128m 或更多。
- 保存文件并确保文件保存正确。尝试再次打开它并确保您的更改已保存。
- Return 返回 IIS 并启动服务器。
- 关闭浏览器再打开。如果问题已解决,请检查您的 wordpress。
祝你好运。