2011-06-27 26 views
3

私は、Excelのレポートを生成するためにPHPExcelを使用しています:どのようにメモリエラーのPHPExcelを解決するには?

  • 私の周り600キロバイト
  • 報告書は15枚
  • 各シートは約200行と12列が含まれていているレポートを持っています。
  • 1枚のシートには数式が含まれています。
  • 私はPHPExcelを読み書きの両方に使用しています。
  • 私はアマゾン無料のWeb層サーバー
  • を使用しています私は、サーバーに約600メガバイトのRAMを持つのです

問題は、Excelファイルへの書き込みプロセスは、(原因メモリのうちに)殺されていることです

どうすればよいですか?他のExcelライブラリがありますか?私は読み書き能力を備えたライブラリが必要です。

メモリ不足の問題を解決する別の方法はありますか?

答えて

1

PHPExcelで実行される600KBのファイルが600MBのメモリをいっぱいにするとは思えません。おそらく、PHPに割り当てられたメモリが使い果たされているだけでしょう。 (あなたがアクセス権を持っている場合、推奨)あなたは中utilのsedを使用することができ、ルートアクセス権を持つ php.iniファイルにmemory_limit = 16Mを追加

  • :あなたはこれらのメソッドのいずれかを使用してPHPスクリプトに使用可能なメモリを増やすことができますLinux/Unixベースのシステムで、64Mのメモリを増やすことができます。 php.iniファイルを正しく見つけることを忘れないでください! sed -i 's/memory_limit = .*/memory_limit = 64M/' /etc/php5/apache2/php.ini
+0

まあ、私が使用していないウェブinterface..Iは、コマンドラインからphpexcelを実行しているプロジェクトのルートフォルダに.htaccessファイルにphp_value memory_limit 16Mを追加するPHPスクリプト

  • ini_set('memory_limit', '16M');を追加します..itsちょうどローカルデータベースからデータを取って、それをexcelファイルに書いています。私はウェブを使用していないので、 "php_value memory_limit 16Mを.htaccessファイルに追加する"という意味はありません。コミットラインのアクセスも私はmemory_limitを設定する必要がありますか?ローカルマシンでコードをテストしたところ、およそ258MBのRAMを取っていました。ここにmemory_test ..httpのコードがあります://pastebin.com/Lb4jZwiB –

  • +0

    さて、最初の2つの方法とコマンドラインからスクリプトを実行すると、 '-d memory_limit = 300M' –

    +1

    というフラグで起動することもできますが、cli/php.iniファイルのmemory_limitは-1に設定されています。また、最大メモリ量スクリプトが消費する可能性があります(128MB) ; http://php.net/memory-limit memory_limit = -1 –

    関連する問題