Laravel 5 Class' Collective \ Html \ HtmlServiceProvider'在AWS

时间:2015-09-26 08:29:06

标签: php laravel amazon-web-services laravel-5 laravelcollective

我知道还有很多其他问题出现在同一个错误中,例如: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提供的添加此功能的说明似乎无法正常工作。非常感谢对此提出一些建议。

干杯!

5 个答案:

答案 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中运行,从而再次添加依赖关系。