ファイルアップロードサイズ

アップロードファイルのサイズ制限

おそらくmoodle.orgで最もよく寄せられる質問は「アップロードファイルのサイズ制限を増やすにはどうすればよいですか」です。必要な変更はMoodleのすべてのバージョンで同じですが、異なるOSでは、異なる場所で行う必要があります。アップロードファイルのサイズはさまざまな方法で制限されており、このリストの各ファイルサイズでは次のものが制限されています。

  1. サーバーレベル
  2. Moodleサイトレベル
  3. コースレベル
  4. 活動レベル

これは論争の的になる問題です。主にMoodle内に設定するべきだと思うかもしれないからです。残念ながら、そうではありません、これらはサーバとPHPフォルダに設定される必要がある環境問題です、Moodleはそれ自身の外で働くことができません。

サーバーへの物理アクセス

これらの指示はあなたがあなたのサーバーへの完全な物理的そして管理アクセスを持っていると仮定します。ホスト型サーバーを使用している場合は、ファイルのアップロードサイズを増やすために他の方法を検討する必要があるでしょう。

以下の両方の方法には、長所と短所があります。 php.iniファイルを変更すると、その変更はサーバー上のすべてのphpアプリケーションに影響します。 PHP 5以降、あなたのサーバーにはphp.iniファイルを一つだけ持つことができます。ただしphp.iniメソッドはすべてのWebサーバーで機能します。 .htaccessメソッドは、それが置かれているフォルダーとすべてのサブフォルダーにのみ影響しますが、Apacheでは特定の設定を有効にしておく必要があります。

ファイルサイズの制限 - 仕組み

ホストは、サーバー環境での最大ファイルアップロードサイズに制限を設定することができます。ホストが許可する場合は、これを上書きできます。 PHPはアップロード時に扱うファイルのサイズを制限するために使う設定を持っています。ホストは彼らの特定の認識と彼らの顧客の必要性に基づいてphp.iniでその数字を設定しました。このサイズは[ 管理]> [セキュリティ]> [サイトポリシー]> [最大アップロードファイルサイズ]ドロップダウンコンボボックスの[ Moodle]に表示されます 。サイトのニーズに合わせていつでもこれを変更できます。コース設定ページでは、追加の制限もあります。コース設定がサイト設定を上書きすることも、サイト設定がphp.ini設定を上書きすることもできません。この設定はサーバー設定を上書きすることはできません。この規則の唯一の例外は、サーバーとPHPの両方の設定を操作できることです。その方法については後述します。

php.iniファイルを変更する

ここでは、php.iniファイルを編集してファイルのアップロードサイズを変更する方法について説明します。

ほとんどの場合、これらの指示は以下のとおりです。 /etc/php5/apache2/php.iniファイルで、 "post_max_size"、 "upload_max_filesize"、 "max_execution_time"を、慣れたエディタを使って自分のニーズに合った値に変更する必要があります。

以下は、Moodleのさまざまなインストールのための行ごとの説明です。

Ubuntu Linuxのインストラクション

これらの手順は、あなたがapt-getで標準のMoodleパッケージ、PHP 5およびApache 2をインストールし、すべてデフォルトのインストールとして残していると仮定します。自分でコンパイルした場合は、php.iniファイルがどこにあるか知っていると思います。

php.iniファイルの/ etc / php5 / apache2 /にある以下の3つの設定を編集する必要があります。

  • 「sudo nano /etc/php5/apache2/php.ini」と入力します。
  • CtrlとWを押して「post_max_size」と入力します。
  • あなたのサイトがアップロードとして受け付けるMbの数に値を変更してください
  • CtrlとWを押して「upload_max_filesize」と入力します。
  • あなたのサイトがアップロードとして受け付けるMbの数に値を変更してください
  • CtrlとWを押して「max_execution_time」と入力します。
  • 値を600に変更
  • CtrlとOを押す
  • CtrlとXを押す
  • sudo apachectl restartと入力します。


NGINXシステム管理者は "client_max_body_size XXXm;"も追加するべきです。 nginxのメイン設定ファイルの "http"セクションに。 ( 詳細を参照してくださいあなたはSSLを使用している場合、それはあまりにもSSL サーバ場所については、上記を設定するために、あなたが必要となります)。

新しいファイルサイズの上限が[管理]> [セキュリティ]> [サイトポリシー]> [最大アップロードファイルサイズ]に表示されます。

Mac上のXAMPPのインストラクション

