PHPでupload_max_filesizeを変更する


84

私はPHP5.3.0を使用していますが、バグ(その場合は報告します)または私である可能性のある何かに遭遇したので、確認するように求めています。

このコードを実行する場合:

<?php
ini_set('upload_max_filesize', '10M');
echo ini_get('upload_max_filesize'), ", " , ini_get('post_max_size')

私は最終的に:

2M, 8M

これは、私のphp.iniがこれらを高く設定しているにもかかわらずです。

upload_max_filesize = 10M
post_max_size = 10M

(1回だけ発生)

php.iniで設定しただけでなく、値を設定した後にエラーが発生するため、バグだと思う傾向があります。誰かが私がどこで間違っているのかを確認または指摘できますか?

更新:Apacheを再起動すると、これが修正されたようです-php.iniを変更した場合は、再起動する必要はないといつも思っていました。


9
「php.iniを変更した場合は、再起動する必要はないといつも思っていました。」PHP CLIは、呼び出しごとにphp.iniを解析するため、変更をすぐに取得します。mod_phpはphp.iniを1回解析します-apacheが起動したとき。
フランクファーマー

私は最近同じ問題を抱えていました。upload_max_filesizeは、Apacheを再起動しないと有効になりません。私はPHP5.2.9を使用しています。再起動後、すべてが正常に機能しています。
Haluk 2010

Apacheの完全な再起動を回避するには、「sudo service
apache2reload

回答:


68

PHP.iniの外部で構成値を設定するために省略表記を使用することはできません。悪い値に直面したとき、コンパイルされたデフォルトとして2MBにフォールバックしていると思います。

一方で、をupload_max_filesize使って設定することはできないと思いますini_set()「公式」のリストは、それがあると述べていますPHP_INI_PERDIR


10
あなたは正しいと思います!upload_max_filesizeはPHP_INI_PERDIRタイプであるため、ini_set()を使用してupload_max_filesizeを設定することはできません。これは、php.net
Marco Demaio 2010

2
実際には、PHP.iniの外部で省略表記を使用できます。あなたはそれを使用することができます.htaccessし、また、とini_set。ただし、すべてのバージョンにあるとは限りません。
プロテクター1

70

共有ホスティングプロバイダーを使用していますか?変更しようとしているものをすべてオーバーライドするマスター設定である可能性があります。それらを.htaccessに追加してみましたか?

php_value upload_max_filesize 10M
php_value post_max_size 10M

1
いいえ、これは私のマシン上の私自身のApache / PHPインスタンスです(関連する場合はWindowsです)。それらをApache構成に追加してみます。
ロス

5
更新:これは影響します(10に変更されます)ので、このメソッドは機能します。php.iniで機能しない理由やini_setを使用していない理由については、まだかなり混乱しています。
ロス

+1これは、php.iniにアクセスできない場合の確実な方法です。ありがとうございます。
Alex Coplan

3
これは、PHPをモジュールとして実行しているApacheでのみ機能し、CGIとしては機能しないことに注意してください
ChrisV 2012年

これは、php.iniファイルにアクセスできる場合でも推奨される方法だと思います。グローバル設定としてではなく、必要に応じてこれらの権限を設定できます。
ブライアントジャクソン

42

共有ホストでこの問題が発生し、.htaccessファイルに値を追加できなかったため、ソリューションを共有したいと思いました。

値を含むiniファイルを作成しました。そのような単純な:

「.user.ini」というファイルを作成し、値を追加します

upload_max_filesize = 150M
post_max_size = 150M

ブーム、問題は解決しました。


私のために働いた!ありがとう!
ジャスティンパットニー2015年

4
「メインのphp.iniファイルに加えて、PHPは、要求されたPHPファイルのディレクトリから始めて、現在のドキュメントルートまで、各ディレクトリでINIファイルをスキャンします。」php.net/manual/en/configuration.file.per-user.php
まで

1
ワードプレスサイトでうまく機能します!ありがとう!
avenged_badger 2016

.htaccessからは実行できないため、これはうまく機能しました。ありがとう!
ストラテジスト

PHPは、デフォルトでuser.iniファイルを5分ごとに再読み込みします。したがって、結果がすぐに表示されない場合は、
しばらくお待ち

10

アプリをロードするindex.phpスクリプトと同じディレクトリにある.user.iniファイルを使用してこれを機能させました。内容は次のとおりです。

upload_max_filesize = "20M"
post_max_size = "25M"

これはHerokuの推奨ソリューションです。


5

これは、apache構成で制御することもできます。httpd.confや.htaccessで次のようなものがないか確認してください。

php_value upload_max_filesize 10M

0

wampやxamppなどのローカルサーバーで実行している場合は、それが使用していると思われるphp.iniを使用していることを確認してください。これらのサーバーは通常、デフォルトでhtmldocsフォルダーにないphp.iniになります。



0

デフォルトでは、PHPはサーバーに最大2MBのファイルをアップロードすることを許可します。ただし、条件に応じてファイルアップロードの最大サイズを変更できます。PHP構成ファイルphp.iniを使用すると、PHPでのファイルのアップロードサイズを増減できます。

まず、テキストエディタでphp.iniファイルを開きます。upload_max_filesize変数を検索し、増やしたいサイズを指定します。

post_max_size変数を検索し、増やしたいサイズを指定します。

post_max_size = 128M

こちらから確認できます


-1

その場でini_setを使用する場合は、ここhttp://php.net/manual/en/ini.core.phpにあります。://php.net/manual/en/ini.core.phpに、upload_max_filesizeやpost_max_sizeなどの情報をオンザフライで変更できない(PHP_INI_PERDIR)ことがあります。

php.ini、.htaccess、またはvhostの構成変更のみが、これらの変数を変更しているようです。



弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.