1. ホーム
  2. php

[解決済み] Laravel 5 Class 'CollectiveHtml⇄HtmlServiceProvider' not found on AWS

2022-01-28 23:42:52

質問

他にも同じようなエラーが出ている質問がそこらじゅうに転がっているのは知っています。 Class 'IlluminateHtml' not found Laravel 5

私の問題は、私のローカル(XAMPP)でこれを解決するために提案されたすべてのステップに従ったことで、滞りなく解決しました。問題は、AWSのubuntuボックス(nginx)にデプロイしようとしたときです。通常の手順にはすべて従いました。 http://laravelcollective.com/docs/5.1/html#installation

私のプロバイダとエイリアスは、ローカルからプッシュしたものをgit pullしたときに追加されたものでした。おそらくこのファイルは gitignored され、サーバー上で手動で変更されるべきだったのではないでしょうか?

Next, add your new provider to the providers array of config/app.php:

  'providers' => [
    // ...
    Collective\Html\HtmlServiceProvider::class,
    // ...
  ],

Finally, add two class aliases to the aliases array of config/app.php:

  'aliases' => [
    // ...
      'Form' => Collective\Html\FormFacade::class,
      'Html' => Collective\Html\HtmlFacade::class,
    // ...
  ],

その後、手動で追加しました。

Begin by installing this package through Composer. Edit your project's composer.json file to require laravelcollective/html.

"require": {
    "laravelcollective/html": "5.1.*"
}

そして、ついに走った。

composer.phar update

このコマンドを実行することでエラーが発生したのです。

PHP Warning:  Module 'mcrypt' already loaded in Unknown on line 0
> php artisan clear-compiled
PHP Warning:  Module 'mcrypt' already loaded in Unknown on line 0
PHP Fatal error:  Class 'Collective\Html\HtmlServiceProvider' not found in /usr/share/nginx/html/cbt/vendor/compiled.php on line 6



  [Symfony\Component\Debug\Exception\FatalErrorException]
  Class 'Collective\Html\HtmlServiceProvider' not found



Script php artisan clear-compiled handling the pre-update-cmd event returned with an error



  [RuntimeException]
  Error Output: PHP Warning:  Module 'mcrypt' already loaded in Unknown on line 0
  PHP Fatal error:  Class 'Collective\Html\HtmlServiceProvider' not found in /usr/share/nginx/html/cbt/vendor/compiled.php on line



update [--prefer-source] [--prefer-dist] [--dry-run] [--dev] [--no-dev] [--lock] [--no-plugins] [--no-custom-installers] [--no-auties] [-v|vv|vvv|--verbose] [-o|--optimize-autoloader] [--ignore-platform-reqs] [--prefer-stable] [--prefer-lowest] [packages1] ...

それから、php artisan clear-compiled を実行してみて、それで何かできるかどうか試してみました。

PHP Warning:  Module 'mcrypt' already loaded in Unknown on line 0
PHP Fatal error:  Class 'Collective\Html\HtmlServiceProvider' not found in /usr/share/nginx/html/cbt/vendor/compiled.php on line 6716



  [Symfony\Component\Debug\Exception\FatalErrorException]
  Class 'Collective\Html\HtmlServiceProvider' not found

私のnginxのubuntu環境は、Windowsのxampp環境と同じではないことは分かっていますが、Laravelが提供する追加手順に従ってもうまくいかないようで、まだよく分かっていません。この件に関して何かアドバイスをいただければ幸いです。

乾杯

解決方法は?

composerをアップデートすると、プロバイダがチェックされます。というのも laravelcollective/html が見つからず、エラーになります。

そのため、まずパッケージをrequireし、それをconfigファイルに追加します。

を使って作業することもできます。 composer require laravelcollective/html を追加すると、自動的にjsonファイルに追加されます。そうすれば、設定ファイルをチェックする必要がなくなるので、以前から追加していたかどうかは関係ありません。