php artisan:“无法打开流:没有这样的文件或目录”

z4bn682m  于 5个月前  发布在  PHP
关注(0)|答案(8)|浏览(71)

我刚开始学习php/laravel,通过一些指南和教程,这让我使用php artisan serve命令运行服务器。
我采取的步骤如下:
1.使用composer安装laravel并将其添加到$PATH
1.使用laravel new new-blog创建项目
1.将目录更改为项目文件夹并运行php artisan serve命令。
然而,而不是一个php服务器的预期输出与地址,我得到这个错误:

PHP Warning:  require(/home/sflash/Documents/php/laravel/new-blog/vendor/autoload.php): failed to open stream: No such file or directory in /home/sflash/Documents/php/laravel/new-blog/artisan on line 18
PHP Fatal error:  require(): Failed opening required '/home/sflash/Documents/php/laravel/new-blog/vendor/autoload.php' (include_path='.:/usr/share/php') in /home/sflash/Documents/php/laravel/new-blog/artisan on line 18

字符串
我在一台Linux机器上(debian buster)。我的项目文件夹的结构如下:

app        composer.json  package.json  README.md  server.php  webpack.mix.js
artisan    config         phpunit.xml   resources  storage
bootstrap  database       public        routes     tests


正如上面的错误代码所述,我没有一个名为vendor/autoload.php的文件。这是如何发生的/如何修复?

8tntrjer

8tntrjer1#

你已经做了一切正确的,除了你忘记添加供应商文件夹到您的项目目录,只是尝试

composer i

字符串
从终端的项目目录内,将解决您的错误。如果您得到任何其他错误,然后删除composer.lock文件,然后再试一次。
更新:
而不是删除composer.lock文件时,面临的问题,如PHP版本不匹配或依赖版本锁定,只是使用

composer update

jaxagkaj

jaxagkaj2#

这是因为你丢失了“Vendor”目录,这导致了一个缺少依赖项的错误。要修复这个问题,你需要运行:

Composer update

字符串
在大多数情况下,更新Composer将重新生成vendor文件夹和autoload.php文件。
或者,您可以使用命令重新生成autoload.php文件,

composer dump-autoload


如果发现Composer已损坏,请卸载现有Composer并重新安装。要安装Composer,请在根项目文件夹中运行以下命令:

Composer install

yks3o0rb

yks3o0rb3#

您必须首先通过运行composer的install命令来添加vendors目录:

composer install

字符串
在此之后,更新您的 composer 包:

composer update


最后运行迁移命令

php artisan migrate
php artisan serve

uyhoqukh

uyhoqukh4#

如果依赖项已下载,则所有这些解决方案都可以工作。
我遇到了类似的问题,但使用Composer更新和/或Composer i CLI解决方案无法工作,因为缺少文件/依赖项或无法找到。
我发现在我的项目中我需要laravel,就像这样:composer global require laravel/installer,所以上面的解决方案将无法工作。

composer help

字符串
这让我想到了

composer u


它下载了所有必需的依赖项。

php artisan serve


指挥部按预期工作。

u4vypkhs

u4vypkhs5#

你没有供应商文件夹在你的项目你需要重新安装laravel &然后尝试安装它使用
laravel new projectcomposer create-project ---prefer-dist laravel/laravel blog

lnxxn5zx

lnxxn5zx6#

当你试图从GitHub克隆一个项目时,会出现这个问题吗?如果为true,则首先通过创建本地laravel项目来确保设备上的laravel安装是正确的。如果本地项目运行良好,则可以继续从存储库克隆项目。克隆项目后,复制文件.envy.example并将其中一个重命名为.envy,然后在php artisan key:generate之后运行composer update,然后您可以再次尝试php artisan serve

0aydgbwb

0aydgbwb7#

此错误也可能是由于未(手动)更新composer.json中的“文件”部分导致的,即:

"files": ["app/Some/Stucked/Refactored/Old/Location.php",
          "app/Some/Good/Location.php"],

字符串
然后又道:

composer update

mbzjlibv

mbzjlibv8#

我也遇到了同样的问题,解决方案很简单。对于Windows操作系统,如果你使用的是像XAMPP这样的本地开发环境,你所需要做的就是找到php.ini文件(在我的例子中,它在C:\xampp\php中),打开它,然后从下面的行中删除;上的PHP:
你会发现它是这样的

;extension=zip

字符串
删除插件:

extension=zip


它应该能正常工作。

相关问题