これらは、 利用可能なXAMPPサンプルダウンロードパッケージを使用してMac上のMoodleに対してこれを実行する方法の説明です 。 (これはOS Xプロダクションサーバー用ではありません。)

  • ApacheとMySQLがXAMPPコントロールアプリで実行されている場合は閉じて、XAMPPコントロールアプリを閉じます。
  • Finderを開いてアプリケーションに行く
  • 下に移動してフォルダXAMPP / xamppfiles / etcを開きます。
  • TextEdit(または他のプレーンテキストエディタ)でファイルphp.iniを開く
  • post_max_size設定を検索し、これを128M(デフォルト)からmoreに設定します。最大500M
  • upload_max_filesizeについても同じことをします(番号を同じにします)。
  • max_execution_time設定を検索し、これを300まで(アップロードでタイムアウトが発生した場合はそれ以上)
  • php.iniファイルを保存します
  • いつものようにApacheとMySQLを再起動します。


注意:あなたがあなたのMacに管理者権限でログインしていない限り、php.iniファイルを保存するときに "パーミッションが拒否されました"というエラーが出るかもしれません。これを回避するには、php.iniファイルがある/ etcディレクトリを一時的に書き込み可能に設定します。その方法については、 こちらまたはこちらをご覧ください。

Windows XPおよびServer 2003の指示

これらの手順は、最新のPHP 5.3.x Windows zipパッケージをダウンロードし、それをC:\ PHPに解凍したことを前提としています。 PHPを別の場所にインストールした場合は、「C:\ PHP」への参照をすべて、PHPをインストールした場所にも変更します。

lightbulb.png UTF-8形式でファイルを保存することができます任意のテキストエディタをダウンロードしてインストールし、 クリムゾンエディタは 、1つである、メモ帳++ではなく、ワードパッドやメモ帳のいずれかの別、使用することです!問題は、ワードパッドまたはメモ帳にPHPの要件と互換性がない可能性がある隠し文字が含まれることです。
  • C:\ PHPを開く
  • このフォルダ内のphp.iniファイルを右クリックして、[ アプリケーションから開く...]を選択し、選択したエディタを選択します。
  • Ctrl + Fを押して「post_max_size」と入力します(必要に応じて[検索]をクリックします)。
  • あなたのサイトがアップロードとして受け付けるMbの数に値を変更してください
  • Ctrl + Fを押して「upload_max_filesize」と入力します(必要に応じて[検索]をクリックします)。
  • あなたのサイトがアップロードとして受け付けるMbの数に値を変更してください
  • Ctrl + Fを押して「max_execution_time」と入力します(必要に応じて[検索]をクリックします)。
  • 値を600に変更
  • Ctrl + Sまたは保存ボタンを押します。
  • エディタを終了してください。
  • Webサーバーを再起動して、編集した変更をPHPに再ロードします。
    • IISの場合
    • サーバーのスタートメニューを開き、「ファイル名を指定して実行」を選択します。
    • 「iisreset / RESTART」と入力します。
    • Apache 2とWindows XPの場合
    • スタート>すべてのプログラム> Apache>再起動の順に選択します。
    • Apache 2とWindows Serverの場合
    • 次のコマンドは、ApacheをWindows Server上のサービスとしてインストールしている限り機能します。
    • サーバー上でスタートメニューを開き、「実行」を選択します
    • 「httpd -k restart」と入力します。

新しいファイルサイズの上限が[管理]> [セキュリティ]> [サイトポリシー]> [最大アップロードファイルサイズ]に表示されます。

注:これらの手順はXampp Windowsインストーラーもカバーしています。 C:\ PHPをC:\ Moodle \ server \ phpに置き換えて、通常のストップスタートでMoodleを再起動してください。

Apache設定ファイルの修正

Ubuntu Linuxのインストラクション

あなたはmoodleディレクトリのconfig.phpファイルを編集する必要があるかもしれません:

  • root権限を取得するには、「gksudo nautilus」と入力します。
  • / etc / moodleに移動します
  • apache.confを開きます
  • 「<IfModule mod_php5.c>」に進んでください。
  • "php_value upload_max_filesize = 2M"を高い値に変更してください。
  • "php_value post_max_size = 2M"を高い値に変更してください。
  • 「<IfModule mod_php4.c>」に進んでください。
  • "php_value upload_max_filesize = 2M"を高い値に変更してください。
  • "php_value post_max_size = 2M"を高い値に変更してください。
  • ファイルを保存
  • sudo /etc/init.d/apache2 restartと入力します。

.htaccessファイルを変更する

次の手順はApache Webサーバー上でのみ機能します。また、Apacheサーバーは上書きを許可されている必要があります。伝統的には、PHPがApacheのモジュールとして実行されているときにのみ.htaccessファイルを使用できますが、Apache 2.2では、これはもはや当てはまらないようです。これで、モジュールまたはcgi形式のどちらでも.htaccessファイルを使用できます。同様に、.htaccessファイルの使用を許可すると、サーバーでパフォーマンスが低下する可能性がありますが、望ましい結果ではありません。ホストに確認してください。

