プラグイン > バグ報告・利用に関する質問 > プラグインのインストールがうまくいかない |
バグ報告・利用に関する質問
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
sada1019 |
投稿日時: 2020/5/7 16:26
対応状況: −−−
|
半人前 登録日: 2017/2/16 居住地: 投稿: 19 |
プラグインのインストールがうまくいかない [EC-CUBE] EC-CUBEのバージョン4.0.3、新規インストール
[レンタルサーバ] [OS] Linux [PHP] 7.3.16 [データベース] MySQL 5.5.64-MariaDB [WEBサーバ] Apache [ブラウザ] Google chrome [導入プラグインの有無] UICube 1.1.1 [カスタマイズの有無] なし [現象] 「オーナーズストア」->「プラグイン」->「プラグイン一覧」のページに表示された 「カテゴリページ/コンテンツ追加 for EC-CUBE4」のインストールボタンを押して、 インストール完了となるが、その後、一覧には、プラグインを有効にするボタンが 表示されず、インストールボタンが表示されたままになる。 テーブル dtb_plugin を見ても、「カテゴリページ/コンテンツ追加 for EC-CUBE4」は 追加されていませんでした。 こちらの掲示板を参考に、php.iniの ・memory_limitを1024M ・max_execution_timeを180 に設定を変更してみましたが状況変わらず。 「キャッシュ管理」でキャッシュ削除後にプラグイン一覧を見ても変わらずインストールボタンが表示されたまま。 デバッグモードで再度インストールしてみましたが状況変わりませんでした。 debugのsite.logのどの箇所を見たらよいのかよくわからないので 「error」というワードで検索したら以下のような記述を見つけましたが、 関係があるのかわかりませんでした。 ----------------------------------------------------------------------- <warning>Deprecation warning: require.ec-cube/CategoryExtensionB is invalid, it should not contain uppercase characters. Please use ec-cube/categoryextensionb instead. Make sure you fix this as Composer 2.0 will error.</warning> <warning>Deprecation warning: require.ec-cube/UICube is invalid, it should not contain uppercase characters. Please use ec-cube/uicube instead. Make sure you fix this as Composer 2.0 will error.</warning> <warning>Deprecation warning: require-dev.mikey179/vfsStream is invalid, it should not contain uppercase characters. Please use mikey179/vfsstream instead. Make sure you fix this as Composer 2.0 will error.</warning> Failed to initialize global composer: Composer could not find the config file: /~~~~~~~~~~~~~~~/public_html/app/Plugin/.composer/composer.json To initialize a project, please create a composer.json file as described in the https://getcomposer.org/ "Getting Started" section -------------------------------------------------------------------- [187.6MiB/2.53s] <warning>Deprecation warning: require.ec-cube/CategoryExtensionB is invalid, it should not contain uppercase characters. Please use ec-cube/categoryextensionb instead. Make sure you fix this as Composer 2.0 will error.</warning> [187.6MiB/2.54s] <warning>Deprecation warning: require.ec-cube/UICube is invalid, it should not contain uppercase characters. Please use ec-cube/uicube instead. Make sure you fix this as Composer 2.0 will error.</warning> [187.6MiB/2.54s] <warning>Deprecation warning: require-dev.mikey179/vfsStream is invalid, it should not contain uppercase characters. Please use mikey179/vfsstream instead. Make sure you fix this as Composer 2.0 will error.</warning> [187.6MiB/2.54s] Failed to initialize global composer: Composer could not find the config file: /~~~~~~~~~~~~~~~/public_html/app/Plugin/.composer/composer.json To initialize a project, please create a composer.json file as described in the https://getcomposer.org/ "Getting Started" section -------------------------------------------------------------------- 原因、この設定を確認などアドバイスいただけませんでしょうか? よろしくお願いいたします。 |
468 |
投稿日時: 2020/5/7 18:06
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: プラグインのインストールがうまくいかない Deprecation warningが出ていますので
PHPのバージョンを7.2に変更されてみては如何でしょうか? 以下の投稿と似たような現象ではないかと思います。 https://xoops.ec-cube.net/modules/newbb/viewtopic.php?viewmode=thread&topic_id=22356&forum=19&post_id=93476#forumpost93476
|
sada1019 |
投稿日時: 2020/5/8 9:49
対応状況: −−−
|
半人前 登録日: 2017/2/16 居住地: 投稿: 19 |
Re: プラグインのインストールがうまくいかない ご返信ありがとうございます。
早速PHPのバージョンは 7.2.29 にして試してみました。 状況は変わらずでした。 インストール完了となるのですが、 プラグイン一覧には「インストール」ボタンが 表示されたままで有効化ボタンは表示されておりません。 dtb_pluginテーブルにもレコードが追加されておりませんでした。 debugログは 以下でした。 このログの中に、 「Failed to initialize global composer: Composer could not find the config file」 という箇所があるのですが、このメッセージには問題は無いのでしょうか? お分かりになる方、よろしくお願いいたします。 --------------------- <warning>Deprecation warning: require.ec-cube/CategoryExtensionB is invalid, it should not contain uppercase characters. Please use ec-cube/categoryextensionb instead. Make sure you fix this as Composer 2.0 will error.</warning> <warning>Deprecation warning: require.ec-cube/UICube is invalid, it should not contain uppercase characters. Please use ec-cube/uicube instead. Make sure you fix this as Composer 2.0 will error.</warning> <warning>Deprecation warning: require-dev.mikey179/vfsStream is invalid, it should not contain uppercase characters. Please use mikey179/vfsstream instead. Make sure you fix this as Composer 2.0 will error.</warning> Failed to initialize global composer: Composer could not find the config file: /var/www/~~~~~~~/public_html/app/Plugin/.composer/composer.json To initialize a project, please create a composer.json file as described in the https://getcomposer.org/ "Getting Started" section Reading /var/www/~~~~~~~/public_html/vendor/composer/installed.json Loading plugin Eccube\Composer\EccubePluginInstallerPlugin_composer_tmp0 Loading plugin PackageVersions\Installer_composer_tmp1 Loading plugin Symfony\Flex\Flex_composer_tmp2 Running 1.8.5 (2019-04-09 17:46:47) with PHP 7.2.29 on Linux / 3.10.0-1062.12.1.el7.x86_64 ------------------------ |
468 |
投稿日時: 2020/5/8 12:03
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: プラグインのインストールがうまくいかない require.ec-cube/CategoryExtensionB is invalid, it should not contain uppercase characters.
上記のメッセージの部分で表示されていますが Composer2.0では大文字が非推奨となってエラーが出ています。 先に確認しておけば良かったですが、サーバはどのような環境をご利用でしょうか? Composerのバージョンを2.0以下に変更する事は可能ですか? レンタルサーバをご利用でしたらphpのバージョンを切り替えると Composerのバージョンが古くなっていたりしましたので phpのバージョン変更を投稿しましたが ログを見た限りではComposerは2.0で実行されているみたいですね。
|
sada1019 |
投稿日時: 2020/5/8 14:23
対応状況: −−−
|
半人前 登録日: 2017/2/16 居住地: 投稿: 19 |
Re: プラグインのインストールがうまくいかない ご返信ありがとうございます。
サーバーはレンタルサーバーで、PHPのバージョンの切替は 管理画面から行っています。 あるサーバー会社のOEMサーバーを契約しており、 そこに領域を作ってEC-CUBE4を導入しております。 ターミナルは利用できないので、FTPのみでセットアップしています。 Composer はEC-CUBE4独自のモジュールではなく、PHPに附属しているものなのですね。 phpinfo() とかでは確認がとれませんでしたが、バージョンなどターミナル以外で確認をする方法はあるのでしょうか? ターミナルでないとバージョンダウンはできないでしょうか? よろしくお願いいたします。 |
468 |
投稿日時: 2020/5/8 23:44
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: プラグインのインストールがうまくいかない すみません。
色々調べてみたのですが、現時点でリリースされているcomposerは最新版が1.10.6のようですので sada1019さんのサーバで動いているcomposerが2.0という訳ではないようです。 表示されているメッセージは事前の警告文のようなものかと思います。 紛らわしい回答をしていて申し訳ございません。 ただ、サーバで動作しているcomposerのバージョンを確認するにはターミナルによる操作が必要なのではないかと思います。 あと、プラグインがインストールされない件ですが 処理の流れを追っていくと /src/Eccube/Controller/Admin/Store/PluginController.php function install() でインストール処理が行われているかと思います。 この辺りをデバッグして、どこまで処理が進んでいて、どこでおかしくなっているか1ステップずつ確認していく必要があるかもしれません。 少し面倒臭いかもしれませんが log_info('step1'); のようなログ出力の処理を1つずつ追記して、どこまでログが出力されるか確認するような形になるかと思います。 更に /src/Eccube/Service/PluginService.php function install() の処理を通って、/app/Plugin以下のディレクトリへのファイル展開やデータベースへの登録を行っているようです。 データベースへの登録が完了していない事から /src/Eccube/Service/PluginService.php function postInstall()の途中で止まっているのではないかと思うのですが...
|
sada1019 |
投稿日時: 2020/5/11 13:32
対応状況: −−−
|
半人前 登録日: 2017/2/16 居住地: 投稿: 19 |
Re: プラグインのインストールがうまくいかない ご返信ありがとうございます。
ご指示いただいたソースにlog_info()をいれて、どこで止まっているのか見てみるのですね。 ちょっと難しそうです。 今日も「カテゴリページ/コンテンツ追加 for EC-CUBE4」のインストールを試みてみたましが、こんどはエラーとなり、Webサーバーのエラーログを見てみたら該当時間に以下のログがありました。 [Mon May 11 10:47:29.711013 2020] [core:error] [pid 49559] [client 61.194.235.82:53787] End of script output before headers: index.php, referer: http://ドメイン/管理画面/store/plugin/api/install/1807/confirm 何か思い当たりますかね? あとプラグインのインストールは完了していないのですが、 /app/Plugin/ の下に「CategoryExtensionB」フォルダーは作成されています。 オーナーズストアでプラグインを探すでインストールをしてみたのですが、このフォルダーのタイムスタンプが最初に失敗した日付のままで今日の日付になっていませんでした。 このフォルダーは削除しても問題ないでしょうか? 削除してからインストールを試してみたいと思っています。 よろしくお願いいたします。 |
468 |
投稿日時: 2020/5/11 19:07
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: プラグインのインストールがうまくいかない プラグインの展開途中で止まっているのですかね?
レンタルサーバによってはサーバ負荷を検知されて無理矢理プロセスが停止される事があるようですが、その現象ですかね? データベースにレコードが追加されていないようであれば、 追加されたプラグインのディレクトリ「CategoryExtensionB」は削除しても問題ないかと思います。
|
sada1019 |
投稿日時: 2020/5/12 13:53
対応状況: −−−
|
半人前 登録日: 2017/2/16 居住地: 投稿: 19 |
Re: プラグインのインストールがうまくいかない 返答ありがとうございます。
/app/Plugin にあった「CategoryExtensionB」を削除してから プラグイン一覧に表示された「カテゴリページ/コンテンツ追加 for EC-CUBE4」の行の「インストール」ボタンを押してみました。 画面はインストール完了と出たのでうまくいったのかと思いましたが、プラグイン一覧には変わらず「インストール」ボタンが表示されています。 テーブル: dtb_pluginにもレコードが追加されていませんでした。 インストール画面に表示されたログは以下です。 引用:
サーバー業者はプロセスを殺すような処理はないと言っていましたが、何が原因かよりわからなくなってきました。 |
sada1019 |
投稿日時: 2020/5/12 15:17
対応状況: −−−
|
半人前 登録日: 2017/2/16 居住地: 投稿: 19 |
Re: プラグインのインストールがうまくいかない DBに書き出しがされていないので、まずはこの部分を調査してみました。
アドバイスいただいた /src/Eccube/Service/PluginService.php function install() 153行目の関数に、以下のように書く処理の前後にlog_info()を 書いてインストールしてみましたが、/var/log/prod/admin-2020-05-12.logには何も書き出されませんでした。 log_info()の書き出し先のファイルって、このファイルであっていますでしょうか? そうであれば、書き出されていないということは、この関数が呼ばれているんじゃない可能性がありますね。 プラグインのインストールは、プラグイン一覧に表示されたプラグインの「インストール」ボタンから行っています。 ----------------------- public function install($path, $source = 0) { $pluginBaseDir = null; $tmp = null; try { // プラグイン配置前に実施する処理 $this->preInstall(); $tmp = $this->createTempDir(); log_info('step1'); // 一旦テンポラリに展開 $this->unpackPluginArchive($path, $tmp); $this->checkPluginArchiveContent($tmp); log_info('step2'); $config = $this->readConfig($tmp); // テンポラリのファイルを削除 $this->deleteFile($tmp); log_info('step3'); // 重複していないかチェック $this->checkSamePlugin($config['code']); log_info('step4'); $pluginBaseDir = $this->calcPluginDir($config['code']); // 本来の置き場所を作成 $this->createPluginDir($pluginBaseDir); log_info('step5'); // 問題なければ本当のplugindirへ $this->unpackPluginArchive($path, $pluginBaseDir); log_info('step6'); // リソースファイルをコピー $this->copyAssets($config['code']); log_info('step7'); // プラグイン配置後に実施する処理 $this->postInstall($config, $source); log_info('step8'); } catch (PluginException $e) { $this->deleteDirs([$tmp, $pluginBaseDir]); throw $e; } catch (\Exception $e) { // インストーラがどんなExceptionを上げるかわからないので $this->deleteDirs([$tmp, $pluginBaseDir]); throw $e; } ----------------------- |
(1) 2 » |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |