Класс 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, чтобы снова добавить зависимости.