Класс Laravel 5 'Collective\Html\HtmlServiceProvider' не найден в AWS

Я знаю, что есть куча других вопросов, возникающих там с той же ошибкой, таких как: класс 'Illuminate\Html\HtmlServiceProvider' не найден Laravel 5

Моя проблема в том, что я выполнил все предложенные шаги, чтобы решить эту проблему на своем локальном компьютере (XAMPP), и он исправил это без помех. Проблема в том, когда я перешел к развертыванию на своем AWS Ubuntu Box (nginx). Я следовал всем обычным инструкциям: http://laravelcollective.com/docs/5.1/html

Мои провайдеры и псевдонимы были добавлены, когда я сделал 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 env, но я все еще не уверен, почему следование инструкциям по добавлению Laravel для добавления этого, похоже, не работает. Буду очень признателен за некоторые советы по этому вопросу.

Ура!

5 ответов

Решение

Когда вы обновите ваш композитор, он проверит поставщиков. Потому что вы не установили laravelcollective/html пока он не может найти его и выдает ошибку:

Поэтому сначала потребуйте свои пакеты, а затем добавьте их в файл конфигурации.

Вы также можете работать с composer require laravelcollective/html, он автоматически добавит его в файл json. Тогда не имеет значения, добавили ли вы их раньше или нет, потому что файл конфигурации не будет проверен.

Я столкнулся с той же ошибкой на Laravel 5.2.*, Следовал инструкции здесь: https://laravelcollective.com/docs/5.2/html, но не работал.

Другой способ исправить это в CLI:

$ composer dump-autoload

Затем запустите:

$ composer update

Это работает для меня.;)

Если вы используете Laravel 5.2, попробуйте добавить это в ваш composer.json

"require": {
    "php": ">=5.5.9",
    "laravel/framework": "5.2.*",
    "laravelcollective/html": "^5.2",
    ... 
},

Установка не удалась, вернув./composer.json к исходному содержимому.

[ErrorException]
copy (/home/zahid/.composer/cache/files/laravelcollective/html/20e9e29d83e23aba16dc4b8d93d0757e1541f076.zip): не удалось открыть поток: Permiss
ион отрицал

Команда: composer требует laravelcollective/html --prefer-source

тогда это работает

Сначала попробуйте обновить композитора. Он обновит все зависимости, но в случае, если это не сработает, удалите папку vendor вашего проекта и введите composer install и запустите в cli, чтобы снова добавить зависимости.

Другие вопросы по тегам