バージョン選択

フォーラム

メニュー

オンライン状況

40 人のユーザが現在オンラインです。 (28 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 40
もっと...

サイト内検索

質問 > 管理機能 > [3.0.18]商品登録CSVアップロードでHTTP 500エラーが出る

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
goat
投稿日時: 2021/1/19 22:21
対応状況: 解決済
半人前
登録日: 2020/11/22
居住地:
投稿: 26
[3.0.18]商品登録CSVアップロードでHTTP 500エラーが出る
▼テンプレート
[EC-CUBE] 3.0.18
[レンタルサーバ] heteml
[OS] Linux
[PHP] 5.4.45
[データベース] MySQL 5.6.23
[WEBサーバ] Apache
[ブラウザ] Google Chrome
[現象]

お世話になっております。

EC CUBE 3.0.18で商品登録CSVアップロードを行う際、ファイルサイズが400KB前後を超えるとHTTP500エラーが検出されてしまいます。
なお、アップロードから30秒程度でエラーが出るため、回線等の問題でタイムアウトしていることは考えづらいです。

https://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=19049&forum=11

上記スレッドを参考にECCUBEのログも確認してみましたが、エラーは出ていないため原因も皆目見当がつきません。

大変恐れ入りますが、皆様のお知恵をお借りできれば幸いでございます。
kishikawa
投稿日時: 2021/1/20 9:54
対応状況: −−−
一人前
登録日: 2018/12/20
居住地: 松戸
投稿: 89
Re: [3.0.18]商品登録CSVアップロードでHTTP 500エラーが出る
メモリのエラーはphpのエラーログやapacheのエラーログに出ていますので、そちらを確認するとわかるかもしれません。

ログの場所はapacheの設定か、php.iniの設定で確認できると思います。


----------------
株式会社ジョーレン
EC-CUBEプラチナパートナー

スピード構築でEC事業をサポート致します
EC-CUBE2系、3系、4系構築実績あり

ホームページ

goat
投稿日時: 2021/1/22 20:54
対応状況: −−−
半人前
登録日: 2020/11/22
居住地:
投稿: 26
Re: [3.0.18]商品登録CSVアップロードでHTTP 500エラーが出る
kishikawa様

ご返信ありがとうございます。

ご指摘の通り、phpのエラーログを確認してみましたところ、次のようなエラーが出ておりました。

PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 78 bytes) in [ECCUBEインストールディレクト]リ/src/Eccube/Log/Monolog/Processor/IntrospectionProcessor.php on line 44

PHPの割り当てメモリを超えているという意味のエラーだと思うのですが、この際にアップロードしようとしたファイルサイズは約900KBのcsvファイルです。

PHP.iniの割り当てメモリはいじっていないため、デフォルトの128MBになっていると思われますが、恐らく割り当てメモリの問題ではないと考えております。

大変恐れ入りますが、どういった原因が考えられるかお知恵をお借り出来ますでしょうか。
468
投稿日時: 2021/1/23 9:31
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: [3.0.18]商品登録CSVアップロードでHTTP 500エラーが出る
PHPのメモリはプログラム実行時の変数やインスタンス化したオブジェクト等を格納している領域を指している為、
アップロードしたファイルサイズとイコールではありません。

その為、Allowed memory sizeのエラーログが出ている事からPHPのメモリー制限(memory_limit)に引っかかっているのだと思われます。

例えば、CSVの商品件数を50件など少ないデータでアップロードを実行すると正常に処理は完了しますか?
件数が増えてエラーとなるようであれば、やはりメモリー制限の上限に達していると思われます。


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

kishikawa
投稿日時: 2021/1/25 11:24
対応状況: −−−
一人前
登録日: 2018/12/20
居住地: 松戸
投稿: 89
Re: [3.0.18]商品登録CSVアップロードでHTTP 500エラーが出る
確認が遅れてしまいましたm(_ _)m
468様のおっしゃるとおりで、
ファイルサイズだけがメモリを使用するサイズではありません。
特にDoctrineは1エンティティのメモリ使用量が大きく、
Product.phpの数が増える(=商品の件数が増える)ほど、
ファイルサイズ以上にメモリの占有が増えます。

memory_limitに引っかかることを回避するためには、
memory_limitを増やすことですが、
その他にも
Doctrineを使用せず、配列によるCSVへの書き込みや、
1エンティティ取得したらメモリをクリアにするDoctrineの手法などを利用するのがよいと思います。

Doctrine\ORMでの巨大なオブジェクトの集合の扱い
https://qiita.com/issei-m/items/a2c322eafe6345be00b5

Iterating Large Results for Data-Processing
https://https://www.doctrine-project.org/projects/doctrine-orm/en/latest/reference/batch-processing.html#iterating-large-results-for-data-processing


----------------
株式会社ジョーレン
EC-CUBEプラチナパートナー

スピード構築でEC事業をサポート致します
EC-CUBE2系、3系、4系構築実績あり

ホームページ

goat
投稿日時: 2021/1/25 17:35
対応状況: −−−
半人前
登録日: 2020/11/22
居住地:
投稿: 26
Re: [3.0.18]商品登録CSVアップロードでHTTP 500エラーが出る
468様

ご返信ありがとうございます。

なるほどですね。

確かに、商品件数を減らして300KB程度に抑えるとアップロードは問題なく行えます。

私もそうではないかと思っていましたので、確信に変わりました。
契約サーバー会社の方針か、PHP.iniのPHPメモリ割り当て量を増やすことができないので、サーバー会社に相談してみることにします。

助かりました。
ありがとうございます。
goat
投稿日時: 2021/1/25 17:37
対応状況: −−−
半人前
登録日: 2020/11/22
居住地:
投稿: 26
Re: [3.0.18]商品登録CSVアップロードでHTTP 500エラーが出る
kishikawa様

ご返信ありがとうございます。

丁寧なご解説ありがとうございます。

それに加え、メモリ割り当て上限を増やす以外の代替案をご教示くださり、ありがとうございます。

ORMに関して全く知識を持ち合わせていないため、すぐに役立てることは難しそうですが、後学のためになりました。

助かりました。
ありがとうございます。
kishikawa
投稿日時: 2021/1/26 9:53
対応状況: −−−
一人前
登録日: 2018/12/20
居住地: 松戸
投稿: 89
Re: [3.0.18]商品登録CSVアップロードでHTTP 500エラーが出る
サーバ側のphp.iniの設定以外でも、
コードの中でメモリ割り当てを変更することもできます。
CSVダウンロードのコントローラに以下のコードを入れることで
そのリクエストだけメモリ割り当てを変更することができます。


ini_set('memory_limit', 割り当てメモリを指定);
// 処理に時間がかかる場合はこちらも
set_time_limit(0);


----------------
株式会社ジョーレン
EC-CUBEプラチナパートナー

スピード構築でEC事業をサポート致します
EC-CUBE2系、3系、4系構築実績あり

ホームページ

goat
投稿日時: 2021/1/28 21:41
対応状況: −−−
半人前
登録日: 2020/11/22
居住地:
投稿: 26
Re: [3.0.18]商品登録CSVアップロードでHTTP 500エラーが出る
kishikawa様

ご返信ありがとうございます。
そんな技があったんですね。

しかしながら、残念なことにサーバー会社の意向で、128MBを超えてのメモリ割り当てができないと返答がありましたので、当面の間は登録項目数を抑えて登録していこうと思います。

ありがとうございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,685名です
総投稿数は109,932件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1638
8
red
1569
9
mcontact
1279
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.