假设我想更改Wordpress网站的最大上传限制,并提供以下值:
wp-config.php:128MB php.ini:256MB .htaccess:64MB
那么,WordPress在根据需要进行处理时会优先考虑哪个?
假设我想更改Wordpress网站的最大上传限制,并提供以下值:
wp-config.php:128MB php.ini:256MB .htaccess:64MB
那么,WordPress在根据需要进行处理时会优先考虑哪个?
Answers:
这不是从你的问题不清楚是什么,你在每一个文件的变化,但我在每种情况下它是假设的upload_max_filesize
PHP设置。
通常,设置将按此顺序应用,每个设置都将覆盖先前的值:
ini_set()
但是,此设置定义为PHP_INI_PERDIR
,如本页所述,这意味着无法使用进行设置ini_set
,因此wp-config.php
无法更改。因此,在您输入问题的示例中,它将采用64MB的.htaccess中的值。
您可以通过echo ini_get('upload_max_filesize');
在代码中的某个地方运行来验证这一点。
请注意,可以设置其他未在上面列出的值,例如,每用户php.ini文件和其他Apache配置上下文。另外,其中一些可以被禁用,因此,如果您的服务器未设置为允许.htaccess中的替代,您也将无法在其中设置值。
还要注意,Wordpress包含一些自己的配置变量,这些变量以不同的方式与PHP配置交互。例如,WP_MEMORY_LIMIT
将在启动时尝试提高 PHP memory_limit
设置,但具有可检查且永不降低它的代码。没有一般规则,不同的设置会有所不同。
基本上所有三个文件都被考虑在内。
WordPress /您的服务器将按以下顺序检查:
wp-config.php > .htaccess > php.ini
如果某个“较高级别”(在链中后期)的内容限制了您的价值,则先前的价值将被忽略或覆盖。如果缺少一条链,则将.htaccess
使用例如下一个较高的链中的值代替。
在您的示例中,这.htaccess
将限制max_upload_size
为64 MB,尽管您的服务器可以使用256 MB的内存,而WordPress也可以首先接受128 MB的文件大小。
您还可以通过.htaccess
文件设置不同的限制,并通过这样做来覆盖的值php.ini
,以使其不再是主要值。这在很多托管环境中都有效,因此您可以通过这种方式升高或降低它的机会很大max_upload_size
。
如果您具有更严格配置的主机/服务器,则可能禁用了覆盖设置的选项php.ini
。在这种情况下,覆盖max_upload_size
从.htaccess
不需额外的工作,所以这可能是一个限制因素。
.htaccess
在列表的中间,那为什么会成为限制因素呢?
我认为flomei应该编辑答案,因为那是正确的答案,但解释不好。
Php.ini -> .htaccess -> wp-config.php
实际上是每个文件将被读取的顺序,并且将考虑先前未定义的设置来设置值。但是,在存在先前定义的设置的情况下,仅当新设置较低时,此设置才会被“覆盖”。
这意味着,如果您具有64Mb的wp-config.php和32 MB的.htaccess,则:wp-config.php不会覆盖该设置,因为已经存在下限,最终您将获得32Mb。
但是,如果您具有32Mb的wp-config.php和64 MB的.htaccess,则wp-config.php会将先前的设置降低为32Mb。
编辑:正如IMSoP指出的,要弄清楚,wp-config.php仅允许您设置一个比PHP设置允许的大小更严格的大小(如果您要更改“ WP_MEMORY_LIMIT”),它不能超出您的范围。因此,它实际上不是设置替代。实际上,在运行时在不同点进行了单独的检查。如果您upload_max_filesize
按照他的假设更改了php设置(该问题并不表示您正在更改哪些设置),那将无效。
另外,您必须考虑到post_max_size
必须大于upload_max_filesize
PHP设置中的
wp-config.php
是ini_set('upload_max_filesize', '32M');
它有没有效果,以往,因为该设置不能在运行时被设定为它被定义为PHP_INI_PERDIR
。(除非该文档页面是错误的,但似乎不太可能。)
wp-config.php
值和使用设置任意PHP值之间可能存在一些混淆ini_set()
。据我了解,这wp-config.php
主要与设置WordPress特定的配置值有关,其中许多确实受基础PHP配置设置(如WP_MEMORY_LIMIT
答案中所述)的限制(即强加了上限)。这是WordPress的事情。但是,在PHP中使用设置任意PHP配置值时ini_set()
,没有这种限制。