Laravel 不创建文件夹 vendor

Posted

技术标签:

【中文标题】Laravel 不创建文件夹 vendor【英文标题】:Laravel does not create folder vendor 【发布时间】:2017-06-23 09:19:36 【问题描述】:

安装 Composer 后它运行良好,Laravel 创建了所有文件夹并正确启动:

php artisan serve

现在,当我尝试时:

laravel new mypro

它不会创建vendor 文件夹。当我尝试时:

php artisan serve

上面写着:

php artisan serve
PHP Warning:  require(/mnt/PROJECTS/[3]_PROCOM/[6]_PHP_Learning/Laravel_1/blog4/bootstrap/../vendor/autoload.php): failed to open stream: No such file or directory in /mnt/PROJECTS/[3]_PROCOM/[6]_PHP_Learning/Laravel_1/blog4/bootstrap/autoload.php on line 17
PHP Fatal error:  require(): Failed opening required '/mnt/PROJECTS/[3]_PROCOM/[6]_PHP_Learning/Laravel_1/blog4/bootstrap/../vendor/autoload.php' (include_path='.:/usr/share/php') in /mnt/PROJECTS/[3]_PROCOM/[6]_PHP_Learning/Laravel_1/blog4/bootstrap/autoload.php on line 17

在我复制文件夹 vendor 后,它说:

php artisan serve
PHP Fatal error:  Class 'Illuminate\Notifications\NotificationServiceProvider' not found in /mnt/PROJECTS/[3]_PROCOM/[6]_PHP_Learning/Laravel_1/blog3/vendor/laravel/framework/src/Illuminate/Foundation/ProviderRepository.php on line 146


  [Symfony\Component\Debug\Exception\FatalErrorException]                 
  Class 'Illuminate\Notifications\NotificationServiceProvider' not found  

【问题讨论】:

【参考方案1】:

我遇到了同样的问题。发生这种情况是因为作曲家无法安装 composer.json 文件中指定的依赖项。尝试运行

composer install 

如果这不能解决问题,请确保安装了以下 PHP 模块 php-mbstring php-dom

要安装此扩展程序,请在终端中运行以下命令

sudo apt-get install php-mbstring php-dom

安装完成后

尝试在您的项目根文件夹中再次运行该命令

composer install 

所以,如果上面的方法不行,你也可以试试这个命令

composer update --no-scripts 

有关此线程的更多解决方案。 Laravel 5 Failed opening required bootstrap/../vendor/autoload.php

【讨论】:

【参考方案2】:

请运行命令而不是复制供应商文件夹

composer install

在你的 laravel 项目目录中

【讨论】:

成功了,没有任何改变,它告诉:composer install 无法创建缓存目录/home/satori/.composer/cache/repo/https---packagist.org/,或者目录不可写。没有缓存继续 无法创建缓存目录 /home/satori/.composer/cache/files/,或目录不可写。不使用缓存继续 无法创建缓存目录/home/satori/.composer/cache/repo/https---packagist.org/,或者目录不可写。在没有缓存的情况下继续使用包信息加载作曲家存储库从锁定文件安装依赖项(包括 require-dev)您的需求无法解析为可安装的包集。 问题 1 - laravel/framework v5.4.6 的安装请求 -> laravel/framework[v5.4.6] 可以满足。 - laravel/framework v5.4.6 需要 ext-mbstring * -> 您的系统中缺少请求的 PHP 扩展 mbstring。 问题 2 - phpunit/phpunit 5.7.9 的安装请求 -> 可由 phpunit/phpunit[5.7.9] 满足。 - phpunit/phpunit 5.7.9 需要 ext-dom * -> 您的系统中缺少请求的 PHP 扩展 dom。【参考方案3】:

在尝试了不同来源的多种解决方案后,唯一对我有用的是升级 PHP 版本。

【讨论】:

【参考方案4】:

尝试手动安装sudo apt-get install php5.6-mbstring

【讨论】:

成功了,现在它说:您的需求无法解析为一组可安装的软件包。问题 1 - phpunit/phpunit 5.7.9 的安装请求 -> 可由 phpunit/phpunit[5.7.9] 满足。 - phpunit/phpunit 5.7.9 需要 ext-dom * -> 您的系统中缺少请求的 PHP 扩展 dom。 现在试试这个sudo apt-get install php-xml 正在读取包列表... 完成 构建依赖树 读取状态信息... 完成 php-xml 已经是最新版本。以下软件包已自动安装且不再需要: libvpx1:i386 使用“apt-get autoremove”将其删除。 0 个已升级,0 个新安装,0 个要移除,0 个未升级。

以上是关于Laravel 不创建文件夹 vendor的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 编码技巧一

有没有一个地方可以在一个地方获取 laravel `vendor` 文件夹?

laravel 数据库迁移

供应商文件夹中的 symfony 是啥?

在 Laravel 4 中访问包控制器

Laravel注销功能不起作用