php.ini、wp-config、.htaccessに関して、Wordpressはどちらを優先しますか?


10

Wordpress Webサイトの最大アップロード制限を変更したいとし、次の値を指定します。

wp-config.php:128MB php.ini:256MB .htaccess:64MB

では、必要に応じて処理する際に、Wordpressが優先するのはどれでしょうか。

回答:


13

それはあなたがこれらのファイルのそれぞれに変化しているものをあなたの質問から明らかではないが、私はそれがそれぞれの場合に推測PHPの設定upload_max_filesize

通常、設定はこの順序で適用され、それぞれが以前の値を上書きします。

  1. php.ini
  2. .htaccessのApacheディレクティブ
  3. への呼び出し 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


php.iniが常に最初に選択されます。
WpMania.Net 2017

5

基本的に3つのファイルすべてが考慮されます。

WordPress /サーバーは次の順序でチェックします。

wp-config.php > .htaccess > php.ini

「より高いレベル」(チェーンの後半)の何かがあなたの値を制限している場合、前の値は無視されるか上書きされます。チェーンの一部が欠落している場合、.htaccessたとえば、次に高い値が代わりに使用されます。

あなたの例では.htaccessmax_upload_size64 MBに制限されますが、サーバーは最大256 MBで問題なく、WordPressは最初に最大128 MBのファイルサイズも受け入れます。

ファイル介して別の制限を設定.htaccessすることもできます。これにより、からの値が上書きされphp.ini、支配的な値ではなくなります。これは多くのホスティング環境で機能するので、この方法でを上げたり下げたりできる可能性はかなり高いですmax_upload_size

より厳密に構成されたホスティング/サーバーがある場合、設定を上書きするオプションが無効php.iniになっている可能性がありますこの場合、max_upload_sizeからのオーバーライド.htaccessは機能しないため、これが制限要因になる可能性があります。


8
質問が要求するのと同じように、優先順位のリストを指定するとき、これはどのように「機能しない」のですか?.htaccessリストの真ん中にある場合、なぜそれが制限要因になるのでしょうか?
IMSoP 2017

私の表現ははっきりしていなかったと思います。私は彼の質問を「wp-configでより高い値を設定した場合、他のものを「支配する」でしょうか?」と理解しました。そしてそれはそれがどのように機能するかではありません。;-) @bnsはそれについてより良い説明をしました。
flomei 2017

そうです、あなたの今の意味がわかります。ただし、bnsの回答の下でコメントしたように、より高い値で上書きできないという主張を裏付けるドキュメントは見つかりません。私の回答で説明されているように、wp-config.php値は常に無視されますが、.htaccessの高い値がphp.iniの低い値をうまくオーバーライドすると確信しています。
IMSoP 2017

あなたは部分的に正しいですが、.htaccessからのphp.ini値のオーバーライドを無効にすることができます。私の最新の回答を参照してください。
flomei 2017

あなたの更新はまだあなたが.htaccessを介して低い値しか設定できないことを意味します。そこに高い値を設定できなかった理由はわかりません。メカニズムを無効にできるという事実は良い点であり、私は答えでつぶやきましたが、PHP設定が.htaccessで許可されていると仮定すると、.htaccessの値はphp.iniの値を完全に「支配」します同じ設定の場合。
IMSoP 2017

3

flomeiは答えを編集するべきだと思います。正しい答えですが、説明が悪いからです。 Php.ini -> .htaccess -> wp-config.php実際には、各ファイルが読み取られる順序であり、以前に定義された設定がないことを考慮して値を設定します。ただし、以前に定義された設定がある場合、これは、新しい設定の方が低い場合にのみ「上書き」されます。

つまり、64Mbのwp-config.phpと32MBの.htaccessがある場合、すでに下限があるため、wp-config.phpはその設定をオーバーライドしません。最終的に32Mbになります。

しかし、32Mbのwp-config.phpと64MBの.htaccessがある場合、wp-config.phpは以前の設定を32Mbに下げます。

編集:明確にするために、IMSOPが指摘しているように、wp-config.phpでは、 'WP_MEMORY_LIMIT'を変更する場合にPHP設定で許可されているサイズよりも制限的なサイズを設定するだけで、それを超えることはできません。したがって、実際には設定のオーバーライドではありません。実際、実行時のさまざまなポイントで実行される個別のチェックがあります。upload_max_filesize彼が想定しているようにphp設定を変更している場合(質問は変更している設定を示していません)、それは効果がありません。

また、phpの設定post_max_sizeよりも大きい必要があることを考慮する必要がありupload_max_filesizeます


2
私が見た他のどのPHP設定にも当てはまらないので、「新しい値が低い場合にのみ上書きする」ためのドキュメントにリンクできますか。このマニュアルページにも記載されていません。何をされて、私は私の答えで指摘のように述べ、それがあるupload_max_filesizeので、(それがどんな効果を持っているため手遅れおそらくので)実行時に変更することはできませんwp-config.php、それ一つの方法または他の影響を与えることはできません。組み込みのデフォルトの2MBについても言及されており、それよりも確実に高く設定できます。
IMSoP 2017

これは基本的に、同じ問題が発生したときにホスティングプロバイダーのサポートチームが私に説明したものです。電子メールを検索し、見つかった場合は更新します。サーバー内で実際に値をオーバーライドするかどうかは確かではありません、または検証がさまざまな場所で実行時に行われるだけなので、動作は次のようになります。
bns

1
ただ、繰り返しに、あなたが追加している行があればwp-config.phpあるini_set('upload_max_filesize', '32M');、それは持っていないだろう今まで、何の効果もその設定があるため、実行時に設定することができないとして、それは次のように定義されますPHP_INI_PERDIR。(そのドキュメントページが間違っている場合を除いて、それはありそうにありません。)
IMSoP

いいえ、そうです。これは実際には設定のオーバーライドではありません。その別の別の制限、混乱を避けるために私はそれに従って更新します。
bns

1
@IMSoP / bns-特定のwp-config.php値と任意のPHP値をで設定すると、少し混乱があったと思いますini_set()。私が理解しているように、wp-config.php主にWordPress固有の構成値の設定に関係しており、これらの多くは実際に、基になるPHP構成設定(回答で述べたような)によって実際に制限されています(つまり、上限が課せWP_MEMORY_LIMITられています)。これはワードプレスのものです。ただし、PHPで任意のPHP設定値を設定する場合ini_set()、そのような制限はありません。
MrWhite
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.