2015-09-26 83 views
10

没有找到我知道有一堆漂浮在那里用了同样的错误的其他问题,如:Class 'Illuminate\Html\HtmlServiceProvider' not found Laravel 5Laravel 5类“集体 HTML HtmlServiceProvider”在AWS上

我的问题是,我已经遵循所有建议的步骤在我的本地(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工匠明确编译d,看是否会做任何事情,并得到了:

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的环境是不一样的一个窗口XAMPP ENV,但我仍然不能确定,为什么下面的Laravel提供的说明加入这似乎并没有工作。将不胜感激一些建议。

干杯!

+0

你尝试'作曲家自卸autoload'? –

+0

不幸的是,这似乎没有帮助。 – carbide20

回答

31

当你更新你的作曲家时,它会检查提供者。因为你还没有安装laravelcollective/html,但是他找不到它并且报错:

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

你也可以使用composer require laravelcollective/html,它会自动将它添加到json文件。那么不管你之前是否已经添加了它们,因为配置文件不会被检查。

+0

正是我所要做的,非常感谢你!我应该知道操作的顺序总是很重要。 – carbide20

7

我在Laravel 5.2。*上遇到了同样的错误,按照这里的指令:https://laravelcollective.com/docs/5.2/html,但没有奏效。

的另一种方式来解决它,在你的CLI中运行:

$作曲家转储自动加载

然后运行:

$作曲家更新

该作品为了我。 ;)

2

如果您使用Laravel 5.2,你可以添加以下到您的composer.json

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

这也适用于Laravel 5.3吗? – ITWitch