ECCUBEでアップロードできない。upload_max_filesizeを設定する場所
2017/03/10
ECCUBEでテンプレートファイルがアップロードできない場合の対処方法
ECCUBEで「テンプレートファイルがアップロードされていません」のエラーが出た
この記事は、ECCUBEでテンプレートファイルをアップロードしようとして、うまくアップロードできない不具合の対処方法の解説記事です。
より具体的には、ECCUBEでテンプレートファイルをアップロードしようとしたところ、ファイルの容量が原因でエラーが出た、という場合の対処方法です。
ECCUBEでテンプレートファイルをアップロードしようとしたところ、「※ テンプレートファイルがアップロードされていません。」と表示されます。
ファイルを選択しても表示されます。
「※ テンプレートファイルがアップロードされていません。」と表示されますが、これはファイルの容量が大きくてアップロードできないことで起こるエラーです。
これは ECCUBEのプログラムの中でファイルの容量制限に引っかかっているわけではなく、PHPの設定側でファイルの容量制限に引っかかっているため、そのエラーの処理をうまく ECCUBE側で受け取れていないため、アップロードされたファイルの情報を受け取ることができず、「テンプレートファイルがアップロードされていません。」というエラーとなっているエラーメッセージなのです。
ECCUBEのファイルアップロード容量を拡張させる
エラーの原因は、ファイルのアップロード容量制限より大きなファイルをアップロードしようとしていることです。
そのため、対応としては、ファイルのアップロードファイルサイズの制限を拡張させる設定を行います。
1.ECCUBEの設定を変更する
2.php.iniの設定を変更する
ECCUBEの設定を変更する(.htaccess)
ECCUBEをインストールすると、.htaccessがせってされ、それによってファイルのアップロードできるファイルのサイズ制限が設定されます。
「システム設定」-「システム情報」で表示される phpinfo()の情報を見ると、下記の様になっています。
右側の「Master Value(php.ini)」の設定は 64MBであるものの、左側の「Local Value(ECCUBE)」の設定は 5MBになっていることが分かります。
これを「Master Value(php.ini)」と同じ 64MBに合わせることで解決します。
ここでは、php.iniの設定が 64MBですのでそれに合わせていますが、いくつに設定しても問題ありません。.htaccessで設定した値は、php.iniで設定した値より優先して反映されますので、php.iniの値にこだわる必要は全くなく、それ以上の数値でも全く問題ありません。
具体的に設定する値は、ECCUBE内の 「/html/.htaccess」にあります。
下記のような記述になっていますので「5M」の部分を「64MB」などに修正するといいでしょう。
1 2 |
# デフォルトテンプレートの状態で 2M 近くになるため php_value upload_max_filesize 5M |
修正して保存すればOKです。先ほどの「システム設定」-「システム情報」で表示される phpinfo()の情報ページをリロードすると設定情報が反映されていることが分かると思います。
続けて、「※ テンプレートファイルのファイルサイズは10MB以下のものを使用してください。」のエラーが出る場合は、「ECCUBEでテンプレートファイルのファイルサイズは10MB以下のものを使用してくださいのエラーが出た場合」に続きの記事を書きましたので参考にしてください。
php.iniの設定を行う
一般的にファイルのアップロードファイルサイズの制限を拡張させる場合は、php.iniの設定を行います。
ECCUBEでは、上記で説明したように .htaccessで設定を行います。
.htaccessで設定した情報は、php.iniで設定した情報より優先して反映されますので、ここで説明する php.iniの設定をしても反映されませんが、一般的にはこういう設定を行います、という説明をしておきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
; Maximum amount of memory a script may consume (128MB) ; http://php.net/memory-limit memory_limit = 128M ; Maximum size of POST data that PHP will accept. ; Its value may be 0 to disable the limit. It is ignored if POST data reading ; is disabled through enable_post_data_reading. ; http://php.net/post-max-size post_max_size = 64M <pre class="lang:php"> ; Maximum allowed size for uploaded files. ; http://php.net/upload-max-filesize upload_max_filesize = 10M |
サーバにおいてある php.iniファイルを探して、上記の「memory_limit」「post_max_size」「upload_max_filesize」の場所を検索して設定を確認します。
それぞれの項目は下記のような意味になります。
memory_limit
PHPで利用できるメモリ使用量の上限を設定します。
post_max_size
一度に POSTできる最大のサイズを設定します。
ここでは複数のファイルを送信する場合などは全部まとめて 1回での POSTの最大値を設定します。
upload_max_filesize
1ファイル当たりの最大ファイルサイズを設定します。
また、php.iniのおいてある場所はサーバの設定によって違いますので、分からない場合はサーバ会社などにご確認ください。
また、レンタルサーバの場合は、管理画面(コントロールパネル)から更新できるようになっているサーバもあります。
GoogleAdwords
GoogleAdwords
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!
関連記事
-
-
PHPで月末から1ヶ月後「+1 month」を算出すると想定する日付にならない場合がある
PHPでは月末の1ヶ月後が想定した日付にならない場合がある。原因はバグではなくPHPの1ヶ月後の定義によるもの。なので必要とする日付を定義しそれに合わせてDateTime、modifyを使用して算出方法を解説している。
-
-
Smartyの修飾子regex_replaceで正規表現の後方参照・PHPではpreg_replace
ECCUBEで使われているSmartyで文字列を正規表現で置換し後方参照で値を利用する装飾子regex_replaceの解説です。細かな条件がありますので注意が必要です。
-
-
PHP range関数を使って階乗と重複組み合わせを計算
PHPの range関数を使って階乗と重複組み合わせを計算し、それを元に乱数発生器を作成しました。
-
-
PHPで1ヵ月前、先月、今月1日、来月末の日付などの算出はDateTimeImmutableを使う
PHPには日時をオブジェクトとして生成する関数「DateTimeImmutable」「DateTime」が用意されている。これを利用して1ヶ月後、月初日、月末日、5日後などを指定して日付を取得できる。
-
-
PHPのソースで見慣れない記号が出てきた・アロー演算子(->)、ダブルアロー演算子(=>)
PHPのプログラムソースには見慣れない記号が出てきます。その意味や調べ方です。
-
-
Smartyのテンプレート内の処理で計算、加工をする方法
Smartyのテンプレート上で変数を計算する、加工する方法を解説します。
-
-
SEO対策用タイトル、ディスクリプションの文字数カウントツール
SEO対策に使える文字数カウントツールで文字数の条件の説明も行っています。
-
-
サーバ移転、PHPバージョンアップでPHPのソースコードが表示される・ショートタグのPHPが動かない
PHPでショートタグを使うのは危険。サーバ移転やバージョンアップで動かなくなる!ソースが丸見え、設定情報流出のリスクが!php.iniのshort_open_tagの設定を再確認。
-
-
ECCUBEの商品一覧ページのSEO対策!rel=”next” rel=”prev”を設定
Googleは関連あるページはその旨明示するよう求めています。ECCUBEの商品一覧ページでその求めに応じるための「rel=”next”」「rel=”prev”」について解説します。
-
-
PHPでスクレイピング。phpQueryとphp-simple-html-dom-parserの比較と設置方法
「PHP スクレイピング」で検索すると「phpQuery」ばかりヒットするが、10年以上も放置されている。なので今も開発が続いている「PHP Simple HTML DOM Parser」をオススメする。