为啥致命错误:未捕获的错误:找不到类“Illuminate\Foundation\Application”

Posted

技术标签:

【中文标题】为啥致命错误:未捕获的错误:找不到类“Illuminate\\Foundation\\Application”【英文标题】:Why Fatal error: Uncaught Error: Class 'Illuminate\Foundation\Application' not found为什么致命错误:未捕获的错误:找不到类“Illuminate\Foundation\Application” 【发布时间】:2020-07-03 10:43:03 【问题描述】:

我有一个 Laravel/Homestead 项目终于在本地工作了。现在我正在尝试将它移植到 HostGator 并且由于标题错误而无法运行。我已经尝试了所有建议的解决方案,但无济于事。其中:

composer require laravel/laravel
composer dump-autoload
composer install --no-scripts
composer update
composer update --no-scripts

没有任何作用。同样的错误。如果这是一个线索,我也试过了

php artisan clear-compiled

并得到响应

无法打开输入文件:artisan

我准备放弃 Laravel/Homestead。我在这个框架上花费了无数个小时,除了要展示的问题之外什么都没有。不会向任何人推荐它。

您可以在此处自己查看错误: http://www.tekknow.net/MedAverter/medaverter/

在我认输之前有什么建议吗?

【问题讨论】:

这能回答你的问题吗? Fatal error: Class 'Illuminate\Foundation\Application' not found 【参考方案1】:

对于 artisan 文件,artisan 文件不需要通过包含,你在你的根项目中拥有它,它是在你创建 Laravel 项目时创建的。这是file。

所以你需要在你的项目中有那个文件。

对于缺少的类,您尝试要求 laravel/laravel 但这不是正确的依赖项。同样,github repo 是一个项目的外壳,要具有 Laravel 功能,您需要基于 laravel/laravel 并包括 laravel/framework

希望这可以消除一些混乱,让您走上正轨。其次,您不应该将其移植过来,而只需克隆您的项目并运行 composer install 就足够了。

【讨论】:

你指给我的工匠文件的名称是什么,我应该把它放在哪里?哪个文件应该包含 laravel/framework? “laravel/laravel 的基础是什么意思?通过端口,我的意思是克隆。我克隆了我推送到 BitBucket 的代码。你能给我指一个简单的教程,它解释了如何获得一个在本地运行的项目,在共享主机服务器? 您的项目中是否有一个名为 artisan 的文件? 我不相信我已经运行过那个。我现在刚刚从同一个 medaverter 文件夹中尝试过。这是响应:“-jailshell: artisan: command not found” 傻我,我忘记了工匠面前的“php”。这是正确的:user@tekknow.net [~/www/MedAverter/medaverter]# php artisan clear-compiled Warning: require(/home1/sl1k7f3j/public_html/MedAverter/medaverter/vendor/autoload.php): failed to打开流:第 18 行 /home1/sl1k7f3j/public_html/MedAverter/medaverter/artisan 中没有此类文件或目录第 18 行 /home1/user/public_html/MedAverter/medaverter/artisan 中的 php' (include_path='.:/opt/php56/lib/php') 我开始认为所有这些问题都是因为我创建了一个文件夹 MedAverter 并将代码克隆到那里。也许我应该把它直接放到 ~/www.无论如何,我将 vendor 和 bootstrap 文件夹移动到 medaverter 文件夹中,然后再次运行 php artisan clear-compiled。这是输出:“解析错误:语法错误,意外'?'在 /home1/sl1k7f3j/public_html/MedAverter/medaverter/bootstrap/app.php 的第 15 行“这是该文件中的第 14 和 15 行: $app = new Illuminate\Foundation\Application( $_ENV['APP_BASE_PATH'] ??目录名(目录)【参考方案2】:

问题原来是两个问题。 1、运行的PHP版本错误。如果我 ssh'ed 到 hostgator 服务器并做了

php -v

即使我在 cPanel PHP 选择器中选择了 PHP 7.1,它也显示 PHP 5.6.30。如果我这样做了

tekknow.net/phpinfo.php

它会说我使用的是 7.1。致电 HostGator 技术支持,他们能够将其更改为 PHP 7.3.13。

现在如果我这样做:

php artisan clear cache

我不再收到有关

的错误

解析错误:语法错误,意外的“?”在 /home1/sl1k7f3j/public_html/medaverter/bootstrap/app.php 在第 15 行

这是由不支持 ?? 的 php 版本引起的错误。运算符。

    第二个问题是内存不足问题。如果我这样做了

    作曲家更新 它会开始工作,但会在大约 30 秒内失败

致命错误:内存不足(已分配 709623808)(试图分配 34187559 字节)在 phar:///opt/cpanel/composer/bin/composer/src/Composer/Json/JsonFile.php 在第 270 行

HostGator 技术代表无法弄清楚为什么会这样,但我通过手动将本地供应商文件夹上传到主机服务器解决了这个问题。

现在,当我转到 http://tekknow.net/medaverter/ 时,它可以工作了!

【讨论】:

以上是关于为啥致命错误:未捕获的错误:找不到类“Illuminate\Foundation\Application”的主要内容,如果未能解决你的问题,请参考以下文章

Laravel - 致命错误:未捕获的错误:找不到类'Auth'

致命错误:未捕获的错误:找不到类“App\Config”

PHP致命错误:未捕获错误:找不到类

我有这样的问题期待帮助致命错误:未捕获的错误:找不到类'Illuminate\Foundation\Application'[重复]

致命错误:未捕获的错误:在 magento 2 中刷新缓存时找不到类“DOMDocument”

致命错误:未捕获的错误:在 prestashop 中找不到类“Db”