こんにちは。
おっしゃる通り、CSV出力の際に、PHP に割り当てられたメモリ以上にメモリを使おうとしたためにエラーになってしまったようですね。
もしも CSV ダウンロード済みでバックアップされているのであれば、定期的にフォームの中身を削除されることをお勧めします。
PHP のメモリも、設定ファイルでは無限に増やせるように見えますが、サーバー側の限界もあるので一定以上増やしてもエラーが出続けるようになります。
また、メモリだけではなく、処理にも時間がかかります。この時は max_execution_time を増やすことである程度解決できますが、メモリと同じように限界があります。
結局、フォームの中身を定期的に削除されることをおすすめします。
フォームから届いたデータのCSVダウンロードが途中でエラーになる
2021年12月6日 at 15:25
フォーム送信されたデータをCSVダウンロードしたところ、途中でエラーになってしまいました。
ダウンロードしたファイルを見ると584行まではあるのですが、その後に短いHTMLソースがあり、そこに、
予期せぬエラーが発生しました。
この要求の処理中にエラーが発生しました。
と出ています。
管理画面で「ログ」を見ると以下の表示がありました。
Exception Occurred: /home/indigocow24/www/ftsu/concrete/vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php:2567 Allowed memory size of 134217728 bytes exhausted (tried to allocate 5242880 bytes) (1)
何か、メモリが足りないような感じのように見えるのですが、こういう場合、どうしたら全部のデータ(CSV)をダウンロードできるでしょうか。
方法があればお教えいただければ幸いです。
よろしくお願いします。
+++++++++++++++++++++++
concrete5バージョン 8.5.4
サーバー さくらインターネット・スタンダード
PHP 7.4.19
MySQL 4.9.5
利用ブラウザ Safari
タグ:
Your post has been saved and will be published after approval by the forum moderator.
mslyo
Re: フォームから届いたデータのCSVダウンロードが途中でエラーになる
自己解決できましたので、ご報告までに。
ダウンロード時のログに「メモリを使い切った」とありましたので、phpのmemory_limitを上げてみました。
それまでは128Mでしたが、倍の256Mにしたところ、メモリ不足のエラーが出なくなりました。
ただ、ログを見ると「maximum execution timeの120秒をこえた」というメッセージに変わったので、max_execution_timeを増やしたところ、CSVのダウンロードを完了することができました。
エラーログから推測して、自分なりにmemory_limitを増やしてから質問すべきでした。大変失礼しました。お騒がせしました。