そのため、Raspberry Pi3でホストされているLAMPWebサーバーがあります。RaspberryPiには、ハードウェアRAIDコントローラーを介して接続されたRAID10があります。私の目標は、RaspberryPiのLAMPスタックセットアップを介してPHPを使用して、Webページから大きなファイルをアップロードできるようにすることです。
0.97Gのファイルは正常にアップロードできますが、1.32Gのファイルはアップロードできないため、アップロードファイルのサイズを約1Gに制限している必要があります。
Php.iniには、現在次のセットがあります。
memory_limit
:1000Mpost_max_size
:4Gupload_max_filesize
:4Gupload_tmp_dir
:/mnt/raid10/Files/Temp
(これは接続されたRAID上にあるため、Raspberry Piが使用するSDカードにファイルをダンプするだけではありません。これを追加するとdid以前からの最大サイズが小さくなります。 。)他にどの設定を調整する必要があるのかわからず、提案を受け付けています。
アップロードファイルのサイズ制限の削除
ユーザーが大きなファイルをサーバーにアップロードできるようにするLAMP(Linux、Apache、MySQL、PHP)セットアップを構成するには、次のことを行う必要があります。
php.ini
の次の変数を変更します
memory_limit
= 1000M-メモリ制限をシステムで使用可能なものに設定しますpost_max_size
= 4G-この値がupload_max_filesize
値以上であることを確認しますupload_max_filesize
= 4G-これを最大にしたいものに設定しますupload_tmp_dir:
/mnt/raid10/Files/Temp
-デフォルトではこれは無効になっており、一時的な場所はOSがインストールされているのと同じディスク上にあります。 Raspberry Piからすべてを実行する私の場合、それはSDカードになります。制限を少なくするために、代わりにこれをネットワークドライブの場所に設定しました。上記を実行した後、ファイルアップロードサイズの制限は、デバイスで使用可能な物理メモリ、memory_limit
に設定されているもの、およびファイルシステムの制限(FATファイル構造の場合は4GB)です。私のRaspberryPi 3の場合、それは1GBでした。
メモリ制限をバイパスして、使用可能なメモリの量よりも大きいファイルをアップロードします
メモリ制限を超える唯一の方法は、アップロードをチャンク化することです。チャンクを有効にすると、アップロード中に次のようになります。
チャンクの使い方
これに似たダウンロードハンドラーを使用している場合( https://github.com/blueimp/jQuery-File-Upload/blob/master/server/php/UploadHandler.php )、多くの組み込みオプションが利用可能です。
私の場合、#fileuploadが宣言されているところで、maxChunkSize
の行を追加しました。
$('#fileupload').fileupload({
maxChunkSize: 10 * 1024 * 1024, // 10 MB <-----This is the line I added
add: function (e, data) {
blah blah blah
}
});
}
});
ここに配置される値は、使用されるチャンクサイズになります。選択したサイズは少し実験が必要です。小さいものはアップロード速度をかなり遅くし、大きすぎるとサイトのユーザーはかなり長い間プログレスバーに進行状況が表示されなくなります。私にとって10MBは幸せな媒体でした。
*アップロードのプログレスバーは各チャンクが開始したときにのみ移動するため、Niceの連続プログレスバーよりも途切れがちになりますが、実際には問題ありません。