Windows本地安装Magento2.4.3访问setup页出现类不存在致命错误
报错原文如下:
Fatal error: Uncaught ReflectionException: Class "Magento\Backend\App\Request\PathInfoProcessor\Proxy" does not exist in C:\xampp\htdocs\magento\vendor\magento\framework\Code\Reader\ClassReader.php:28 Stack trace: #0 C:\xampp\htdocs\magento\vendor\magento\framework\Code\Reader\ClassReader.php(28): ReflectionClass->__construct('Magento\Backend...') #1 C:\xampp\htdocs\magento\vendor\magento\framework\ObjectManager\Definition\Runtime.php(54): Magento\Framework\Code\Reader\ClassReader->getConstructor('Magento\Backend...') #2 C:\xampp\htdocs\magento\vendor\magento\framework\ObjectManager\Factory\Dynamic\Developer.php(48): Magento\Framework\ObjectManager\Definition\Runtime->getParameters('Magento\Backend...') #3
该报错本质是Magento自动生成的代理类不存在,可按照以下步骤依次排查:
- 验证环境基础配置
确认当前XAMPP的PHP版本符合Magento2.4.3要求:仅支持PHP7.4、PHP8.1,同时开启所有必填PHP扩展:ext-bcmath、ext-ctype、ext-curl、ext-dom、ext-gd、ext-hash、ext-iconv、ext-intl、ext-mbstring、ext-openssl、ext-pdo_mysql、ext-simplexml、ext-soap、ext-xsl、ext-zip、ext-sockets。 - 补全composer依赖
进入Magento根目录执行composer install,确认vendor目录下所有文件完整,没有缺失的核心类文件。 - 配置目录读写权限
给Magento根目录、var、generated、pub/static、pub/media五个目录设置Windows完全控制权限,避免代码生成时写入被拦截。 - 清空旧的生成文件
执行命令删除已生成的缓存和临时代码:rm -rf generated/* var/cache/* var/page_cache/* var/view_preprocessed/*
无CLI环境可手动进入对应目录删除所有内容。 - 重新编译生成代码
执行di编译命令生成所有代理类、工厂类:php bin/magento setup:di:compile
等待编译完成无报错后,重启Apache服务,重新访问安装页面即可。
内容的提问来源于stack exchange,提问作者Schneider

