要望や症状
発生する症状
EC-CUBE 4系の管理画面でテンプレートファイルをアップロードしようとすると、「2MB上限」というエラーメッセージが表示され、ファイルのアップロードが失敗してしまいます。
この問題は特に、デザインテンプレートや大きなサイズのテーマファイルをアップロードする際に頻繁に発生します。
理由や原因
原因
この問題の原因は、サーバー側のPHP設定値である upload_max_filesize が2MBに制限されていることです。そのため、2MBを超えるサイズのファイルをアップロードしようとすると、サーバー側で処理が拒否されてしまいます。
EC-CUBE 4系では、従来のバージョンにあった管理画面上でのファイルサイズ制限設定(TEMPLATE_SIZE パラメータ)が削除されており、完全にサーバー側のPHP設定に依存する仕様に変更されています。
解決策
解決方法
PHPの設定値を変更する
サーバーのPHP設定ファイル(php.ini)で以下の値を適切なサイズに変更します。
# アップロード可能な最大ファイルサイズ
upload_max_filesize = 10M
# POSTデータの最大サイズ(upload_max_filesizeより大きく設定)
post_max_size = 12M
# 最大実行時間(大きなファイルのアップロード用)
max_execution_time = 300
# メモリ制限
memory_limit = 256M
設定変更の手順
1. php.iniファイルの場所を確認します
php --ini
2. 設定ファイルを編集します
テキストエディタでphp.iniファイルを開き、上記の値を適切なサイズに変更します。この際、upload_max_filesize の値は post_max_size より小さく設定する必要があります。
3. Webサーバーを再起動します
設定変更を反映するため、使用しているWebサーバーを再起動します。
# Apacheの場合
sudo systemctl restart apache2
# Nginx + PHP-FPMの場合
sudo systemctl restart nginx
sudo systemctl restart php-fpm
4. 設定が正しく反映されているか確認します
EC-CUBE管理画面のシステム設定 > システム情報から、PHP設定値が正しく変更されているかを確認できます。または、phpinfo() 関数を使用して現在の設定値を確認することも可能です。
共用サーバーでの対応方法
共用サーバーでphp.iniファイルの編集ができない場合は、EC-CUBEのルートディレクトリに .htaccess ファイルを作成または編集して設定を変更できます。
# .htaccess
php_value upload_max_filesize 10M
php_value post_max_size 12M
php_value max_execution_time 300
php_value memory_limit 256M
設定時の注意事項
設定値を過度に大きくすると、サーバーリソースを圧迫する可能性があります。セキュリティ上の観点からも、必要最小限のサイズに設定することを強く推奨します。
また、共用サーバーをご利用の場合、ホスティング会社側の制限により、設定変更が反映されない場合があります。その際は、サーバー管理者またはホスティング会社にお問い合わせください。