我知道还有很多其他问题出现在同一个错误中,例如:Class 'Illuminate\Html\HtmlServiceProvider' 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提供的添加此功能的说明似乎无法正常工作。非常感谢对此提出一些建议。
干杯!
答案 0 :(得分:42)
更新作曲家时,它会检查提供者。因为您还没有安装laravelcollective/html
但他无法找到它并引发错误:
首先需要你的包装,然后将它们添加到配置文件中。
您也可以使用composer require laravelcollective/html
,它会自动将其添加到json文件中。然后,如果您之前添加了它们并不重要,因为配置文件不会被检查。
答案 1 :(得分:12)
我在Laravel 5.2上遇到了同样的错误。*,按照此处的说明操作:https://laravelcollective.com/docs/5.2/html,但没有用。
另一种解决方法是在CLI上运行:
$ composer dump-autoload
然后运行:
$ composer update
这对我有用。 ;)
答案 2 :(得分:4)
如果您使用的是Laravel 5.2,请尝试将其添加到您的composer.json
"require": {
"php": ">=5.5.9",
"laravel/framework": "5.2.*",
"laravelcollective/html": "^5.2",
...
},
答案 3 :(得分:0)
安装失败,将./composer.json恢复为原始内容。
[ErrorException]
copy(/home/zahid/.composer/cache/files/laravelcollective/html/20e9e29d83e23aba16dc4b8d93d0757e1541f076.zip):无法打开流:Permiss
被拒绝
命令:composer需要laravelcollective / html --prefer-source
然后它工作
答案 4 :(得分:0)
首先尝试 composer更新。它将更新所有依赖关系,但如果无法正常工作,请删除项目的供应商文件夹,然后输入 composer install 并在cli中运行,从而再次添加依赖关系。