baserproject / basercms

baserCMS : Based Website Development Project
http://basercms.net
Other
173 stars 130 forks source link

【システム】「データのバックアップ」機能を利用するとタイムアウトが発生する #1260

Closed mutosea closed 6 months ago

mutosea commented 5 years ago

概要

CMS管理コンソールのシステム設定=>ユーティリティ=>データメンテナンス

・上記内「データのバックアップ」機能を利用すると、タイムアウトが発生する。 ・「phpのtimeout時間をかなり伸ばして」検証した結果、正常にバックアップが動いていることが確認できた。 ・プラグインの導入などをしていないまっさらなbaserCMSで検証した際には、デフォルトのphpのtimeoutの設定でも動作する

・プラグインも全て一括でバックアップを行うため、サイトの内容(プラグインが大量に導入されている、スクラッチの機能が重たいなど)によっては同様の症状が発生する恐れがあると思います。

改善提案

・プラグインとコアのバックアップは分ける ・もしくはコアのバックアップが終わった後とプラグインが一つ終わった毎に何らかのアクションを起こすことでタイムアウトを防ぐ、など

baserCMS version : 4.1.3で確認

TODO

備考

mutosea commented 5 years ago

再調査を行ったところ、zip圧縮の際にmemory_limitの値を超えたことが原因でした。

/lib/Baser/Vender/Simplezip.php 131行目 $gzCompressedData = gzcompress($data); の前に ini_set("memory_limit", "256M");

といった一時的に「memory_limit」を増やす処理を追加する、対策が考えられますが、 サーバーと連動しなくなるので要検討だと思います

momofff commented 6 months ago

dev-4 ブランチにプルリクエストをマージ済みの為クローズします。 対応ありがとうございました!