安装可选示例数据时出错
本主题讨论安装可选示例数据时可能遇到的错误的解决方案。
症状(文件系统权限)
使用安装向导安装示例数据期间控制台日志中出错:
Module 'Magento_CatalogRuleSampleData':
[ERROR] exception 'Magento\Framework\Exception\LocalizedException' with message 'Can't create directory /var/www/html/magento2/generated/code/Magento/CatalogRule/Model/.' in /var/www/html/magento2/lib/internal/Magento/Framework/Code/Generator.php:103
(more)
Next exception 'ReflectionException' with message 'Class Magento\CatalogRule\Model\RuleFactory does not exist' in /var/www/html/magento2/lib/internal/Magento/Framework/Code/Reader/ClassReader.php:29
(more)
这些异常由文件系统权限设置产生。
解决方案
再次设置文件系统所有权和权限作为具有root
权限的用户。
症状(生产模式)
如果当前设置为生产模式,则使用magento sampledata:deploy命令时,示例数据安装将失败:
PHP Fatal error: Uncaught TypeError: Argument 1 passed to Symfony\Component\Console\Input\ArrayInput::__construct() must be of the type array, object given, called in /<path>/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php on line 97 and defined in /<path>/vendor/symfony/console/Symfony/Component/Console/Input/ArrayInput.php:37
解决方案
请勿在生产模式下安装示例数据。 切换到开发人员模式并清除某些var
目录,然后重试。
按照Adobe Commerce文件系统所有者显示的顺序输入以下命令:
cd <magento_root>
bin/magento deploy:mode:set developer
rm -rf generated/code/* generated/metadata/*
bin/magento sampledata:deploy
症状(安全性)
在安装可选的示例数据期间,会显示一条与以下内容类似的消息:
PHP Fatal error: Call to undefined method Magento\Catalog\Model\Resource\Product\Interceptor::getWriteConnection() in /var/www/magento2/app/code/Magento/SampleData/Module/Catalog/Setup/Product/Gallery.php on line 144
解决方案
在示例数据安装过程中,使用如下资源禁用SELinux:
症状(开发分支)
显示其他错误,例如:
[Magento\Setup\SampleDataException] Error during sample data installation: Class Magento\Sales\Model\Service\OrderFactory does not exist
解决方案
在Adobe Commerce开发分支中使用示例数据时存在已知问题。 请改用主分支。 您可以按如下方式切换到主分支:
cd <magento_root>
git checkout master
git pull origin master
症状(max_execution_time)
安装将在示例数据安装完成之前停止。 下面是一个示例:
(more)
Module 'Magento_CustomerSampleData':
Installing data...
示例数据安装未完成。
当超过PHP脚本配置的最大执行时间时,会发生此错误。 由于加载示例数据可能需要较长时间,因此您可以在安装期间增加值。
解决方案
作为具有root
权限的用户,请修改php.ini
以将max_execution_time
的值增加到600或更多。 (600秒是10分钟。 您可以根据需要增加值。) 安装成功后,您应将max_execution_time
更改回其先前的值。
如果您不确定php.ini
的位置,请输入以下命令:
php --ini
Loaded Configuration File
的值是您必须修改的php.ini
。
NOTE
我们知道,本文可能仍然包含行业标准的软件术语,有些人可能会认为这些术语具有种族主义、性别歧视或压迫性,并且可能会使读者感到伤害、创伤或不受欢迎。 Adobe正在努力从我们的代码、文档和用户体验中删除这些术语。
recommendation-more-help
8bd06ef0-b3d5-4137-b74e-d7b00485808a