17

我知道还有很多其他问题也有同样的错误,例如: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 env 不同,但我仍然不确定为什么按照 Laravel 提供的添加说明似乎不起作用。非常感谢对此的一些建议。

干杯!

4

5 回答 5

56

当您更新作曲家时,它将检查提供者。因为你还没有安装laravelcollective/html他找不到并抛出错误:

所以首先需要你的包,然后将它们添加到配置文件中。

您也可以使用composer require laravelcollective/html,它会自动将其添加到 json 文件中。那么之前是否添加它们都没有关系,因为不会检查配置文件。

于 2015-09-26T09:34:55.977 回答
14

我在 Laravel 5.2.* 上遇到了同样的错误,按照此处的说明进行操作:https ://laravelcollective.com/docs/5.2/html ,但没有奏效。

修复它的另一种方法,在您的 CLI 上,运行:

$ 作曲家转储自动加载

然后运行:

$作曲家更新

这对我有用。;)

于 2016-02-29T19:50:20.297 回答
5

如果您使用的是 Laravel 5.2,请尝试将其添加到您的 composer.json

"require": {
    "php": ">=5.5.9",
    "laravel/framework": "5.2.*",
    "laravelcollective/html": "^5.2",
    ... 
},
于 2016-05-01T05:49:48.637 回答
0

首先尝试作曲家更新。它将更新所有依赖项,但如果它不起作用,请删除项目的供应商文件夹并键入composer install 并在 cli 中运行再次添加依赖项。

于 2018-06-27T08:09:45.773 回答
0

安装失败,恢复./composer.json到原来的内容。

[ErrorException]
复制(/home/zahid/.composer/cache/files/laravelcollective/html/20e9e29d83e23aba16dc4b8d93d0757e1541f076.zip):无法打开流:权限被拒绝

命令:composer require laravelcollective/html --prefer-source

然后它工作

于 2018-04-09T07:54:29.727 回答