ファイルアップロードサイズ
アップロードファイルサイズの制限
おそらくmoodle.orgで最もよくある質問は アップロードファイルのサイズ制限を増やすにはどうすればよいですか? です。行う必要のある変更は、Moodleのすべてのバージョンで同じですが、OSが異なるだけで、異なる場所で行う必要があります。アップロードファイルのサイズはさまざまな方法で制限されており、このリストの各ファイルは次のサイズを制限しています。
- サーバレベル
- Moodleサイトレベル
- コースレベル
- 活動レベル
これは、主にMoodle内に設定する必要があると思われる可能性があるため、論争の的となる問題です。残念ながら、これはそうではありません。これらはサーバとPHPフォルダで設定する必要がある環境問題であり、Moodleはそれ自体の外部では機能しません。
サーバへの物理的アクセス
これらの手順は、サーバへの完全な物理的および管理的アクセス権があることを前提としています。ホストされているサーバを使用している場合は、ファイルのアップロードサイズを増やすために他の方法を検討する必要があります。
以下の両方の方法には、良い面と悪い面があります。 php.iniファイルを変更すると、その変更はサーバ上のすべてのphpアプリケーションに影響します。 PHP5以降、サーバ上に持つことができるphp.iniファイルは1つだけです。ただし、php.iniメソッドはすべてのWebサーバで機能します。 .htaccessメソッドは、フォルダとそれが配置されているすべてのサブフォルダにのみ影響しますが、Apacheで特定の設定を有効にする必要があります。
ファイルサイズの制限 - 仕組み
ホストは、サーバ環境での最大ファイルアップロードサイズに制限を設定する場合があります。これは、ホストで許可されている場合は上書きできます。 PHPには、アップロード時に処理するファイルのサイズを制限するために使用する設定があります。ホストは、特定の認識と顧客のニーズに基づいて、php.iniにその数値を設定しました。このサイズは、Moodle サイト管理 > セキュリティ > サイトセキュリティ設定 > 最大アップロードファイルサイズ ドロップダウンコンボボックスに表示されます。これは、サイトのニーズに合わせていつでも変更できます。 コース設定ページには、さらに制限を加えることができます。コース設定がサイト設定を上書きしたり、サイト設定がphp.ini設定を上書きしたりすることはできません。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パッケージであるPHP5とApache2をインストールし、すべてをデフォルトのインストールのままにしておくことを前提としています。自分でコンパイルした場合は、php.iniファイルがどこにあるかがわかると思います。 注意 PHPの最新バージョンは7.2+ のため、ファイルを見つける必要があるかもしれません。 phpinfo()を実行すると、次のような正しい場所が表示されます:/etc/php/7.3/apache2/php.ini
/etc/php5/apache2/にあるphp.iniファイルで次の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本番サーバ用ではありません。)
- XAMPP Controlアプリを介して実行されている場合はApacheとMySQLを閉じ、XAMPP Controlアプリを閉じます
- Finderを開き、アプリケーションに移動します
- 移動ダウンやフォルダを開くXAMPP / xamppfiles / など
- TextEdit(または別のプレーンテキストエディタ)でファイル php.ini を開きます
- post_max_size 設定を検索し、これを128M(デフォルト)からそれ以上に増やします。 500Mが最大です
- upload_max_filesize についても同じようにします(番号を同じにします)
- max_execution_time 設定を検索し、これを300まで(アップロードでタイムアウトが発生した場合はそれ以上)
- php.iniファイルを保存します
- 通常どおりApacheとMySQLを再起動します
注:Macへの管理者アクセスでログインしていない限り、php.iniファイルを保存するときに permission denied エラーが発生する場合があります。これを回避するには、php.iniファイルが配置されている /etc ディレクトリを一時的に書き込み可能に設定します。その方法については、こちらまたはこちらを参照してください。
WindowsXPおよびServer2003の手順
これらの手順は、最新のPHP 5.3.x Windows zipパッケージをダウンロードしてC:\ PHPに抽出したことを前提としています。 PHPを別の場所にインストールした場合は、C:\ PHP へのすべての参照をPHPをインストールした場所にも変更します。
ファイルをUTF-8形式で保存できるテキストエディタをダウンロードしてインストールします。Crimson Editorはそのようなものです。NotePad++は別のものです。ワードパッドまたはメモ帳の代わりに使用してください。問題は、ワードパッドまたはメモ帳に、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 と入力します
- Apache2およびWindowsXP
- スタート > すべてのプログラム > Apache > 再起動に移動します
- Apache2およびWindows Serverの場合
- 次のコマンドは、Apache2をサービスとしてWindowsServerにインストールしている限り機能します
- サーバでスタートメニューを開き、実行 を選択します
- 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_valueupload_max_filesize = 2M をより高い値に変更します
- php_valuepost_max_size = 2M をより高い値に変更します
- "<IfModule mod_php4.c>"セクションに移動します
- php_valueupload_max_filesize = 2M をより高い値に変更します
- php_valuepost_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など、他の名前で呼ばれることもあります。.で始まるファイルがある場合は、好奇心からテキストエディタで開くことをお勧めします。
次の情報を含む.htaccessというファイルをMoodleのメインディレクトリ('moodledata' ディレクトリではなく 'index.php' が配置されている場所)に作成します。
php_value upload_max_filesize 20971520 php_value post_max_size 20971520 php_value max_execution_time 600
20971520は、20Mbの整数値です。次のサイトを使用して、メガバイトをバイトに変換できます。
.htacessファイルを編集する方法の詳細については、次のページを参照してください。Apacheチュートリアル:.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) eg '536870912' for 512MB (default is approximately 28.6MB)
ホストサーバ
アップロードおよびダウンロードされたファイルサイズがホストされているサーバでは、状況が少し異なる場合があります。おそらく、.htaccessファイルを作成または変更するか、php.iniファイルを変更するように指示されるでしょう。
何かを試みる前に、サービスプロバイダーに相談することをお勧めします。彼らはおそらく ハウツー についての指示を持っており、アップロードされたファイルサイズに独自の制限があるかもしれません。一部のホストはファイルサイズをギガバイトで測定し、その他のホストはメガバイトで測定します。制限に不満がある場合は、契約を確認し、希望する制限と価格のプロバイダーに変更することを検討してください。 |
。ホストサーバでの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
まだ変更されていませんか? cpanelを使用している一部のホストには、services/softwareの下にphpconfigプログラムがあります。 単一のphp.ini オプションを使用し、変更するphp.iniファイルの場所をメモしてください。これにより、同じ領域の.htaccessファイルが変更され、phpを使用するすべてのプログラムのサーバ制限が変更されます。 |
まだ変更されていませんか? NGINXシステム管理者もclient_max_body_size XXXmを追加する必要があります。 nginxメイン構成ファイルの http セクションに移動します。 (詳細を参照)SSLを使用している場合は、上記を設定する必要がありますSSL サーバ および 場所 も同様です。 |
関連項目
- 管理者FAQドキュメントページ
- サイトポリシーのドキュメントページ
- Moodleの使用アップロードされたファイルの最大許容サイズを増やすための詳細な手順フォーラムディスカッション
- Moodleの使用ホストサーバで最大許容サイズを増やすための手順フォーラムディスカッション
- Moodleの使用apt-get経由でMoodleをインストールする際の最大アップロードサイズの変更に関するヘルプフォーラムディスカッション