4

PHPを介して(Drupalを介して)大きなファイルをアップロードすると、奇妙な問題が発生しますが、それは問題ではありません。

基本的に、ローカルディレクティブが96Mに設定されていて、ファイルが25Mであっても、post_max_sizeの制限に達したため、ファイルのアップロードが失敗します。

、、およびIIS FastCGIアイドル時間を含むmax_input_time、他のすべてが正しいことを確認しました。max_upload_filesizeこれらはすべて十分に大きく、問題ではありません。

post_max_sizeレジストリ値に変更を保存するPleskを介してディレクティブをオーバーライドしています。ドメインでphpinfo()を実行すると、すべてのディレクティブの正しいローカル値とマスター値が表示されます... 96Mローカル、12Mマスター。

非常に奇妙なことはpost_max_size、php.iniのマスターを12Mから96Mに変更すると(そして変更が有効になっていることを確認すると)、正常に機能することです。マスター値を12Mに戻す(およびローカル値を96Mに維持する)と、すぐにアップロードが再び失敗します。

これはPHPのバグですか、それとも間違っていますか?

4

3 に答える 3

2

PHP_INI_USER実は、Windowsでは、ディレクトリごとにマークされたiniディレクティブのみを設定できます。残念ながら、upload_max_filesize両方post_max_sizeですPHP_INI_PERDIRhttp://php.net/manual/en/configuration.changes.phpのPHPドキュメントから

ディレクトリの設定は、このディレクトリまたはそのサブディレクトリから実行されるすべてのスクリプトに対してアクティブになります。キーの下の値には、PHP構成ディレクティブの名前と文字列値が必要です。値のPHP定数は解析されません。ただし、この方法で設定できるのはPHP_INI_USERで変更可能な構成値のみであり、PHP_INI_PERDIR値は設定できません。

したがって、Pleskにはこれらのディレクティブを変更するためのインターフェイスがあり、それらphpinfo()を取得しても、実際の最大アップロードサイズを変更することはありません。Pleskは、Windowsでそれらを変更することを許可してはphpinfo()ならず、変更を報告してはなりませんが、何ができるでしょうか。

于 2012-08-01T15:32:10.810 に答える
1

php.iniのPHPのpost_max_sizeとupload_max_filesizeを確認し、オーバーライドがないかどうかを確認します(たとえば、ローカルのphp.iniまたは.htaccess)。

編集:phpinfo()は、応答中に処理されるため、要求中にオーバーライドが使用可能かどうか(ファイルのアップロードが発生した場合)を判断するために信頼できないことに注意してください。

于 2012-07-30T21:55:14.183 に答える
0

Pleskでも同様の問題が発生しました。Pleskのテンプレートを編集しましたか?cronジョブを実行すると、Pleskを介して実行しなかった場合、特定の設定編集が失われる可能性があることを私は知っています。

しかし、.htaccessファイルはどうですか?ここでこれらの制限を設定することもできます。これは、Pleskの設定に基づいて、これらの変更を行うのに適した場所である可能性があります。

于 2012-07-31T16:02:04.670 に答える