こんにちは。ネットショップコンサルタントの「たぶ」(@yusuke_tanaka34)です。
今日は『ロリポップでEC-CUBE4のプラグインをインストールできない問題』をご紹介していこうと思います!
今回の記事は、
- ロリポップでEC-CUBE4をインストールしようとしている方
- EC-CUBE4を使おうと思っている方
- ロリポップのレンタルサーバーを使っている方
におすすめです!
お問い合わせで、こんな質問をいただきました。
お問い合わせを受けて、僕も1日かけていろいろ検索したり、試したりしてみました。
結果、ロリポップでは「EC-CUBE4」のプラグインをインストールすることができませんでした…
プログラマーさんやSEさんであれば解決できるのかもしれません。
しかし、現在の僕の技術力では「ロリポップでEC-CUBE4のプラグインをインストールできない問題」を解決することができませんでした。
一応、1日かけて調べたので、『ロリポップでEC-CUBE4のプラグインをインストールできない問題』をの流れを記しておこうと思います!
結論から先に言ってしまうと、現状「ロリポップ」では「EC-CUBE4」にプラグインをインストールできません。
「Xserver」だと、「EC-CUBE4」にプラグインをインストールすることができました。
なので、「EC-CUBE4」でネットショップを作る場合は、「Xserver」を利用しましょう。
いつも「ロリポップ」さんを使っているので残念ですが、「Xserver」さんに移行しようと思います…
それでは、実際に『ロリポップでEC-CUBE4のプラグインをインストールできない問題』を詳しく解説していきたいと思います。
スポンサーリンク
ロリポップでEC-CUBE4のプラグインをインストールできない現象
僕は通常「ロリポップ!」さんを使って、EC-CUBEやWordPressなどを運用しています。
「EC-CUBE4」もロリポップでインストールできることまでは確認していました。
でも、先日お問い合わせをいただき、「ロリポップでEC-CUBE4のプラグインをインストールできない問題」が発覚しました。
実際に、もう一度ロリポップのサーバーに「EC-CUBE4.0.3」をインストールし、プラグインのインストールを試してみました。
「インストール」ボタンをクリックすると、「システムエラーが発生しました。」と表示されてしまいました。
いろいろなサイトを調べ、1日かけてこれからご紹介する
- WAFの設定をOFFにする方法
- キャッシュをクリアする方法
- PHPのバージョンを変更する方法
- プラグインを直接ダウンロードしてインストールする方法
- PHPの設定を変更する方法
を試してみました。
しかし、結果として「ロリポップでEC-CUBE4のプラグインをインストールできない問題」を解決することはできませんでした。
一応、備忘録として「ロリポップでEC-CUBE4のプラグインをインストールできない問題」を解決するためにやってみたことを書いていきたいと思います。
スポンサーリンク
ロリポップでEC-CUBE4のプラグインをインストールするとエラーが出るまでの流れ
それではまず、プラグインをインストールするとエラーが出るまでの流れをご説明したいと思います。
1.EC-CUBE4の管理画面にログインします。
2.左メニューの「オーナーズストア」をクリックします。
3.新しく出てきたメニューの「プラグイン」をクリックします。
4.「認証キー設定」ページが表示されるので、「認証キー新規発行」をクリックします。
5.「認証キー新規発行」の画面が表示されます。
6.画面に表示されている文字列を入力し、「認証キー新規発行」ボタンをクリックします。
この画像では、「j9drzP」ですね。
7.「認証キー設定」の欄に認証キーが表示されるので、右下の「登録」ボタンをクリックします。
8.認証キーが登録されました。
9.次に、左メニューの「プラグインを探す」をクリックします。
10.プラグインの一覧画面が表示されます。
11.インストールしたいプラグインのキーワードを打ち込み、「検索」ボタンをクリックします。
今回は「おすすめ商品管理プラグイン」のインストール画面で解説していきます。
12.「おすすめ商品管理プラグイン」が表示されたら、「入手する」ボタンをクリックします。
13.「インストール確認」画面が表示されるので、「インストール」ボタンをクリックします。
14.もう一度「インストール確認」画面が表示されるので、再度「インストール」ボタンをクリックします。
15.インストールが開始されます。
だいたいバーの半分くらいまでは進むのですが、そこで止まります。
16.はい、エラーが出ました。
17.「ログを確認」を押すと、エラーの詳細が確認できます。
18.ログで表示される内容はこんな感じ。
19.ログで表示された内容を表示してみるとこんな感じです。
ロリポップのエラー画面が表示されていますね。
エラーの原因は「500 Internal Server Error」とのことで、サーバーでエラーが起こっていることが分かります。
それでは、僕が試した「ロリポップでEC-CUBE4のプラグインをインストールできない問題」への対策を見ていきたいと思います。
スポンサーリンク
ロリポップのWAF設定をOFFにする方法
ロリポップには「WAF設定」というものがあります。
「WAF」とは「Web Application Firewall(ウェブアプリケーションファイアウォール)」の略。
「WAF」はコンピューターウィルスや不正アクセスなど、外部からの不正なアクセスを防いでくれる機能です。
これによって、サーバーに入っているデータを守ってくれるため、セキュリティが強固になります。
ただ、たまにこの「WAF」によって、プラグインなどをインストールする際や設定を変更する際にエラーが出ることがあります。
そのため、ロリポップでエラーが出た場合は、僕は真っ先にこの「WAF設定」を疑います。
今回の「ロリポップでEC-CUBE4のプラグインをインストールできない問題」でも、まず「WAF設定」をOFFにしてみました。
1.ロリポップの管理画面にログインします。
2.左メニューの「セキュリティ」をクリックします。
3.新しく出てくるメニューの「WAF設定」をクリックします。
4.「WAF設定」画面が表示されます。
5.EC-CUBE4で利用するURLのWAF設定が「有効」になっています。
6.EC-CUBE4で利用するURLの「無効にする」ボタンをクリックします。
7.EC-CUBE4で利用するURLのWAF設定が「無効」になりました。
8.「wwwあり」と「wwwなし」の両方のURLを無効にします。
以上で、「WAF設定」の無効化が終了しました。
「WAF設定」が反映されるのに、5分〜10分の時間がかかります。
5分〜10分が経った後、EC-CUBE4のプラグインをインストールしてみましたが、エラーが出てインストールできませんでした。
※最後に「WAF設定」を有効にするのを忘れないようにしてください。
スポンサーリンク
EC-CUBE4のキャッシュをクリアする方法
次に、EC-CUBE4のキャッシュをクリアしてみます。
「キャッシュ」とは、画像などのデータを一時的に保存しておいてくれる機能のことを言います。
この「キャッシュ」があることで、ページの表示速度を早くなるのですが、このキャッシュが原因でプラグインがインストールできない可能性があります。
そのため、ここで一度EC-CUBE4のキャッシュを削除してみます。
1.まず、EC-CUBE4の管理画面にログインします。
2.左メニューの「コンテンツ管理」をクリックします。
3.新しく出てくるメニューの「キャッシュ管理」をクリックします。
4.「キャッシュ管理」のページが表示されるので、「キャッシュ削除」をクリックします。
5.キャッシュが削除されました。
以上で、EC-CUBE4のキャッシュをクリアできました。
こちらの方法でも、EC-CUBE4のプラグインをインストールすることができませんでした。
ロリポップでPHPのバージョンを変更する方法
次に、ロリポップでPHPのバージョンを変更してみます。
1.ロリポップの管理画面にログインします。
2.左メニューの「サーバーの管理・設定」をクリックします。
3.新しく出てくるメニューの「PHP設定」をクリックします。
4.「PHP設定」画面が表示されます。
5.ドメインの一覧が表示されています。
6.PHPのバージョンを変更したいドメインの赤枠の部分をクリックします。
7.「PHP7.1(CGI版)」または「PHP7.3(CGI版)」をクリックします。
「EC-CUBE4」のシステム要件で、PHPのバージョンは「7.1.3〜」となっているので、「7.1」と「7.3」の両方を試してみます。
【「EC-CUBE4」のシステム要件】
ソフトウェア | バージョン | |
---|---|---|
Webサーバー | Apache | 2.4.x |
PHP | PHP | 7.1.3~ |
データベース | PostgreSQL | 9.2.x~ |
MySQL | .5.x / 5.6.x / 5.7.x | |
SQLite | 3.x |
ロリポップ以外のサーバーで「PHP7.2」だとインストールできず、「PHP7.1」に下げたところインストールできたという事例もあるそうです。
【EC-CUBE4 プラグイン有効化できない現象の対処法】
http://cyber-studio.tk/ec-cube4プラグインできない/
【[EC-CUBE4.0.2]プラグインのインストールが出来ずにはまった話】
https://sachips.byeto.jp/eccube/plugin-ins-error.html
なので、念のため「PHP7.1」と「PHP7.3」の両方で設定してみます。
8.「PHP7.1(CGI版)」または「PHP7.3(CGI版)」を選んだら、「変更」ボタンをクリックします。
9.確認画面が表示されるので、「OK」ボタンをクリックします。
10.PHPのバージョンが変更されました。
11.「wwwなし」のドメインも忘れずに設定します。
こちらの方法で「PHP7.1」と「PHP7.3」の両方を設定してみました。
しかし、EC-CUBE4のプラグインをインストールすることができませんでした。
プラグインを直接ダウンロードしてインストールする方法
次に、プラグインを直接ダウンロードしてインストールしてみます。
先ほどはEC-CUBE4の管理画面からプラグインをインストールしようとしました。
しかし、「おすすめ商品管理プラグイン」は「GitHub」にファイルが置いてあるため、それをダウンロードしてインストールしてみます。
「GitHub」とは、「Git」という「バージョン管理システム」を使用した保存箱のようなサービスのことを言います。
「GitHub」は無料のサービスで、世界中の人々が作成したプログラムを保存しています。
それでは、「GitHub」からファイルをダウンロードして、インストールしてみます。
1.「EC-CUBE4」の管理画面にログインします。
2.左メニューの「オーナーズストア」をクリックします。
3.新しく出てきたメニューの「プラグイン」をクリックします。
4.「プラグインを探す」をクリックします。
5.「おすすめ商品管理プラグイン」を検索します。
6.「おすすめ商品管理プラグイン」の「入手する」ボタンをクリックします。
7.「おすすめ商品管理プラグイン」の詳細画面で、制作者の「株式会社イーシーキューブ」をクリックします。
8.「GitHub」の画面が表示されました。
9.右側にある「Clone or download」をクリックします。
10.「Clone with HTTPS」というのが表示されるので、「Download ZIP」をクリックします。
11.「Recommend-plugin-4.0.zip」というファイルがダウンロードされました。
12.ダウンロードフォルダに「Recommend-plugin-4.0.zip」が入っています。
13.EC-CUBE4の管理画面で左メニューの「オーナーズストア」をクリックします。
14.新しく出てくるメニューの「プラグイン」をクリックします。
15.メニューの「プラグイン一覧」をクリックします。
16.「インストールプラグイン一覧」ページが表示されます。
17.「ユーザー独自プラグイン」の「アップロードして新規追加」ボタンをクリックします。
18.「新規プラグインのアップロード」で「ファイルを選択」ボタンをクリックします。
19.先ほどダウンロードした「Recommend-plugin-4.0.zip」を選択し、「開く」ボタンをクリックします。
20.「Recommend-plugin-4.0.zip」と表示されるので、「アップロード」ボタンをクリックします。
21.こちらもエラーが表示されました。
表示された内容は、
ホームディレクトリ/var/cache/prod/Plugin/文字列/comporser.json not found.
日本語訳だと「プラグインのディレクトリにcomporser.jsonが見つかりません。」という内容です。
本来は、上記の場所に新しく「comporser.json」というファイルが作られると思われますが、何かしらのエラーで「comporser.json」が作られていないようです。
ちなみに、「ディレクトリ」とはパソコンで言うところの「フォルダ」のことです。
サーバーでは、「フォルダ」のことを「ディレクトリ」と呼びます。
プラグインを直接ダウンロードしても、EC-CUBE4にプラグインをインストールすることはできませんでした。
ロリポップでPHPの設定を変更する方法
次に、ロリポップでPHPの設定を変更する方法を試してみました。
こちらの記事に書いてある4つの方法を行います。
【プラグインのインストール時、システムエラーが発生するがログに何も表示されない】
https://github.com/EC-CUBE/ec-cube/issues/3990
試してみる作業は、
- 「xdebug」を無効にする
- 「memory_limit」を「512M」にする
- 「max_execution_time」を「180」にする
- 「composer.json」と「composer.lock」に書き込み権限を与える
の4つです。
それでは、1つずつ解説していきますね。
「xdebug」を無効にする
まず、PHPの「xdebug」という項目を無効にします。
1.まず、ロリポップの管理画面を開きます。
2.左メニューにある「サーバーの管理・設定」をクリックします。
3.新しく出てきたメニューの「PHP設定」をクリックします。
4.「PHP設定」ページが開きます。
5.変更したいドメインの「設定」ボタンをクリックします。
6.「php.ini」の設定画面が開きます。
7.「xdebug関連」の「xdebugを利用可能にする」が「Off」になっているのを確認します。
初期設定では、「xdebugを利用可能にする」は「Off」になっていると思います。
もし「xdebugを利用可能にする」が「On」になっている場合は、こんな風に表示されています。
そのため、設定を「Off」に切り替えてください。
8.「xdebugを利用可能にする」を「Off」にしたら、「php.iniを設定する」ボタンをクリックします。
9.「設定を更新しますか?」と聞かれるので、「OK」ボタンをクリックします。
10.php.iniの設定が完了しました。
以上で、「xdebug」を無効にする設定は完了です。
11.アドレスは「wwwなし」と「wwwあり」があるので、両方設定しておきます。
ちなみに、「xdebug」とはPHPの機能の1つです。エラーが発生するまでの流れを詳しく表示するなど、プログラムの間違いを見つける補助をしてくれる機能です。
「xdebug」については、こちらの記事で詳しく紹介されているので、興味がある方はぜひ。
【PHP開発者がいまさら聞けない、Xdebugの基礎の基礎】
https://www.webprofessional.jp/getting-know-love-xdebug/
「xdebug」を無効にしても、プラグインはインストールできませんでした。
「memory_limit」と「max_execution_time」の値を変更する
次に、「memory_limit」と「max_execution_time」の値を変更します。
「memory_limit」と「max_execution_time」の値を変更する方法は、こちらの記事を参考に行いました。
【ロリポップのphp.iniからuploadとpost sizeの制限を解除する方法】
https://pasonal.com/lolipop-phpini-limit-customize/
【ロリポップ!ファイルのアップロードサイズupload_max_filesizeを20M以上に設定する方法】
https://bibabosi-rizumu.com/lolipop-upload_max_filesize/
「memory_limit」と「max_execution_time」以外に、
- upload_max_filesize
- post_max_size
の値も増やしてみました。
それでは、画像を見ながらご説明していきますね。
1.まず、ロリポップの管理画面を開きます。
2.左側のメニューにある、「サーバーの管理・設定」をクリックします。
3.新しく出てきたメニューの「PHP設定」をクリックします。
4.「PHP設定」ページが表示されます。
5.赤枠の部分の値を変更します。
- 「upload_max_filesize」を「20M」に変更
- 「php_value、php_flagを利用可能にする」を「On」に変更
「upload_max_filesize」は初期設定で「20M」になっている可能性が高いです。
6.設定を変更したら、「php.iniを設定する」ボタンをクリックします。
7.設定内容確認の画面が出るので、「OK」ボタンを押します。
8.「php.ini」の設定ができました。
9.次に、FTPクライアントでEC-CUBE4が入っているサーバーのディレクトリを開き、「.htaccess」を編集します。
修正する前に「.htaccess」をデスクトップにダウンロードするなどして、バックアップを取っておいてください。
間違えてしまうと、画面が真っ白になってしまったりするので・・・
10.最初の「.htaccess」の中身はこんな感じです。
11.「.htaccess」の赤枠の部分を変更します。
# デザインテンプレートを適用するため10Mで設定 <IfModule mod_php7.c> php_value upload_max_filesize 10M </IfModule>
という表記があると思うので、
# デザインテンプレートを適用するため10Mで設定 #<IfModule mod_php7.c> # php_value upload_max_filesize 10M #</IfModule> <IfModule mod_php7.c> php_value memory_limit 512M php_value upload_max_filesize 64M php_value post_max_size 64M php_value max_execution_time 180 </IfModule>
に変更します。
上書き保存すれば、「.htaccess」の設定は完了です。
ちゃんと設定が完了しているか確認してみましょう。
12.「.htaccess」と同じ場所にある「index.php」を修正します。
修正する前に「index.php」をデスクトップにダウンロードするなどして、バックアップを取っておいてください。
13.最初の「index.php」はこんな感じです。
14.赤枠の部分に「phpinfo();」と入力します。
phpinfo();
15.Webブラウザでアドレスを入力すると、PHPの設定が表示されます。
16.先ほどの設定が反映されていることが確認できます。
【「.htaccess」で変更した項目】
項目 | 値 |
---|---|
max_execution_time | 180 |
memory_limit | 512M |
post_max_size | 64M |
upload_max_filesize | 64M |
設定の変更が確認できたら、「index.php」を元のファイルに戻しておきましょう。
以上が、「memory_limit」と「max_execution_time」の値を変更する方法でした。
こちらの方法でも、プラグインをインストールすることはできませんでした。
「composer.json」と「composer.lock」に書き込み権限を与える
最後に、EC-CUBE4のファイルに入っている「composer.json」と「composer.lock」に書き込み権限を与えてみたいと思います。
1.まず、FTPクライアントで「EC-CUBE4」が入っているディレクトリを表示します。
「composer.json」と「composer.lock」というファイルが入っています。
2.ファイルにカーソルを乗せ、「パーミッションの変更」をクリックします。
3.「パーミッションの変更」で、属性値を「666」に変更します。
4.属性値を変更したら、「OK」ボタンをクリックします。
「composer.json」と「composer.lock」に書き込み権限を与えても、EC-CUBE4にプラグインをインストールすることはできませんでした。
「ロリポップでEC-CUBE4のプラグインをインストールできない問題」の顛末
結局、「ロリポップでEC-CUBE4のプラグインをインストールできない問題」は、いろいろな方法を試してみても解決しませんでした。
最終的には、「サーバーの移行」という形で終わりを迎えました。
【オーナーズストアからのプラグイン導入に失敗する。】
https://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=22109&forum=16&post_id=92580#forumpost92580
こちらの記事によると「symfony/flex」をアップデートするという方法で、プラグインをインストールできるようになったそうなのですが、
- サーバーがさくらVPSであるということ
- PHPの設定を自由に操作できること
から、ふだん僕らが使用している「共用サーバー」とは違う環境であるため、こちらの方法を行うのは難しいと思います。
僕はここで断念してしまいました…
ちなみに「VPS」とは、「Virtual Private Server」の略で「仮想専用サーバー」のことを指します。
「1台のサーバーを何人かのユーザーで使用する」という点は、共用サーバーと一緒です。
ただ、「VPS」は共用サーバーの中に専用サーバーのような場所を作るようなイメージなので、他のユーザーの影響を受けにくいという特徴があります。
価格などは共用サーバーよりは少し高いです。また、設定なども共用サーバーより複雑です。
【さくらのVPS】
https://vps.sakura.ad.jp/
また、こちらの記事でも問題は解決しているようなのですが、こちらも管理画面からではなく、SSHを使って操作しているのでハードルが高いです。
【プラグインをインストールできません。】
https://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=22356&post_id=93459&order=0&viewmode=flat&pid=0&forum=19#forumpost93459
【EC-CUBE4系でプラグインインストール時にエラーが出た時の対処法】
https://qiita.com/nanasess/items/583683eb94947aebea44
ちなみに、「SSH」とは「Secure Shell」の略で、「SSHクライアント」を使ってサーバー内を操作するための通信手段のことを言います。
普通のレンタルサーバーではあまり使わないので、馴染みのない方法ですよね。
それで、肝心の「ロリポップでEC-CUBE4のプラグインをインストールできない問題」ですが、こちらの記事に、
【EC-CUBE4 プラグインの有効化・インストールができません。】
https://xoops.ec-cube.net/modules/newbb/viewtopic.php?viewmode=flat&topic_id=21727&forum=16
有効化やインストールの PHP プロセスが高負荷だと判断され、強制終了してしまう場合があります。(OOM KIller など)
わかっていることは、共有サーバーでは、インストールや有効化の PHP プロセスが高負荷と判断され、強制終了してしまうことです。
Symfony DI のキャッシュ生成処理や、 Composer API をコールする処理が該当します。
さくらのレンタルサーバー(スタンダード)でしたら、比較的問題が発生しにくいのは確認しています。
と記載されており、
- ロリポップ
- ヘテムル
- mixhost
などの共用サーバーでは、EC-CUBE4のプラグインをインストールすることが難しいのではないかとのことです。
ちなみに、
だと、EC-CUBE4のプラグインをインストールできた実績があるようなので、こちらのサーバーを利用するのがいいと思います。
「Xserver」は僕が自分でインストールしてみて、問題なくインストールできました。
なので、当面は「Xserver」さんで「EC-CUBE4」を利用するのがいいと思います。
以上、「ロリポップでEC-CUBE4のプラグインをインストールできない問題」の顛末でした。
スポンサーリンク
まとめ
今回は『ロリポップでEC-CUBE4のプラグインをインストールできない問題』というテーマでお送りしてきました。
今回、ロリポップでEC-CUBE4のプラグインをインストールするために、
- WAFの設定をOFFにする方法
- キャッシュをクリアする方法
- PHPのバージョンを変更する方法
- プラグインを直接ダウンロードしてインストールする方法
- PHPの設定を変更する方法
という5つの方法を試してみました。
しかし、結局ロリポップでEC-CUBE4のプラグインをインストールすることはできませんでした。
ロリポップを含めた低価格な共用サーバーでは、メモリの上限が決まっており、高負荷がかかるEC-CUBE4のプラグインをインストールできないようです。
「Xserver」では、「EC-CUBE4」にプラグインをインストールすることができたので、「EC-CUBE4」でネットショップを作る場合は「Xserver」を利用しましょう。
ちなみに、現在ロリポップさんに「ロリポップでEC-CUBE4のプラグインをインストールできない問題」を問い合わせているので、返答があったら追記したいと思います。
EC-CUBE4のインストール方法については、以下の記事で詳しく解説しています。
EC-CUBEやネットショップについて分からないことがありましたら、お問い合わせまでご連絡ください。
以上、ネットショップコンサルタントの「たぶ」でした。
こちらの記事もおすすめです。