.htaccessファイルは分散構成ファイルです。つまり、フォルダごとに使用して、各ユーザーのフォルダとサブフォルダを構成できます。 Apache設定ファイルの "AllowOverrides"ディレクティブを.htaccessファイルで変更することはできません。手動で設定できるのはホストだけです。通常、ホストはあなたがあなたのサイトのルートに.htaccessファイルを置くでしょう。あなたはそれを以下と同じように編集することができ、そしてあなたが設定した上書きはうまくいくでしょう。あるいは、テキストエディタで独自の.htaccessファイルを作成することもできます。 .configのように他の名前と呼ばれることもあります。 。で始まるファイルがある場合は、テキストエディタでそれを開くことをお勧めします。好奇心の余地がありません。

以下の情報を含むMoodleのメインディレクトリ( 'moodledata'ディレクトリではなく 'index.php'がある場所)に.htaccessという名前のファイルを作成してください。

php_value upload_max_filesize 20971520
php_value post_max_size 20971520
php_value max_execution_time 600

20971520は20Mbの整数値です。次のサイトを使用して、 メガバイトをバイト変換できます。

.htacessファイルを編集する方法の詳細については、 Apache Tutorial:.htaccessファイルを参照してください。

IIS 7.0 / 7.5の設定を変更する(Windows Server 2008、Windows Server 2008 R2)

最初に活動を増やし、タイムアウトを要求します(大きなファイルが遅い接続でも成功するようにします)。

FastCGI Settings > Edit (Right-click on PHP application)
Set Process Model > Activity Timeout to '3600' (one hour)
Set Process Model > Request Timeout to '3600' (one hour)

次の設定「最大許容コンテンツ長」

Request Filtering > Edit Feature Settings:
Set 'Maximum allowed content length' to your desired file size (in bytes) e.g. '536870912' for 512MB (default is approximately 28.6MB)

ホストサーバー

アップロードされたファイルとダウンロードされたファイルのサイズについては、ホストされているサーバーとは少し異なることがあります。あなたはおそらく.htaccessファイルを作成または変更するか、php.iniファイルを修正するように言われるでしょう。

lightbulb.png あなたが何かを試みる前にあなたのサービスプロバイダーと話をすることは良い考えかもしれません。彼らはおそらく「使い方」についての指示を持っていて、アップロードされたファイルのサイズに独自の制限を持っているかもしれません。ホストによっては、ファイルサイズをギガバイト単位で測定するものと、メガバイト単位で測定するものがあります。あなたが彼らの制限に不満を抱いているならば、それからあなたの契約をチェックして、あなたが好きな制限と価格を持っているものにあなたのプロバイダーを変えることを検討してください。

ホストサーバーの.htaccess

.htaccessファイルの目的の1つは、サーバーとphp.iniファイルの両方の現在の制限を上書きすることです。あなたのホストされているサーバーはあなたのMoodleのどこにそのファイルが配置される必要があるかをあなたに知らせるべきですが、一般的にはルートに十分です。彼らはすでにあなたが使うことができる標準ファイルを持っているかもしれません、もしそうなら、それを使ってください - しかしおそらくそうではありません。

.htaccessファイルに次の行を追加します。

 php_value upload_max_filesize 128M
 php_value post_max_size 128M
 

これはアップロードを128MBに制限します、しかしあなたはそれをあなたがあなたのプロバイダーと同意するどんなサイズにでもすることができます。文言は、サーバーの要求に応じて多少異なる場合があります。

ホステッドサーバーのphp.ini

サーバによっては、moodleルートの.htaccessファイルを変更することを許可せず、phpディレクティブにphp.iniファイルを使用するように指示することができます。ここでは、php.iniファイルの修正という上記のセクションにある手順を使用できます

ホステッドサーバーのmoodleサブフォルダにあるphp.iniファイルを見つけます。万が一のためにバックアップとしてファイルをコピーしたいと思うかもしれません。 php.iniを編集し、コード内で "upload_max_filesize"とpost_max_sizeを見つけます。 =の後に番号を変更します。ここでの最大ファイルサイズは20メガバイトです。

upload_max_filesize = 20M
post_max_size = 20M
lightbulb.png まだ変更されていませんか? cpanelを使用しているホストの中には、サービス/ソフトウェアの下にphp configプログラムがあるものがあります。 "Single php.ini"オプションを使用して、変更するphp.iniファイルの場所を必ずメモしてください。これにより、同じ領域の.htaccessファイルが変更され、phpを使用するすべてのプログラムのサーバー制限が変更されます。
lightbulb.png まだ変更されていませんか? NGINXシステム管理者はclient_max_body_size XXXmも追加するべきです。 nginxのメイン設定ファイルの "http"セクションに。 ( 詳細を参照してくださいあなたはSSLを使用している場合、それはあまりにもSSL サーバ場所については、上記を設定するために、あなたが必要となります)。

参照