タグ

2015年9月24日のブックマーク (1件)

  • 大容量ファイルをphpでダウンロードさせる方法

    これは結構苦労したので、ログとして残しておく。 phpでダウンロードさせる方法を調べると、ほとんどがreadfile()関数を使えと出てくる。 まあ、間違っていないんだけれども、僕の場合大容量ファイルのダウンロードでなにも考えずにreadfile関数をつかってしまい、サーバーメモリー馬鹿みたいに使用しまくるし、DiskIO負荷は10MB/s にまでなるしで、ヤバい状況になった。 事の顛末はこんな感じ、 ダウンロードさせるなら readfile関数 使え! ⇒ ほー、OK。使ってみよう。 ⇒ 実装してみた。でも20MB超えるファイルをダウンロードすると失敗するよ? ⇒ php.ini ファイルの post_max_size, upload_max_filesize, memory_limit の設定メモリを増やせ! ⇒ 分かった。全部1GBに設定してみたわ。 ⇒ お、正常にアップもダウンもで

    大容量ファイルをphpでダウンロードさせる方法
    halohalolin
    halohalolin 2015/09/24
    readfileはメモリーを食うので、freadやob_start系の命令を使うことで、サーババッファリングの負荷を軽減する。