laravel版本升级后 php artisan 所有命令都失败

2021-03-04  本文已影响0人  码农工号9527

本地laravel环境从 laravel6 升级到 laravel7 后,没问题,可以访问,artisan命令可以执行

[root@localhost total_smp]# php artisan cache:clear
Application cache cleared!
[root@localhost total_smp]# composer dumpautoload
Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover --ansi
Discovered Package: beyondcode/laravel-dump-server
Discovered Package: fideloper/proxy
Discovered Package: intervention/image
Discovered Package: laravel/tinker
Discovered Package: maatwebsite/excel
Discovered Package: mews/captcha
Discovered Package: nesbot/carbon
Discovered Package: nunomaduro/collision
Discovered Package: overtrue/laravel-lang
Package manifest generated successfully.
Generated optimized autoload files containing 5621 classes
[root@localhost total_smp]# php artisan 
Laravel Framework 7.30.4

Usage:
  command [options] [arguments]
.....

将代码用git提交后(所有必要的文件都提交,如vender的内容,测试环境不需要再执行额外的操作),测试环境执行任何php artisan命令都报错

PHP Warning:  Uncaught ErrorException: require(/data/smp/total_smp/vendor/composer/../markbaker/matrix/classes/src/Functions/adjoint.php): 
failed to open stream: No such file or directory in /data/smp/total_smp/vendor/composer/autoload_real.php:71
......

访问web页面也直接报错500

按照网上推荐的解决方式,有三种

  1. 首先判断是否是缓存造成的,运行composer clearcache命令进行缓存清除后,运行项目还是会报相同错误
  2. 把vendor目录删掉,使用composer install重新安装整个项目依赖,这个对于我的测试环境可以解决,但是会造成修改一系列文件,但是在该测试环境因为没有给开通可以提交代码的权限,所以放弃
  3. composer update进行项目扩展更新,针对我的情况还是不行,报错
[root@localhost total_smp]$ composer update
Loading composer repositories with package information
Updating dependencies
Nothing to modify in lock file
Writing lock file
Installing dependencies from lock file (including require-dev)
Nothing to install, update or remove
Package caouecs/laravel-lang is abandoned, you should avoid using it. Use https://github.com/Laravel-Lang/lang instead.
Package fzaninotto/faker is abandoned, you should avoid using it. No replacement was suggested.
Package phpunit/php-token-stream is abandoned, you should avoid using it. No replacement was suggested.
Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
PHP Warning:  Uncaught ErrorException: require(/data/smp/total_smp/vendor/composer/../markbaker/matrix/classes/src/Functions/adjoint.php): failed to open stream: No such file or directory in /data/smp/total_smp/vendor/composer/autoload_real.php:71
Stack trace:
#0 /data/smp/total_smp/vendor/composer/autoload_real.php(71): Composer\Util\ErrorHandler::handle(2, 'require(/data/s...', '/data/smp/total...', 71, Array)
#1 /data/smp/total_smp/vendor/composer/autoload_real.php(71): require()
#2 /data/smp/total_smp/vendor/composer/autoload_real.php(61): composerRequiredb81ad581881d0bc8568108ed529543f('3af723442581d6c...', '/data/smp/total...')
#3 /data/smp/total_smp/vendor/autoload.php(7): ComposerAutoloaderInitdb81ad581881d0bc8568108ed529543f::getLoader()
#4 /data/smp/total_smp/vendor/laravel/framework/src/Illuminate/Foundation/ComposerScripts.php(43): require_once('/data/smp/total...')
#5 phar:///usr/local/bin/composer/src/Composer/EventDispatcher/EventDispatcher.php(341): Illuminate\Foundation\ComposerScripts::postAutoloadDump(Ob in /data/smp/total_smp/vendor/composer/autoload_real.php on line 71

Warning: Uncaught ErrorException: require(/data/smp/total_smp/vendor/composer/../markbaker/matrix/classes/src/Functions/adjoint.php): failed to open stream: No such file or directory in /data/smp/total_smp/vendor/composer/autoload_real.php:71
Stack trace:
#0 /data/smp/total_smp/vendor/composer/autoload_real.php(71): Composer\Util\ErrorHandler::handle(2, 'require(/data/s...', '/data/smp/total...', 71, Array)
#1 /data/smp/total_smp/vendor/composer/autoload_real.php(71): require()
#2 /data/smp/total_smp/vendor/composer/autoload_real.php(61): composerRequiredb81ad581881d0bc8568108ed529543f('3af723442581d6c...', '/data/smp/total...')
#3 /data/smp/total_smp/vendor/autoload.php(7): ComposerAutoloaderInitdb81ad581881d0bc8568108ed529543f::getLoader()
#4 /data/smp/total_smp/vendor/laravel/framework/src/Illuminate/Foundation/ComposerScripts.php(43): require_once('/data/smp/total...')
#5 phar:///usr/local/bin/composer/src/Composer/EventDispatcher/EventDispatcher.php(341): Illuminate\Foundation\ComposerScripts::postAutoloadDump(Ob in /data/smp/total_smp/vendor/composer/autoload_real.php on line 71
PHP Fatal error:  composerRequiredb81ad581881d0bc8568108ed529543f(): Failed opening required '/data/smp/total_smp/vendor/composer/../markbaker/matrix/classes/src/Functions/adjoint.php' (include_path='.:/usr/local/php/lib/php') in /data/smp/total_smp/vendor/composer/autoload_real.php on line 71

Fatal error: composerRequiredb81ad581881d0bc8568108ed529543f(): Failed opening required '/data/smp/total_smp/vendor/composer/../markbaker/matrix/classes/src/Functions/adjoint.php' (include_path='.:/usr/local/php/lib/php') in /data/smp/total_smp/vendor/composer/autoload_real.php on line 71

最终原因(针对我的情况),目录文件/data/smp/total_smp/vendor/composer/../markbaker/matrix/classes/src/Functions/adjoint.php确实再git部署的环境上没找到,但是我在我自己的本地环境上确实存在,因此,最大原因是git提交代码时忽略了大小写,导致一些文件没有提交(比如上面....../markbaker/matrix/classes/src/Functions目录的文件),因此修改本地git忽略大小写配置

#直接把git的忽略大小写关了:
git config core.ignorecase false

在查看git状态

Administrator@SD-20190505CHCR total_smp $ git st
位于分支 dev
您的分支与上游分支 'origin/dev' 一致。

未跟踪的文件:
  (使用 "git add <文件>..." 以包含要提交的内容)

        vendor/markbaker/matrix/classes/src/Functions/
        vendor/markbaker/matrix/classes/src/Operations/

真发现还有没提交的文件了。。提交到版本控制,在测试环境拉完最新代码后没问题了!!!
记录一下,避免以后又踩坑

上一篇下一篇

猜你喜欢

热点阅读