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

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

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

Мои провайдеры и псевдонимы были добавлены, когда я сделал git pull из того, что я вытолкнул из своего локального. Возможно, этот файл должен был быть проигнорирован git, а изменение сделано вручную на сервере?

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

Ваше здоровье!


person carbide20    schedule 26.09.2015    source источник
comment
ты пробовал composer dump-autoload?   -  person David Barker    schedule 26.09.2015
comment
Это не помогло, к сожалению.   -  person carbide20    schedule 27.09.2015


Ответы (5)


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

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

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

person cre8    schedule 26.09.2015
comment
Именно то, что я должен был сделать, большое спасибо! Я должен был знать, что порядок операций всегда имеет значение. - person carbide20; 27.09.2015
comment
Я бы добавил к этому, что после запуска `composer require larevelcollective/html' вам также нужно добавить ':5.2' или любую другую версию, которую вы используете. Я использую Laravel 5.2, и этот ответ дал мне правильное решение, но мне пришлось добавить версию в конце. - person logos_164; 29.05.2019

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

Другой способ исправить это, в вашем CLI, запустите:

$ composer dump-autoload

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

Обновление $ composer

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

person Gengjun Wu    schedule 29.02.2016

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

"require": {
    "php": ">=5.5.9",
    "laravel/framework": "5.2.*",
    "laravelcollective/html": "^5.2",
    ... 
},
person ecairol    schedule 01.05.2016
comment
закрыть, но вам нужно потребовать laravelcollective/html: 5.2, я пробовал так, и это не сработало, пока я не потребовал в консоли - person logos_164; 29.05.2019

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

person Ram Bhandari    schedule 27.06.2018

Установка завершилась неудачно, и ./composer.json было возвращено исходное содержимое.

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

Команда: composer require laravelcollective/html --prefer-source

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

person Zahid Gani    schedule 09.04.2018